; assembly | /* r2dec pseudo code output */ | /* bdlt_timetable.t/none @ 0x424ed0 */ | #include | ; (fcn) method.bsl::vector_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt::Timetable_Day___bsl::allocator_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt::Timetable_Day_____.vector_bsl::vector_BloombergLP::bdlc::CompactedArray_ () | int64_t method_bsl::vector_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt::Timetable_Day_bsl::allocator_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt::Timetable_Day_vector_bsl::vector_BloombergLP::bdlc::CompactedArray_ (int64_t arg3, uint32_t arg2, int64_t arg1) { | uint32_t var_8h; | int64_t var_10h; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* bsl::vector, bsl::allocator > >::vector(bsl::vector, bsl::allocator > >&&, bsl::allocator > const&) */ 0x00424ed0 push rbp | 0x00424ed1 push r15 | 0x00424ed3 push r14 | 0x00424ed5 push r13 | 0x00424ed7 push r12 | 0x00424ed9 push rbx | 0x00424eda sub rsp, 0x18 | 0x00424ede mov rbx, rsi | rbx = rsi; 0x00424ee1 mov r15, rdi | r15 = rdi; 0x00424ee4 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00424ee7 movups xmmword [rdi], xmm0 | __asm ("movups xmmword [rdi], xmm0"); 0x00424eea mov qword [rdi + 0x10], 0 | *((rdi + 0x10)) = 0; 0x00424ef2 mov rdi, qword [rdx] | rdi = *(rdx); 0x00424ef5 mov qword [r15 + 0x18], rdi | *((r15 + 0x18)) = rdi; 0x00424ef9 cmp rdi, qword [rsi + 0x18] | | if (rdi != *((rsi + 0x18))) { 0x00424efd jne 0x424f2f | goto label_1; | } 0x00424eff mov rax, qword [rbx] | rax = *(rbx); 0x00424f02 mov qword [r15], rax | *(r15) = rax; 0x00424f05 mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x00424f09 mov qword [r15 + 8], rax | *((r15 + 8)) = rax; 0x00424f0d mov rax, qword [rbx + 0x10] | rax = *((rbx + 0x10)); 0x00424f11 mov qword [r15 + 0x10], rax | *((r15 + 0x10)) = rax; 0x00424f15 movups xmmword [rbx], xmm0 | __asm ("movups xmmword [rbx], xmm0"); 0x00424f18 mov qword [rbx + 0x10], 0 | *((rbx + 0x10)) = 0; | do { | label_0: 0x00424f20 add rsp, 0x18 | 0x00424f24 pop rbx | 0x00424f25 pop r12 | 0x00424f27 pop r13 | 0x00424f29 pop r14 | 0x00424f2b pop r15 | 0x00424f2d pop rbp | 0x00424f2e ret | return rax; | label_1: 0x00424f2f mov rsi, qword [rbx + 8] | rsi = *((rbx + 8)); 0x00424f33 sub rsi, qword [rbx] | rsi -= *(rbx); 0x00424f36 je 0x424f20 | | } while (rsi == 0); 0x00424f38 mov rax, rsi | rax = rsi; 0x00424f3b sar rax, 4 | rax >>= 4; 0x00424f3f movabs rbp, 0xaaaaaaaaaaaaaaab | 0x00424f49 imul rbp, rax | rbp *= rax; 0x00424f4d mov rax, qword [rdi] | rax = *(rdi); 0x00424f50 call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x00424f53 mov r14, rax | r14 = rax; 0x00424f56 mov qword [r15 + 8], rax | *((r15 + 8)) = rax; 0x00424f5a mov qword [r15], rax | *(r15) = rax; 0x00424f5d mov qword [r15 + 0x10], rbp | *((r15 + 0x10)) = rbp; 0x00424f61 mov rbp, qword [rbx] | rbp = *(rbx); 0x00424f64 mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x00424f68 cmp rbp, rax | | if (rbp == rax) { 0x00424f6b je 0x424fd9 | goto label_2; | } 0x00424f6d mov r12, qword [r15 + 0x18] | r12 = *((r15 + 0x18)); 0x00424f71 sub rax, rbp | rax -= rbp; 0x00424f74 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x00424f79 xor r13d, r13d | r13d = 0; | do { 0x00424f7c mov rax, qword [rbp + r13 + 0x28] | rax = *((rbp + r13 + 0x28)); 0x00424f81 mov qword [r14 + r13 + 0x28], rax | *((r14 + r13 + 0x28)) = rax; 0x00424f86 mov eax, dword [rbp + r13] | eax = *((rbp + r13)); 0x00424f8b mov dword [r14 + r13], eax | *((r14 + r13)) = eax; 0x00424f8f mov rax, r12 | rax = r12; 0x00424f92 test r12, r12 | | if (r12 == 0) { 0x00424f95 jne 0x424fa8 | 0x00424f97 mov rax, qword [rip + 0x26fd4a] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00424f9e test rax, rax | | if (rax != 0) { 0x00424fa1 jne 0x424fa8 | goto label_3; | } 0x00424fa3 call 0x435780 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_3: 0x00424fa8 lea rsi, [rbp + r13 + 8] | 0x00424fad lea rdi, [r14 + r13 + 8] | 0x00424fb2 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x00424fb7 lea rdx, [rsp + 0x10] | 0x00424fbc call 0x425050 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (r14 + r13 + 8, rbp + r13 + 8, rsp + 0x10); 0x00424fc1 add r13, 0x30 | r13 += 0x30; 0x00424fc5 cmp qword [rsp + 8], r13 | 0x00424fca jne 0x424f7c | | } while (*((rsp + 8)) != r13); 0x00424fcc mov rbp, qword [rbx] | rbp = *(rbx); 0x00424fcf mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x00424fd3 mov r14, qword [r15 + 8] | r14 = *((r15 + 8)); 0x00424fd7 jmp 0x424fdc | goto label_4; | label_2: 0x00424fd9 mov rax, rbp | rax = rbp; | label_4: 0x00424fdc sub rax, rbp | rax -= rbp; 0x00424fdf add rax, r14 | rax += r14; 0x00424fe2 mov qword [r15 + 8], rax | *((r15 + 8)) = rax; 0x00424fe6 jmp 0x424f20 | goto label_0; | }