; assembly | /* r2dec pseudo code output */ | /* bdlt_defaulttimetablecache.t/none @ 0x40aa80 */ | #include | ; (fcn) method.void_BloombergLP::bslalg::ArrayPrimitives_Imp::insert_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt::Timetable_Day___bsl::allocator_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt.Timetable_Day______BloombergLP: () | int64_t method_void_BloombergLP::bslalg::ArrayPrimitives_Imp::insert_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt::Timetable_Day_bsl::allocator_BloombergLP::bdlc::CompactedArray_CountedValue_BloombergLP::bdlt_Timetable_Day_BloombergLP_ (int64_t arg4, int64_t arg3, int64_t arg2, uint32_t arg1) { | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bslalg::ArrayPrimitives_Imp::insert, bsl::allocator > >(BloombergLP::bdlc::CompactedArray_CountedValue*, BloombergLP::bdlc::CompactedArray_CountedValue*, BloombergLP::bslmf::MovableRef_Helper >::type, bsl::allocator >, BloombergLP::bslmf::MetaInt<0>*) */ 0x0040aa80 push rbp | 0x0040aa81 push r15 | 0x0040aa83 push r14 | 0x0040aa85 push r13 | 0x0040aa87 push r12 | 0x0040aa89 push rbx | 0x0040aa8a push rax | 0x0040aa8b mov r14, rdx | r14 = rdx; 0x0040aa8e mov rbx, rdi | rbx = rdi; 0x0040aa91 cmp rdi, rsi | | if (rdi >= rsi) { 0x0040aa94 jae 0x40ab6e | goto label_0; | } 0x0040aa9a mov r15, rsi | r15 = rsi; 0x0040aa9d lea rbp, [rsi - 0x30] | rbp = rsi - 0x30; 0x0040aaa1 mov rax, qword [rcx] | rax = *(rcx); 0x0040aaa4 mov rcx, qword [rsi - 8] | rcx = *((rsi - 8)); 0x0040aaa8 mov qword [rsi + 0x28], rcx | *((rsi + 0x28)) = rcx; 0x0040aaac mov ecx, dword [rsi - 0x30] | ecx = *((rsi - 0x30)); 0x0040aaaf mov dword [rsi], ecx | *(rsi) = ecx; 0x0040aab1 test rax, rax | | if (rax == 0) { 0x0040aab4 jne 0x40aac7 | 0x0040aab6 mov rax, qword [rip + 0x26933b] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040aabd test rax, rax | | if (rax != 0) { 0x0040aac0 jne 0x40aac7 | goto label_1; | } 0x0040aac2 call 0x418350 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_1: 0x0040aac7 lea rsi, [r15 - 0x28] | 0x0040aacb lea r12, [r15 + 8] | r12 = r15 + 8; 0x0040aacf mov qword [rsp], rax | *(rsp) = rax; 0x0040aad3 mov rdx, rsp | 0x0040aad6 mov rdi, r12 | 0x0040aad9 call 0x409130 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (r12, r15 - 0x28, rsp); 0x0040aade cmp rbp, rbx | | if (rbp == rbx) { 0x0040aae1 je 0x40ab32 | goto label_2; | } 0x0040aae3 mov r13, rsp | r13 = rsp; 0x0040aae6 nop word cs:[rax + rax] | | do { 0x0040aaf0 mov eax, dword [rbp - 0x30] | eax = *((rbp - 0x30)); 0x0040aaf3 mov dword [rbp], eax | *(rbp) = eax; 0x0040aaf6 lea rdi, [rbp + 8] | rdi = rbp + 8; 0x0040aafa mov rsi, qword [rbp + 0x10] | rsi = *((rbp + 0x10)); 0x0040aafe mov rax, qword [rbp + 8] | rax = *((rbp + 8)); 0x0040ab02 cmp rsi, rax | | if (rsi != rax) { 0x0040ab05 je 0x40ab0e | 0x0040ab07 mov qword [rbp + 0x10], rax | *((rbp + 0x10)) = rax; 0x0040ab0b mov rsi, rax | | } 0x0040ab0e mov rdx, qword [rbp - 0x28] | 0x0040ab12 mov rcx, qword [rbp - 0x20] | 0x0040ab16 mov r8, r13 | r8 = r13; 0x0040ab19 call 0x409250 | voidbsl::vector>::privateInsert(BloombergLP::bdlt::Timetable_CompactableTransitionconst*,BloombergLP::bdlt::Timetable_CompactableTransitionconst*,BloombergLP::bdlt::Timetable_CompactableTransitionconst*,std::_1::forward_iterator_tagconst&) (rdi, rax, *((rbp - 0x28)), *((rbp - 0x20))); 0x0040ab1e mov rax, qword [rbp - 8] | rax = *((rbp - 8)); 0x0040ab22 mov qword [rbp + 0x28], rax | *((rbp + 0x28)) = rax; 0x0040ab26 lea rax, [rbp - 0x30] | rax = rbp - 0x30; 0x0040ab2a mov rbp, rax | 0x0040ab2d cmp rbx, rax | 0x0040ab30 jne 0x40aaf0 | | } while (rbx != rax); | label_2: 0x0040ab32 mov eax, dword [r14] | eax = *(r14); 0x0040ab35 mov dword [rbx], eax | *(rbx) = eax; 0x0040ab37 cmp rbx, r14 | | if (rbx != r14) { 0x0040ab3a je 0x40ab64 | 0x0040ab3c lea rdi, [rbx + 8] | rdi = rbx + 8; 0x0040ab40 mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x0040ab44 mov rsi, qword [rbx + 0x10] | rsi = *((rbx + 0x10)); 0x0040ab48 cmp rsi, rax | | if (rsi != rax) { 0x0040ab4b je 0x40ab54 | 0x0040ab4d mov qword [rbx + 0x10], rax | *((rbx + 0x10)) = rax; 0x0040ab51 mov rsi, rax | | } 0x0040ab54 mov rdx, qword [r14 + 8] | 0x0040ab58 mov rcx, qword [r14 + 0x10] | 0x0040ab5c mov r8, rsp | r8 = rsp; 0x0040ab5f call 0x409250 | voidbsl::vector>::privateInsert(BloombergLP::bdlt::Timetable_CompactableTransitionconst*,BloombergLP::bdlt::Timetable_CompactableTransitionconst*,BloombergLP::bdlt::Timetable_CompactableTransitionconst*,std::_1::forward_iterator_tagconst&) (rdi, rax, *((r14 + 8)), *((r14 + 0x10))); | } 0x0040ab64 mov rax, qword [r14 + 0x28] | rax = *((r14 + 0x28)); 0x0040ab68 mov qword [rbx + 0x28], rax | *((rbx + 0x28)) = rax; 0x0040ab6c jmp 0x40abae | goto label_3; | label_0: 0x0040ab6e mov rax, qword [rcx] | rax = *(rcx); 0x0040ab71 mov rcx, qword [r14 + 0x28] | rcx = *((r14 + 0x28)); 0x0040ab75 mov qword [rbx + 0x28], rcx | *((rbx + 0x28)) = rcx; 0x0040ab79 mov ecx, dword [r14] | ecx = *(r14); 0x0040ab7c mov dword [rbx], ecx | *(rbx) = ecx; 0x0040ab7e test rax, rax | | if (rax == 0) { 0x0040ab81 jne 0x40ab94 | 0x0040ab83 mov rax, qword [rip + 0x26926e] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0040ab8a test rax, rax | | if (rax != 0) { 0x0040ab8d jne 0x40ab94 | goto label_4; | } 0x0040ab8f call 0x418350 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_4: 0x0040ab94 add r14, 8 | r14 += 8; 0x0040ab98 add rbx, 8 | rbx += 8; 0x0040ab9c mov qword [rsp], rax | *(rsp) = rax; 0x0040aba0 mov rdx, rsp | 0x0040aba3 mov rdi, rbx | 0x0040aba6 mov rsi, r14 | 0x0040aba9 call 0x409130 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (rbx, r14, rsp); | label_3: 0x0040abae add rsp, 8 | 0x0040abb2 pop rbx | 0x0040abb3 pop r12 | 0x0040abb5 pop r13 | 0x0040abb7 pop r14 | 0x0040abb9 pop r15 | 0x0040abbb pop rbp | 0x0040abbc ret | return rax; | }