; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/assume @ 0x415440 */ | #include | ; (fcn) method.bsl::vector_BloombergLP::balb::Choice3__bsl::allocator_BloombergLP::balb::Choice3___.vector_bsl::vector_BloombergLP::balb::Choice3__bsl::allocator_BloombergLP::balb::Choice3____const__bsl::allocator_BloombergLP::balb::Choice3__const_ () | int64_t method_bsl::vector_BloombergLP::balb::Choice3_bsl::allocator_BloombergLP::balb::Choice3_vector_bsl::vector_BloombergLP::balb::Choice3_bsl::allocator_BloombergLP::balb::Choice3_const_bsl::allocator_BloombergLP::balb::Choice3_const_ (int64_t arg3, int64_t arg2, int64_t arg1) { | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* bsl::vector >::vector(bsl::vector > const&, bsl::allocator const&) */ 0x00415440 push r15 | 0x00415442 push r14 | 0x00415444 push r12 | 0x00415446 push rbx | 0x00415447 push rax | 0x00415448 mov r14, rsi | r14 = rsi; 0x0041544b mov rbx, rdi | rbx = rdi; 0x0041544e xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00415451 movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x00415454 mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x0041545c mov rdi, qword [rdx] | rdi = *(rdx); 0x0041545f mov qword [rbx + 0x18], rdi | *((rbx + 0x18)) = rdi; 0x00415463 mov rsi, qword [rsi + 8] | rsi = *((rsi + 8)); 0x00415467 sub rsi, qword [r14] | rsi -= *(r14); | if (rsi != 0) { 0x0041546a je 0x4154bd | 0x0041546c mov rax, rsi | rax = rsi; 0x0041546f sar rax, 7 | rax >>= 7; 0x00415473 movabs r12, 0xaaaaaaaaaaaaaaab | r12 = 0xaaaaaaaaaaaaaaab; 0x0041547d imul r12, rax | r12 *= rax; 0x00415481 mov rax, qword [rdi] | rax = *(rdi); 0x00415484 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x00415487 mov r15, rax | r15 = rax; 0x0041548a mov qword [rbx + 8], rax | *((rbx + 8)) = rax; 0x0041548e mov qword [rbx], rax | *(rbx) = rax; 0x00415491 mov qword [rbx + 0x10], r12 | *((rbx + 0x10)) = r12; 0x00415495 mov rsi, qword [r14] | 0x00415498 mov rdx, qword [r14 + 8] | 0x0041549c mov rax, qword [rbx + 0x18] | rax = *((rbx + 0x18)); 0x004154a0 mov qword [rsp], rax | *(rsp) = rax; 0x004154a4 mov rcx, rsp | 0x004154a7 mov rdi, r15 | 0x004154aa xor r8d, r8d | r8d = 0; 0x004154ad call 0x41b340 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::copyConstruct>(BloombergLP::balb::Choice3*,BloombergLP::balb::Choice3const*,BloombergLP::balb::Choice3const*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (r15, *(r14), *((r14 + 8)), rsp); 0x004154b2 mov rax, qword [r14 + 8] | rax = *((r14 + 8)); 0x004154b6 sub rax, qword [r14] | rax -= *(r14); 0x004154b9 add qword [rbx + 8], rax | *((rbx + 8)) += rax; | } 0x004154bd add rsp, 8 | 0x004154c1 pop rbx | 0x004154c2 pop r12 | 0x004154c4 pop r14 | 0x004154c6 pop r15 | 0x004154c8 ret | return rax; | }