; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4ba500 */ | #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; | int64_t var_28h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Sequence1::Sequence1(BloombergLP::bslma::Allocator*) */ 0x004ba500 push rbp | 0x004ba501 push r15 | 0x004ba503 push r14 | 0x004ba505 push r13 | 0x004ba507 push r12 | 0x004ba509 push rbx | 0x004ba50a sub rsp, 0x38 | 0x004ba50e mov rbx, rdi | rbx = rdi; 0x004ba511 test rsi, rsi | | if (rsi != 0) { 0x004ba514 je 0x4ba578 | 0x004ba516 mov qword [rbx], rsi | *(rbx) = rsi; 0x004ba519 lea rax, [rbx + 8] | rax = rbx + 8; 0x004ba51d mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x004ba522 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba525 movups xmmword [rbx + 8], xmm0 | __asm ("movups xmmword [rbx + 8], xmm0"); 0x004ba529 mov qword [rbx + 0x18], 0 | *((rbx + 0x18)) = 0; 0x004ba531 lea rbp, [rbx + 0x20] | rbp = rbx + 0x20; 0x004ba535 mov qword [rbx + 0x20], rsi | *((rbx + 0x20)) = rsi; 0x004ba539 lea r14, [rbx + 0x28] | r14 = rbx + 0x28; 0x004ba53d movups xmmword [rbx + 0x28], xmm0 | __asm ("movups xmmword [rbx + 0x28], xmm0"); 0x004ba541 mov qword [rbx + 0x38], 0 | *((rbx + 0x38)) = 0; 0x004ba549 lea rax, [rbx + 0x40] | rax = rbx + 0x40; 0x004ba54d mov qword [rsp + 0x28], rax | *((rsp + 0x28)) = rax; 0x004ba552 mov qword [rbx + 0x40], rsi | *((rbx + 0x40)) = rsi; 0x004ba556 lea r13, [rbx + 0x48] | r13 = rbx + 0x48; 0x004ba55a movups xmmword [rbx + 0x48], xmm0 | __asm ("movups xmmword [rbx + 0x48], xmm0"); 0x004ba55e mov qword [rbx + 0x58], 0 | *((rbx + 0x58)) = 0; 0x004ba566 lea rax, [rbx + 0x60] | rax = rbx + 0x60; 0x004ba56a mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x004ba56f mov qword [rbx + 0x60], rsi | *((rbx + 0x60)) = rsi; 0x004ba573 jmp 0x4ba63e | | } else { 0x004ba578 mov rax, qword [rip + 0x412b29] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba57f test rax, rax | | if (rax == 0) { 0x004ba582 jne 0x4ba589 | 0x004ba584 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba589 mov qword [rbx], rax | *(rbx) = rax; 0x004ba58c lea rbp, [rbx + 8] | rbp = rbx + 8; 0x004ba590 mov rax, qword [rip + 0x412b11] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba597 test rax, rax | | if (rax == 0) { 0x004ba59a jne 0x4ba5a1 | 0x004ba59c call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba5a1 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba5a4 movups xmmword [rbp], xmm0 | __asm ("movups xmmword [rbp], xmm0"); 0x004ba5a8 mov qword [rbp + 0x10], 0 | *((rbp + 0x10)) = 0; 0x004ba5b0 lea rcx, [rbx + 0x20] | rcx = rbx + 0x20; 0x004ba5b4 mov qword [rsp + 0x10], rcx | *((rsp + 0x10)) = rcx; 0x004ba5b9 mov qword [rbx + 0x20], rax | *((rbx + 0x20)) = rax; 0x004ba5bd mov rax, qword [rip + 0x412ae4] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba5c4 test rax, rax | 0x004ba5c7 mov qword [rsp + 0x18], rbp | *((rsp + 0x18)) = rbp; | if (rax == 0) { 0x004ba5cc jne 0x4ba5d3 | 0x004ba5ce call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba5d3 lea r14, [rbx + 0x28] | r14 = rbx + 0x28; 0x004ba5d7 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba5da movups xmmword [r14], xmm0 | __asm ("movups xmmword [r14], xmm0"); 0x004ba5de mov qword [r14 + 0x10], 0 | *((r14 + 0x10)) = 0; 0x004ba5e6 lea r15, [rbx + 0x40] | r15 = rbx + 0x40; 0x004ba5ea mov qword [rbx + 0x40], rax | *((rbx + 0x40)) = rax; 0x004ba5ee mov rax, qword [rip + 0x412ab3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba5f5 test rax, rax | 0x004ba5f8 mov qword [rsp + 0x28], r15 | *((rsp + 0x28)) = r15; | if (rax == 0) { 0x004ba5fd jne 0x4ba604 | 0x004ba5ff call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba604 lea r13, [rbx + 0x48] | r13 = rbx + 0x48; 0x004ba608 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004ba60b movups xmmword [r13], xmm0 | __asm ("movups xmmword [r13], xmm0"); 0x004ba610 mov qword [r13 + 0x10], 0 | *((r13 + 0x10)) = 0; 0x004ba618 lea rcx, [rbx + 0x60] | rcx = rbx + 0x60; 0x004ba61c mov qword [rsp + 0x20], rcx | *((rsp + 0x20)) = rcx; 0x004ba621 mov qword [rbx + 0x60], rax | *((rbx + 0x60)) = rax; 0x004ba625 mov rsi, qword [rip + 0x412a7c] | rsi = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba62c test rsi, rsi | | if (rsi == 0) { 0x004ba62f jne 0x4ba639 | 0x004ba631 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004ba636 mov rsi, rax | rsi = rax; | } 0x004ba639 mov rbp, qword [rsp + 0x10] | rbp = *((rsp + 0x10)); | } 0x004ba63e mov byte [rbx + 0x1e8], 0 | *((rbx + 0x1e8)) = 0; 0x004ba645 mov qword [rbx + 0x1f0], rsi | *((rbx + 0x1f0)) = rsi; 0x004ba64c mov r12, qword [rbx] | r12 = *(rbx); 0x004ba64f mov rax, qword [r12] | rax = *(r12); 0x004ba653 mov esi, 0x40 | esi = 0x40; 0x004ba658 mov rdi, r12 | rdi = r12; 0x004ba65b call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x004ba65e mov r15, rax | r15 = rax; 0x004ba661 mov rax, qword [rbx] | rax = *(rbx); 0x004ba664 mov dword [r15 + 0x30], 0xffffffff | *((r15 + 0x30)) = 0xffffffff; 0x004ba66c test rax, rax | | if (rax == 0) { 0x004ba66f jne 0x4ba682 | 0x004ba671 mov rax, qword [rip + 0x412a30] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba678 test rax, rax | | if (rax != 0) { 0x004ba67b jne 0x4ba682 | goto label_0; | } 0x004ba67d call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x004ba682 mov qword [r15 + 0x38], rax | *((r15 + 0x38)) = rax; 0x004ba686 mov qword [rbx + 0x1f8], r15 | *((rbx + 0x1f8)) = r15; 0x004ba68d add rsp, 0x38 | 0x004ba691 pop rbx | 0x004ba692 pop r12 | 0x004ba694 pop r13 | 0x004ba696 pop r14 | 0x004ba698 pop r15 | 0x004ba69a pop rbp | 0x004ba69b ret | return rax; | }