; assembly | /* r2dec pseudo code output */ | /* bdlt_defaulttimetablecache.t/assume @ 0x40a980 */ | #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>*) */ 0x0040a980 push rbp | 0x0040a981 push r15 | 0x0040a983 push r14 | 0x0040a985 push r13 | 0x0040a987 push r12 | 0x0040a989 push rbx | 0x0040a98a push rax | 0x0040a98b mov r15, rdx | r15 = rdx; 0x0040a98e mov rbx, rdi | rbx = rdi; 0x0040a991 cmp rdi, rsi | | if (rdi >= rsi) { 0x0040a994 jae 0x40aa4e | goto label_0; | } 0x0040a99a mov r14, rsi | r14 = rsi; 0x0040a99d lea rbp, [rsi - 0x30] | rbp = rsi - 0x30; 0x0040a9a1 mov rax, qword [rcx] | rax = *(rcx); 0x0040a9a4 mov rcx, qword [rsi - 8] | rcx = *((rsi - 8)); 0x0040a9a8 mov qword [rsi + 0x28], rcx | *((rsi + 0x28)) = rcx; 0x0040a9ac mov ecx, dword [rsi - 0x30] | ecx = *((rsi - 0x30)); 0x0040a9af mov dword [rsi], ecx | 0x0040a9b1 add rsi, 0xffffffffffffffd8 | rsi += 0xffffffffffffffd8; 0x0040a9b5 lea r12, [r14 + 8] | r12 = r14 + 8; 0x0040a9b9 mov qword [rsp], rax | *(rsp) = rax; 0x0040a9bd mov rdx, rsp | 0x0040a9c0 mov rdi, r12 | 0x0040a9c3 call 0x409110 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (r12, ecx, rsp); 0x0040a9c8 cmp rbp, rbx | | if (rbp == rbx) { 0x0040a9cb je 0x40aa12 | goto label_1; | } 0x0040a9cd mov r13, rsp | r13 = rsp; | do { 0x0040a9d0 mov eax, dword [rbp - 0x30] | eax = *((rbp - 0x30)); 0x0040a9d3 mov dword [rbp], eax | *(rbp) = eax; 0x0040a9d6 lea rdi, [rbp + 8] | rdi = rbp + 8; 0x0040a9da mov rsi, qword [rbp + 0x10] | rsi = *((rbp + 0x10)); 0x0040a9de mov rax, qword [rbp + 8] | rax = *((rbp + 8)); 0x0040a9e2 cmp rsi, rax | | if (rsi != rax) { 0x0040a9e5 je 0x40a9ee | 0x0040a9e7 mov qword [rbp + 0x10], rax | *((rbp + 0x10)) = rax; 0x0040a9eb mov rsi, rax | | } 0x0040a9ee mov rdx, qword [rbp - 0x28] | 0x0040a9f2 mov rcx, qword [rbp - 0x20] | 0x0040a9f6 mov r8, r13 | r8 = r13; 0x0040a9f9 call 0x409230 | 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))); 0x0040a9fe mov rax, qword [rbp - 8] | rax = *((rbp - 8)); 0x0040aa02 mov qword [rbp + 0x28], rax | *((rbp + 0x28)) = rax; 0x0040aa06 lea rax, [rbp - 0x30] | rax = rbp - 0x30; 0x0040aa0a mov rbp, rax | 0x0040aa0d cmp rbx, rax | 0x0040aa10 jne 0x40a9d0 | | } while (rbx != rax); | label_1: 0x0040aa12 mov eax, dword [r15] | eax = *(r15); 0x0040aa15 mov dword [rbx], eax | *(rbx) = eax; 0x0040aa17 cmp rbx, r15 | | if (rbx != r15) { 0x0040aa1a je 0x40aa44 | 0x0040aa1c lea rdi, [rbx + 8] | rdi = rbx + 8; 0x0040aa20 mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x0040aa24 mov rsi, qword [rbx + 0x10] | rsi = *((rbx + 0x10)); 0x0040aa28 cmp rsi, rax | | if (rsi != rax) { 0x0040aa2b je 0x40aa34 | 0x0040aa2d mov qword [rbx + 0x10], rax | *((rbx + 0x10)) = rax; 0x0040aa31 mov rsi, rax | | } 0x0040aa34 mov rdx, qword [r15 + 8] | 0x0040aa38 mov rcx, qword [r15 + 0x10] | 0x0040aa3c mov r8, rsp | r8 = rsp; 0x0040aa3f call 0x409230 | voidbsl::vector>::privateInsert(BloombergLP::bdlt::Timetable_CompactableTransitionconst*,BloombergLP::bdlt::Timetable_CompactableTransitionconst*,BloombergLP::bdlt::Timetable_CompactableTransitionconst*,std::_1::forward_iterator_tagconst&) (rdi, rax, *((r15 + 8)), *((r15 + 0x10))); | } 0x0040aa44 mov rax, qword [r15 + 0x28] | rax = *((r15 + 0x28)); 0x0040aa48 mov qword [rbx + 0x28], rax | *((rbx + 0x28)) = rax; 0x0040aa4c jmp 0x40aa78 | goto label_2; | label_0: 0x0040aa4e mov rax, qword [rcx] | rax = *(rcx); 0x0040aa51 mov rcx, qword [r15 + 0x28] | rcx = *((r15 + 0x28)); 0x0040aa55 mov qword [rbx + 0x28], rcx | *((rbx + 0x28)) = rcx; 0x0040aa59 mov ecx, dword [r15] | ecx = *(r15); 0x0040aa5c mov dword [rbx], ecx | *(rbx) = ecx; 0x0040aa5e add r15, 8 | r15 += 8; 0x0040aa62 add rbx, 8 | rbx += 8; 0x0040aa66 mov qword [rsp], rax | *(rsp) = rax; 0x0040aa6a mov rdx, rsp | 0x0040aa6d mov rdi, rbx | 0x0040aa70 mov rsi, r15 | 0x0040aa73 call 0x409110 | bsl::vector>::vector(bsl::vector>const&,bsl::allocatorconst&) (rbx, r15, rsp); | label_2: 0x0040aa78 add rsp, 8 | 0x0040aa7c pop rbx | 0x0040aa7d pop r12 | 0x0040aa7f pop r13 | 0x0040aa81 pop r14 | 0x0040aa83 pop r15 | 0x0040aa85 pop rbp | 0x0040aa86 ret | return rax; | }