; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/none @ 0x4ba790 */ | #include | ; (fcn) method.BloombergLP::s_baltst::Sequence1.Sequence1_BloombergLP::bslma::Allocator_ () | uint64_t method_BloombergLP::s_baltst::Sequence1_Sequence1_BloombergLP::bslma::Allocator_ (int64_t arg2, int64_t arg1) { | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Sequence1::Sequence1(BloombergLP::bslma::Allocator*) */ 0x004ba790 push rbp | 0x004ba791 push r15 | 0x004ba793 push r14 | 0x004ba795 push r13 | 0x004ba797 push r12 | 0x004ba799 push rbx | 0x004ba79a sub rsp, 0x28 | 0x004ba79e mov rbx, rdi | rbx = rdi; 0x004ba7a1 test rsi, rsi | | if (rsi != 0) { 0x004ba7a4 je 0x4ba7ff | 0x004ba7a6 mov qword [rbx], rsi | *(rbx) = rsi; 0x004ba7a9 lea r14, [rbx + 8] | r14 = rbx + 8; 0x004ba7ad xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba7b0 movups xmmword [rbx + 8], xmm0 | __asm ("movups xmmword [rbx + 8], xmm0"); 0x004ba7b4 mov qword [rbx + 0x18], 0 | *((rbx + 0x18)) = 0; 0x004ba7bc lea rax, [rbx + 0x20] | rax = rbx + 0x20; 0x004ba7c0 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x004ba7c5 mov qword [rbx + 0x20], rsi | *((rbx + 0x20)) = rsi; 0x004ba7c9 lea rbp, [rbx + 0x28] | rbp = rbx + 0x28; 0x004ba7cd movups xmmword [rbx + 0x28], xmm0 | __asm ("movups xmmword [rbx + 0x28], xmm0"); 0x004ba7d1 mov qword [rbx + 0x38], 0 | *((rbx + 0x38)) = 0; 0x004ba7d9 lea rax, [rbx + 0x40] | rax = rbx + 0x40; 0x004ba7dd mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004ba7e2 mov qword [rbx + 0x40], rsi | *((rbx + 0x40)) = rsi; 0x004ba7e6 lea r15, [rbx + 0x48] | r15 = rbx + 0x48; 0x004ba7ea movups xmmword [rbx + 0x48], xmm0 | __asm ("movups xmmword [rbx + 0x48], xmm0"); 0x004ba7ee mov qword [rbx + 0x58], 0 | *((rbx + 0x58)) = 0; 0x004ba7f6 mov qword [rbx + 0x60], rsi | *((rbx + 0x60)) = rsi; 0x004ba7fa jmp 0x4ba8ba | | } else { 0x004ba7ff mov rax, qword [rip + 0x4128a2] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba806 test rax, rax | | if (rax == 0) { 0x004ba809 jne 0x4ba810 | 0x004ba80b call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba810 mov qword [rbx], rax | *(rbx) = rax; 0x004ba813 lea r14, [rbx + 8] | r14 = rbx + 8; 0x004ba817 mov rax, qword [rip + 0x41288a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba81e test rax, rax | | if (rax == 0) { 0x004ba821 jne 0x4ba828 | 0x004ba823 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba828 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba82b movups xmmword [r14], xmm0 | __asm ("movups xmmword [r14], xmm0"); 0x004ba82f mov qword [r14 + 0x10], 0 | *((r14 + 0x10)) = 0; 0x004ba837 lea r15, [rbx + 0x20] | r15 = rbx + 0x20; 0x004ba83b mov qword [rbx + 0x20], rax | *((rbx + 0x20)) = rax; 0x004ba83f mov rax, qword [rip + 0x412862] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba846 test rax, rax | 0x004ba849 mov qword [rsp + 0x20], r15 | *((rsp + 0x20)) = r15; | if (rax == 0) { 0x004ba84e jne 0x4ba855 | 0x004ba850 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba855 lea rcx, [rbx + 0x28] | rcx = rbx + 0x28; 0x004ba859 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba85c movups xmmword [rcx], xmm0 | __asm ("movups xmmword [rcx], xmm0"); 0x004ba85f mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x004ba864 mov qword [rcx + 0x10], 0 | *((rcx + 0x10)) = 0; 0x004ba86c lea rbp, [rbx + 0x40] | rbp = rbx + 0x40; 0x004ba870 mov qword [rbx + 0x40], rax | *((rbx + 0x40)) = rax; 0x004ba874 mov rax, qword [rip + 0x41282d] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba87b test rax, rax | 0x004ba87e mov qword [rsp + 0x18], rbp | *((rsp + 0x18)) = rbp; | if (rax == 0) { 0x004ba883 jne 0x4ba88a | 0x004ba885 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba88a lea r15, [rbx + 0x48] | r15 = rbx + 0x48; 0x004ba88e xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba891 movups xmmword [r15], xmm0 | __asm ("movups xmmword [r15], xmm0"); 0x004ba895 mov qword [r15 + 0x10], 0 | *((r15 + 0x10)) = 0; 0x004ba89d mov qword [rbx + 0x60], rax | *((rbx + 0x60)) = rax; 0x004ba8a1 mov rsi, qword [rip + 0x412800] | rsi = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba8a8 test rsi, rsi | 0x004ba8ab mov rbp, qword [rsp + 0x10] | rbp = *((rsp + 0x10)); | if (rsi != 0) { 0x004ba8b0 jne 0x4ba8ba | goto label_0; | } 0x004ba8b2 call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004ba8b7 mov rsi, rax | rsi = rax; | } | label_0: 0x004ba8ba mov byte [rbx + 0x1e8], 0 | *((rbx + 0x1e8)) = 0; 0x004ba8c1 mov qword [rbx + 0x1f0], rsi | *((rbx + 0x1f0)) = rsi; 0x004ba8c8 mov r13, qword [rbx] | r13 = *(rbx); 0x004ba8cb mov rax, qword [r13] | rax = *(r13); 0x004ba8cf mov esi, 0x40 | esi = 0x40; 0x004ba8d4 mov rdi, r13 | rdi = r13; 0x004ba8d7 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x004ba8da mov r12, rax | r12 = rax; 0x004ba8dd mov rax, qword [rbx] | rax = *(rbx); 0x004ba8e0 mov dword [r12 + 0x30], 0xffffffff | *((r12 + 0x30)) = 0xffffffff; 0x004ba8e9 test rax, rax | | if (rax == 0) { 0x004ba8ec jne 0x4ba8ff | 0x004ba8ee mov rax, qword [rip + 0x4127b3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba8f5 test rax, rax | | if (rax != 0) { 0x004ba8f8 jne 0x4ba8ff | goto label_1; | } 0x004ba8fa call 0x518150 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_1: 0x004ba8ff mov qword [r12 + 0x38], rax | *((r12 + 0x38)) = rax; 0x004ba904 mov qword [rbx + 0x1f8], r12 | *((rbx + 0x1f8)) = r12; 0x004ba90b add rsp, 0x28 | 0x004ba90f pop rbx | 0x004ba910 pop r12 | 0x004ba912 pop r13 | 0x004ba914 pop r14 | 0x004ba916 pop r15 | 0x004ba918 pop rbp | 0x004ba919 ret | return rax; | }