; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/none @ 0x415410 */ | #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&) */ 0x00415410 push rbp | 0x00415411 push r15 | 0x00415413 push r14 | 0x00415415 push r13 | 0x00415417 push r12 | 0x00415419 push rbx | 0x0041541a push rax | 0x0041541b mov r15, rsi | r15 = rsi; 0x0041541e mov rbx, rdi | rbx = rdi; 0x00415421 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00415424 movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x00415427 mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x0041542f mov rdi, qword [rdx] | rdi = *(rdx); 0x00415432 mov qword [rbx + 0x18], rdi | *((rbx + 0x18)) = rdi; 0x00415436 mov rsi, qword [rsi + 8] | rsi = *((rsi + 8)); 0x0041543a sub rsi, qword [r15] | rsi -= *(r15); | if (rsi == 0) { 0x0041543d je 0x4154cb | goto label_0; | } 0x00415443 mov rax, rsi | rax = rsi; 0x00415446 sar rax, 7 | rax >>= 7; 0x0041544a movabs rbp, 0xaaaaaaaaaaaaaaab | 0x00415454 imul rbp, rax | rbp *= rax; 0x00415458 mov rax, qword [rdi] | rax = *(rdi); 0x0041545b call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0041545e mov r12, rax | r12 = rax; 0x00415461 mov qword [rbx + 8], rax | *((rbx + 8)) = rax; 0x00415465 mov qword [rbx], rax | *(rbx) = rax; 0x00415468 mov qword [rbx + 0x10], rbp | *((rbx + 0x10)) = rbp; 0x0041546c mov rbp, qword [r15] | rbp = *(r15); 0x0041546f mov r14, qword [r15 + 8] | r14 = *((r15 + 8)); 0x00415473 cmp rbp, r14 | | if (rbp == r14) { 0x00415476 je 0x4154be | goto label_1; | } 0x00415478 mov qword [rsp], rbx | *(rsp) = rbx; 0x0041547c mov r13, qword [rbx + 0x18] | r13 = *((rbx + 0x18)); 0x00415480 sub r14, rbp | r14 -= rbp; 0x00415483 xor ebx, ebx | ebx = 0; 0x00415485 nop word cs:[rax + rax] | 0x0041548f nop | | do { 0x00415490 lea rsi, [rbp + rbx] | 0x00415495 lea rdi, [r12 + rbx] | 0x00415499 mov rdx, r13 | 0x0041549c call 0x40a0f0 | BloombergLP::balb::Choice3::Choice3(BloombergLP::balb::Choice3const&,BloombergLP::bslma::Allocator*) (r12 + rbx, rbp + rbx, r13); 0x004154a1 add rbx, 0x180 | rbx += 0x180; 0x004154a8 cmp r14, rbx | 0x004154ab jne 0x415490 | | } while (r14 != rbx); 0x004154ad mov rbp, qword [r15] | rbp = *(r15); 0x004154b0 mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x004154b4 mov rbx, qword [rsp] | rbx = *(rsp); 0x004154b8 mov r12, qword [rbx + 8] | r12 = *((rbx + 8)); 0x004154bc jmp 0x4154c1 | goto label_2; | label_1: 0x004154be mov rax, rbp | rax = rbp; | label_2: 0x004154c1 sub rax, rbp | rax -= rbp; 0x004154c4 add rax, r12 | rax += r12; 0x004154c7 mov qword [rbx + 8], rax | *((rbx + 8)) = rax; | label_0: 0x004154cb add rsp, 8 | 0x004154cf pop rbx | 0x004154d0 pop r12 | 0x004154d2 pop r13 | 0x004154d4 pop r14 | 0x004154d6 pop r15 | 0x004154d8 pop rbp | 0x004154d9 ret | return rax; | }