; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4ba870 */ | #include | ; (fcn) method.BloombergLP::s_baltst::Sequence1.Sequence1_BloombergLP::s_baltst::Sequence1_const__BloombergLP::bslma::Allocator_ () | int64_t method_BloombergLP::s_baltst::Sequence1_Sequence1_BloombergLP::s_baltst::Sequence1_const_BloombergLP::bslma::Allocator_ (int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_18h; | int64_t var_20h; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* BloombergLP::s_baltst::Sequence1::Sequence1(BloombergLP::s_baltst::Sequence1 const&, BloombergLP::bslma::Allocator*) */ 0x004ba870 push rbp | 0x004ba871 push r15 | 0x004ba873 push r14 | 0x004ba875 push r13 | 0x004ba877 push r12 | 0x004ba879 push rbx | 0x004ba87a sub rsp, 0x28 | 0x004ba87e mov rbp, rdx | 0x004ba881 mov rbx, rsi | rbx = rsi; 0x004ba884 mov r12, rdi | r12 = rdi; 0x004ba887 test rdx, rdx | | if (rdx != 0) { 0x004ba88a je 0x4ba895 | 0x004ba88c mov qword [r12], rbp | *(r12) = rbp; 0x004ba890 mov rax, rbp | rax = rbp; 0x004ba893 jmp 0x4ba8bb | | } else { 0x004ba895 mov rax, qword [rip + 0x41280c] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba89c test rax, rax | | if (rax == 0) { 0x004ba89f jne 0x4ba8a6 | 0x004ba8a1 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } 0x004ba8a6 mov qword [r12], rax | *(r12) = rax; 0x004ba8aa mov rax, qword [rip + 0x4127f7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba8b1 test rax, rax | | if (rax != 0) { 0x004ba8b4 jne 0x4ba8bb | goto label_0; | } 0x004ba8b6 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x004ba8bb lea rdi, [r12 + 8] | 0x004ba8c0 lea rsi, [rbx + 8] | 0x004ba8c4 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004ba8c9 lea rdx, [rsp + 8] | 0x004ba8ce mov qword [rsp + 0x20], rdi | *((rsp + 0x20)) = rdi; 0x004ba8d3 call 0x4c5670 | bsl::vector,bsl::allocator>>::vector(bsl::vector,bsl::allocator>>const&,bsl::allocator>const&) (r12 + 8, rbx + 8, rsp + 8); 0x004ba8d8 mov rax, rbp | rax = rbp; 0x004ba8db test rbp, rbp | | if (rbp == 0) { 0x004ba8de jne 0x4ba8f1 | 0x004ba8e0 mov rax, qword [rip + 0x4127c1] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba8e7 test rax, rax | | if (rax != 0) { 0x004ba8ea jne 0x4ba8f1 | goto label_1; | } 0x004ba8ec call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_1: 0x004ba8f1 lea rdi, [r12 + 0x28] | 0x004ba8f6 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004ba8fb lea rsi, [rbx + 0x28] | 0x004ba8ff lea rdx, [rsp + 8] | 0x004ba904 mov qword [rsp + 0x18], rdi | *((rsp + 0x18)) = rdi; 0x004ba909 call 0x4c5720 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (r12 + 0x28, rbx + 0x28, rsp + 8); 0x004ba90e mov rax, rbp | rax = rbp; 0x004ba911 test rbp, rbp | | if (rbp == 0) { 0x004ba914 jne 0x4ba927 | 0x004ba916 mov rax, qword [rip + 0x41278b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba91d test rax, rax | | if (rax != 0) { 0x004ba920 jne 0x4ba927 | goto label_2; | } 0x004ba922 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_2: 0x004ba927 lea r13, [r12 + 0x48] | r13 = r12 + 0x48; 0x004ba92c mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004ba931 lea rsi, [rbx + 0x48] | 0x004ba935 lea rdx, [rsp + 8] | 0x004ba93a mov rdi, r13 | 0x004ba93d call 0x4c57d0 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (r13, rbx + 0x48, rsp + 8); 0x004ba942 test rbp, rbp | | if (rbp == 0) { 0x004ba945 jne 0x4ba95b | 0x004ba947 mov rbp, qword [rip + 0x41275a] | rbp = BloombergLP::bslma::Default::s_defaultAllocator; 0x004ba94e test rbp, rbp | | if (rbp != 0) { 0x004ba951 jne 0x4ba95b | goto label_3; | } 0x004ba953 call 0x517520 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x004ba958 mov rbp, rax | | } | label_3: 0x004ba95b lea r14, [r12 + 0x68] | r14 = r12 + 0x68; 0x004ba960 mov byte [r12 + 0x1e8], 0 | *((r12 + 0x1e8)) = 0; 0x004ba969 mov qword [r12 + 0x1f0], rbp | *((r12 + 0x1f0)) = rbp; 0x004ba971 cmp byte [rbx + 0x1e8], 0 | | if (*((rbx + 0x1e8)) != 0) { 0x004ba978 je 0x4ba992 | 0x004ba97a lea rsi, [rbx + 0x68] | 0x004ba97e mov rdi, r14 | 0x004ba981 mov rdx, rbp | 0x004ba984 call 0x4b8cc0 | BloombergLP::s_baltst::Choice3::Choice3(BloombergLP::s_baltst::Choice3const&,BloombergLP::bslma::Allocator*) (r14, rbx + 0x68, rbp); 0x004ba989 mov byte [r12 + 0x1e8], 1 | *((r12 + 0x1e8)) = 1; | } 0x004ba992 mov rbp, qword [r12] | rbp = *(r12); 0x004ba996 mov rax, qword [rbp] | rax = *(rbp); 0x004ba99a mov esi, 0x40 | esi = 0x40; 0x004ba99f mov rdi, rbp | rdi = rbp; 0x004ba9a2 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x004ba9a5 mov r15, rax | r15 = rax; 0x004ba9a8 mov rsi, qword [rbx + 0x1f8] | 0x004ba9af mov rdx, qword [r12] | 0x004ba9b3 mov rdi, rax | 0x004ba9b6 call 0x4b7e20 | BloombergLP::s_baltst::Choice2::Choice2(BloombergLP::s_baltst::Choice2const&,BloombergLP::bslma::Allocator*) (rax, *((rbx + 0x1f8)), *(r12)); 0x004ba9bb mov qword [r12 + 0x1f8], r15 | *((r12 + 0x1f8)) = r15; 0x004ba9c3 add rsp, 0x28 | 0x004ba9c7 pop rbx | 0x004ba9c8 pop r12 | 0x004ba9ca pop r13 | 0x004ba9cc pop r14 | 0x004ba9ce pop r15 | 0x004ba9d0 pop rbp | 0x004ba9d1 ret | return rax; | }