; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4be720 */ | #include | ; (fcn) method.BloombergLP::s_baltst::Sequence4.Sequence4_BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::s_baltst::Sequence4_Sequence4_BloombergLP::bslma::Allocator_ (int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | int64_t var_28h; | int64_t var_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_48h; | int64_t var_50h; | int64_t var_58h; | int64_t var_60h; | int64_t var_68h; | int64_t var_70h; | int64_t var_78h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Sequence4::Sequence4(BloombergLP::bslma::Allocator*) */ 0x004be720 push rbp | 0x004be721 push r15 | 0x004be723 push r14 | 0x004be725 push r13 | 0x004be727 push r12 | 0x004be729 push rbx | 0x004be72a sub rsp, 0x88 | 0x004be731 mov r14, rsi | r14 = rsi; 0x004be734 mov rbx, rdi | rbx = rdi; 0x004be737 mov qword [rdi], 0 | *(rdi) = 0; 0x004be73e lea rbp, [rdi + 8] | rbp = rdi + 8; 0x004be742 test rsi, rsi | 0x004be745 mov qword [rsp + 0x78], rbp | *((rsp + 0x78)) = rbp; | if (rsi != 0) { 0x004be74a je 0x4be8c1 | 0x004be750 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be753 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x004be757 mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x004be75f lea rbp, [rbx + 0x20] | rbp = rbx + 0x20; 0x004be763 mov qword [rbx + 0x20], r14 | *((rbx + 0x20)) = r14; 0x004be767 lea rax, [rbx + 0x28] | rax = rbx + 0x28; 0x004be76b mov qword [rsp + 0x70], rax | *((rsp + 0x70)) = rax; 0x004be770 movups xmmword [rbx + 0x28], xmm0 | __asm ("movups xmmword [rbx + 0x28], xmm0"); 0x004be774 mov qword [rbx + 0x38], 0 | *((rbx + 0x38)) = 0; 0x004be77c lea rax, [rbx + 0x40] | rax = rbx + 0x40; 0x004be780 mov qword [rsp + 0x68], rax | *((rsp + 0x68)) = rax; 0x004be785 mov qword [rbx + 0x40], r14 | *((rbx + 0x40)) = r14; 0x004be789 lea rax, [rbx + 0x48] | rax = rbx + 0x48; 0x004be78d mov qword [rsp + 0x60], rax | *((rsp + 0x60)) = rax; 0x004be792 movups xmmword [rbx + 0x48], xmm0 | __asm ("movups xmmword [rbx + 0x48], xmm0"); 0x004be796 mov qword [rbx + 0x58], 0 | *((rbx + 0x58)) = 0; 0x004be79e lea rax, [rbx + 0x60] | rax = rbx + 0x60; 0x004be7a2 mov qword [rsp + 0x58], rax | *((rsp + 0x58)) = rax; 0x004be7a7 mov qword [rbx + 0x60], r14 | *((rbx + 0x60)) = r14; 0x004be7ab lea rax, [rbx + 0x68] | rax = rbx + 0x68; 0x004be7af mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004be7b4 movups xmmword [rbx + 0x68], xmm0 | __asm ("movups xmmword [rbx + 0x68], xmm0"); 0x004be7b8 mov qword [rbx + 0x78], 0 | *((rbx + 0x78)) = 0; 0x004be7c0 lea rax, [rbx + 0x80] | rax = rbx + 0x80; 0x004be7c7 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x004be7cc mov qword [rbx + 0x80], r14 | *((rbx + 0x80)) = r14; 0x004be7d3 lea rax, [rbx + 0x88] | rax = rbx + 0x88; 0x004be7da mov qword [rsp + 0x50], rax | *((rsp + 0x50)) = rax; 0x004be7df movups xmmword [rbx + 0x88], xmm0 | __asm ("movups xmmword [rbx + 0x88], xmm0"); 0x004be7e6 mov qword [rbx + 0x98], 0 | *((rbx + 0x98)) = 0; 0x004be7f1 lea rax, [rbx + 0xa0] | rax = rbx + 0xa0; 0x004be7f8 mov qword [rsp + 0x38], rax | *((rsp + 0x38)) = rax; 0x004be7fd mov qword [rbx + 0xa0], r14 | *((rbx + 0xa0)) = r14; 0x004be804 lea rax, [rbx + 0xa8] | rax = rbx + 0xa8; 0x004be80b mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x004be810 movups xmmword [rbx + 0xa8], xmm0 | __asm ("movups xmmword [rbx + 0xa8], xmm0"); 0x004be817 mov qword [rbx + 0xb8], 0 | *((rbx + 0xb8)) = 0; 0x004be822 lea rax, [rbx + 0xc0] | rax = rbx + 0xc0; 0x004be829 mov qword [rsp + 0x30], rax | *((rsp + 0x30)) = rax; 0x004be82e mov qword [rbx + 0xc0], r14 | *((rbx + 0xc0)) = r14; 0x004be835 lea rax, [rbx + 0xc8] | rax = rbx + 0xc8; 0x004be83c mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x004be841 movups xmmword [rbx + 0xc8], xmm0 | __asm ("movups xmmword [rbx + 0xc8], xmm0"); 0x004be848 mov qword [rbx + 0xd8], 0 | *((rbx + 0xd8)) = 0; 0x004be853 lea rax, [rbx + 0xe0] | rax = rbx + 0xe0; 0x004be85a mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004be85f mov qword [rbx + 0xe0], r14 | *((rbx + 0xe0)) = r14; 0x004be866 lea r13, [rbx + 0xe8] | r13 = rbx + 0xe8; 0x004be86d movups xmmword [rbx + 0xe8], xmm0 | __asm ("movups xmmword [rbx + 0xe8], xmm0"); 0x004be874 mov qword [rbx + 0xf8], 0 | *((rbx + 0xf8)) = 0; 0x004be87f lea rax, [rbx + 0x100] | rax = rbx + 0x100; 0x004be886 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x004be88b mov qword [rbx + 0x100], r14 | *((rbx + 0x100)) = r14; 0x004be892 movups xmmword [rbx + 0x108], xmm0 | __asm ("movups xmmword [rbx + 0x108], xmm0"); 0x004be899 mov qword [rbx + 0x118], 0 | *((rbx + 0x118)) = 0; 0x004be8a4 mov qword [rbx + 0x120], r14 | *((rbx + 0x120)) = r14; 0x004be8ab lea r12, [rbx + 0x108] | r12 = rbx + 0x108; 0x004be8b2 lea r15, [rbx + 0x120] | r15 = rbx + 0x120; 0x004be8b9 mov rax, r14 | rax = r14; 0x004be8bc jmp 0x4bead8 | | } else { 0x004be8c1 mov rax, qword [rip + 0x40e7e0] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004be8c8 test rax, rax | | if (rax == 0) { 0x004be8cb jne 0x4be8d2 | 0x004be8cd call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004be8d2 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be8d5 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x004be8d9 mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x004be8e1 lea rcx, [rbx + 0x20] | rcx = rbx + 0x20; 0x004be8e5 mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x004be8ea mov qword [rbx + 0x20], rax | *((rbx + 0x20)) = rax; 0x004be8ee mov rax, qword [rip + 0x40e7b3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004be8f5 test rax, rax | | if (rax == 0) { 0x004be8f8 jne 0x4be8ff | 0x004be8fa call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004be8ff lea r15, [rbx + 0x28] | r15 = rbx + 0x28; 0x004be903 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be906 movups xmmword [r15], xmm0 | __asm ("movups xmmword [r15], xmm0"); 0x004be90a mov qword [r15 + 0x10], 0 | *((r15 + 0x10)) = 0; 0x004be912 lea r12, [rbx + 0x40] | r12 = rbx + 0x40; 0x004be916 mov qword [rbx + 0x40], rax | *((rbx + 0x40)) = rax; 0x004be91a mov rax, qword [rip + 0x40e787] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004be921 test rax, rax | 0x004be924 mov qword [rsp + 0x70], r15 | *((rsp + 0x70)) = r15; 0x004be929 mov qword [rsp + 0x68], r12 | *((rsp + 0x68)) = r12; | if (rax == 0) { 0x004be92e jne 0x4be935 | 0x004be930 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004be935 lea r13, [rbx + 0x48] | r13 = rbx + 0x48; 0x004be939 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be93c movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x004be941 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x004be949 lea rcx, [rbx + 0x60] | rcx = rbx + 0x60; 0x004be94d mov qword [rsp + 0x58], rcx | *((rsp + 0x58)) = rcx; 0x004be952 mov qword [rbx + 0x60], rax | *((rbx + 0x60)) = rax; 0x004be956 mov rax, qword [rip + 0x40e74b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004be95d test rax, rax | 0x004be960 mov qword [rsp + 0x60], r13 | *((rsp + 0x60)) = r13; | if (rax == 0) { 0x004be965 jne 0x4be96c | 0x004be967 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004be96c lea rcx, [rbx + 0x68] | rcx = rbx + 0x68; 0x004be970 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be973 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004be976 mov qword [rsp + 0x18], rcx | *((rsp + 0x18)) = rcx; 0x004be97b mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004be983 lea rcx, [rbx + 0x80] | rcx = rbx + 0x80; 0x004be98a mov qword [rsp + 0x48], rcx | *((rsp + 0x48)) = rcx; 0x004be98f mov qword [rbx + 0x80], rax | *((rbx + 0x80)) = rax; 0x004be996 mov rax, qword [rip + 0x40e70b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004be99d test rax, rax | | if (rax == 0) { 0x004be9a0 jne 0x4be9a7 | 0x004be9a2 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004be9a7 lea rcx, [rbx + 0x88] | rcx = rbx + 0x88; 0x004be9ae xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be9b1 movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004be9b4 mov qword [rsp + 0x50], rcx | *((rsp + 0x50)) = rcx; 0x004be9b9 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004be9c1 lea rcx, [rbx + 0xa0] | rcx = rbx + 0xa0; 0x004be9c8 mov qword [rsp + 0x38], rcx | *((rsp + 0x38)) = rcx; 0x004be9cd mov qword [rbx + 0xa0], rax | *((rbx + 0xa0)) = rax; 0x004be9d4 mov rax, qword [rip + 0x40e6cd] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004be9db test rax, rax | | if (rax == 0) { 0x004be9de jne 0x4be9e5 | 0x004be9e0 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004be9e5 lea rcx, [rbx + 0xa8] | rcx = rbx + 0xa8; 0x004be9ec xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004be9ef movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004be9f2 mov qword [rsp + 0x40], rcx | *((rsp + 0x40)) = rcx; 0x004be9f7 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004be9ff lea rcx, [rbx + 0xc0] | rcx = rbx + 0xc0; 0x004bea06 mov qword [rsp + 0x30], rcx | *((rsp + 0x30)) = rcx; 0x004bea0b mov qword [rbx + 0xc0], rax | *((rbx + 0xc0)) = rax; 0x004bea12 mov rax, qword [rip + 0x40e68f] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bea19 test rax, rax | | if (rax == 0) { 0x004bea1c jne 0x4bea23 | 0x004bea1e call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004bea23 lea rcx, [rbx + 0xc8] | rcx = rbx + 0xc8; 0x004bea2a xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bea2d movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004bea30 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x004bea35 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004bea3d lea rcx, [rbx + 0xe0] | rcx = rbx + 0xe0; 0x004bea44 mov qword [rsp + 0x28], rcx | *((rsp + 0x28)) = rcx; 0x004bea49 mov qword [rbx + 0xe0], rax | *((rbx + 0xe0)) = rax; 0x004bea50 mov rax, qword [rip + 0x40e651] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bea57 test rax, rax | | if (rax == 0) { 0x004bea5a jne 0x4bea61 | 0x004bea5c call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004bea61 lea r13, [rbx + 0xe8] | r13 = rbx + 0xe8; 0x004bea68 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004bea6b movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x004bea70 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x004bea78 lea rcx, [rbx + 0x100] | rcx = rbx + 0x100; 0x004bea7f mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x004bea84 mov qword [rbx + 0x100], rax | *((rbx + 0x100)) = rax; 0x004bea8b mov rax, qword [rip + 0x40e616] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004bea92 test rax, rax | | if (rax == 0) { 0x004bea95 jne 0x4bea9c | 0x004bea97 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004bea9c lea r12, [rbx + 0x108] | r12 = rbx + 0x108; 0x004beaa3 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004beaa6 movups xmmword [r12], xmm0 | __asm ("movups xmmword [r12], xmm0"); 0x004beaab mov qword [r12 + 0x10], 0 | *((r12 + 0x10)) = 0; 0x004beab4 lea r15, [rbx + 0x120] | r15 = rbx + 0x120; 0x004beabb mov qword [rbx + 0x120], rax | *((rbx + 0x120)) = rax; 0x004beac2 mov rax, qword [rip + 0x40e5df] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beac9 test rax, rax | 0x004beacc mov rbp, qword [rsp + 8] | rbp = *((rsp + 8)); | if (rax != 0) { 0x004bead1 jne 0x4bead8 | goto label_0; | } 0x004bead3 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x004bead8 mov qword [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x004beae3 movaps xmm0, xmmword [rip + 0x7df26] | xmm0 = .comment; 0x004beaea movups xmmword [rbx + 0x140], xmm0 | __asm ("movups xmmword [rbx + 0x140], xmm0"); 0x004beaf1 mov qword [rbx + 0x150], rax | *((rbx + 0x150)) = rax; 0x004beaf8 mov byte [rbx + 0x128], 0 | *((rbx + 0x128)) = 0; 0x004beaff test r14, r14 | | if (r14 != 0) { 0x004beb02 je 0x4beb22 | 0x004beb04 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x004beb0b mov qword [rbx + 0x180], r14 | *((rbx + 0x180)) = r14; 0x004beb12 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x004beb19 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x004beb20 jmp 0x4beb63 | | } else { 0x004beb22 mov rax, qword [rip + 0x40e57f] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beb29 test rax, rax | | if (rax == 0) { 0x004beb2c jne 0x4beb33 | 0x004beb2e call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004beb33 mov byte [rbx + 0x178], 0 | *((rbx + 0x178)) = 0; 0x004beb3a mov qword [rbx + 0x180], rax | *((rbx + 0x180)) = rax; 0x004beb41 mov byte [rbx + 0x188], 0 | *((rbx + 0x188)) = 0; 0x004beb48 mov byte [rbx + 0x198], 0 | *((rbx + 0x198)) = 0; 0x004beb4f mov r14, qword [rip + 0x40e552] | r14 = BloombergLP::bslma::Default::s_defaultAllocator; 0x004beb56 test r14, r14 | | if (r14 != 0) { 0x004beb59 jne 0x4beb63 | goto label_1; | } 0x004beb5b call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004beb60 mov r14, rax | r14 = rax; | } | label_1: 0x004beb63 mov byte [rbx + 0x1d0], 0 | *((rbx + 0x1d0)) = 0; 0x004beb6a mov qword [rbx + 0x1d8], r14 | *((rbx + 0x1d8)) = r14; 0x004beb71 mov dword [rbx + 0x1e0], 0 | *((rbx + 0x1e0)) = 0; 0x004beb7b mov byte [rbx + 0x1e4], 0 | *((rbx + 0x1e4)) = 0; 0x004beb82 mov byte [rbx + 0x1e8], 0 | *((rbx + 0x1e8)) = 0; 0x004beb89 mov byte [rbx + 0x1ec], 0 | *((rbx + 0x1ec)) = 0; 0x004beb90 mov byte [rbx + 0x1f0], 0 | *((rbx + 0x1f0)) = 0; 0x004beb97 mov dword [rbx + 0x1f4], 0 | *((rbx + 0x1f4)) = 0; 0x004beba1 mov byte [rbx + 0x1f8], 0 | *((rbx + 0x1f8)) = 0; 0x004beba8 add rsp, 0x88 | 0x004bebaf pop rbx | 0x004bebb0 pop r12 | 0x004bebb2 pop r13 | 0x004bebb4 pop r14 | 0x004bebb6 pop r15 | 0x004bebb8 pop rbp | 0x004bebb9 ret | return rax; | }