; assembly | /* r2dec pseudo code output */ | /* baljsn_encoder.t/assume @ 0x4c5720 */ | #include | ; (fcn) method.bsl::vector_BloombergLP::s_baltst::Choice3__bsl::allocator_BloombergLP::s_baltst::Choice3___.vector_bsl::vector_BloombergLP::s_baltst::Choice3__bsl::allocator_BloombergLP::s_baltst::Choice3____const__bsl::allocator_BloombergLP::s_baltst::Choice3_ () | int64_t method_bsl::vector_BloombergLP::s_baltst::Choice3_bsl::allocator_BloombergLP::s_baltst::Choice3_vector_bsl::vector_BloombergLP::s_baltst::Choice3_bsl::allocator_BloombergLP::s_baltst::Choice3_const_bsl::allocator_BloombergLP::s_baltst::Choice3_ (int64_t arg3, int64_t arg2, int64_t arg1) { | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* bsl::vector >::vector(bsl::vector > const&, bsl::allocator const&) */ 0x004c5720 push r15 | 0x004c5722 push r14 | 0x004c5724 push r12 | 0x004c5726 push rbx | 0x004c5727 push rax | 0x004c5728 mov r14, rsi | r14 = rsi; 0x004c572b mov rbx, rdi | rbx = rdi; 0x004c572e xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004c5731 movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x004c5734 mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x004c573c mov rdi, qword [rdx] | rdi = *(rdx); 0x004c573f mov qword [rbx + 0x18], rdi | *((rbx + 0x18)) = rdi; 0x004c5743 mov rsi, qword [rsi + 8] | rsi = *((rsi + 8)); 0x004c5747 sub rsi, qword [r14] | rsi -= *(r14); | if (rsi != 0) { 0x004c574a je 0x4c579d | 0x004c574c mov rax, rsi | rax = rsi; 0x004c574f sar rax, 7 | rax >>= 7; 0x004c5753 movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; 0x004c575d imul r12, rax | r12 *= rax; 0x004c5761 mov rax, qword [rdi] | rax = *(rdi); 0x004c5764 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x004c5767 mov r15, rax | r15 = rax; 0x004c576a mov qword [rbx + 8], rax | *((rbx + 8)) = rax; 0x004c576e mov qword [rbx], rax | *(rbx) = rax; 0x004c5771 mov qword [rbx + 0x10], r12 | *((rbx + 0x10)) = r12; 0x004c5775 mov rsi, qword [r14] | 0x004c5778 mov rdx, qword [r14 + 8] | 0x004c577c mov rax, qword [rbx + 0x18] | rax = *((rbx + 0x18)); 0x004c5780 mov qword [rsp], rax | *(rsp) = rax; 0x004c5784 mov rcx, rsp | 0x004c5787 mov rdi, r15 | 0x004c578a xor r8d, r8d | r8d = 0; 0x004c578d call 0x4c9ca0 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::copyConstruct>(BloombergLP::s_baltst::Choice3*,BloombergLP::s_baltst::Choice3const*,BloombergLP::s_baltst::Choice3const*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (r15, *(r14), *((r14 + 8)), rsp); 0x004c5792 mov rax, qword [r14 + 8] | rax = *((r14 + 8)); 0x004c5796 sub rax, qword [r14] | rax -= *(r14); 0x004c5799 add qword [rbx + 8], rax | *((rbx + 8)) += rax; | } 0x004c579d add rsp, 8 | 0x004c57a1 pop rbx | 0x004c57a2 pop r12 | 0x004c57a4 pop r14 | 0x004c57a6 pop r15 | 0x004c57a8 ret | return rax; | }