; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/assume @ 0x41a340 */ | #include | ; (fcn) method.void_bsl::vector_BloombergLP::ball::UserFieldValue__bsl::allocator_BloombergLP::ball::UserFieldValue___::privateInsert_BloombergLP::ball.UserFieldValue_const__BloombergLP::ball::UserFieldValue_const__BloombergLP::ball::UserFieldValue_const__Blo () | int64_t method_void_bsl::vector_BloombergLP::ball::UserFieldValue_bsl::allocator_BloombergLP::ball::UserFieldValue_::privateInsert_BloombergLP::ball_UserFieldValue_const_BloombergLP::ball::UserFieldValue_const_BloombergLP::ball::UserFieldValue_const_Blo (int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | int64_t var_8h_2; | int64_t var_50h; | int64_t var_58h; | int64_t var_60h; | int64_t var_28h; | int64_t var_30h; | int64_t var_38h; | int64_t var_40h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void bsl::vector >::privateInsert(BloombergLP::ball::UserFieldValue const*, BloombergLP::ball::UserFieldValue const*, BloombergLP::ball::UserFieldValue const*, std::__1::forward_iterator_tag const&) */ 0x0041a340 push rbp | 0x0041a341 push r15 | 0x0041a343 push r14 | 0x0041a345 push r13 | 0x0041a347 push r12 | 0x0041a349 push rbx | 0x0041a34a sub rsp, 0x48 | 0x0041a34e mov r12, rdx | r12 = rdx; 0x0041a351 mov r8, rsi | r8 = rsi; 0x0041a354 mov r14, rdi | r14 = rdi; 0x0041a357 movabs rdx, 0x3ffffffffffffff | rdx = 0x3ffffffffffffff; 0x0041a361 mov rdi, rcx | rdi = rcx; 0x0041a364 sub rdi, r12 | rdi -= r12; 0x0041a367 mov rbx, rdi | rbx = rdi; 0x0041a36a mov rsi, qword [r14 + 8] | rsi = *((r14 + 8)); 0x0041a36e mov rbp, rsi | 0x0041a371 sub rbp, qword [r14] | rbp -= *(r14); 0x0041a374 sar rbx, 6 | rbx >>= 6; 0x0041a378 sar rbp, 6 | rbp >>= 6; 0x0041a37c mov rax, rdx | rax = rdx; 0x0041a37f sub rax, rbp | rax -= rbp; 0x0041a382 cmp rbx, rax | | if (rbx > rax) { 0x0041a385 ja 0x41a4cb | goto label_0; | } 0x0041a38b lea r15, [r14 + 8] | r15 = r14 + 8; 0x0041a38f add rbp, rbx | rbp += rbx; 0x0041a392 mov rax, qword [r14 + 0x10] | rax = *((r14 + 0x10)); 0x0041a396 cmp rbp, rax | | if (rbp <= rax) { 0x0041a399 jbe 0x41a485 | goto label_1; | } 0x0041a39f mov qword [rsp + 0x28], r8 | *((rsp + 0x28)) = r8; 0x0041a3a4 mov qword [rsp + 0x30], r15 | *((rsp + 0x30)) = r15; 0x0041a3a9 mov qword [rsp + 0x38], rcx | *((rsp + 0x38)) = rcx; 0x0041a3ae mov rdi, rbp | 0x0041a3b1 mov rsi, rax | 0x0041a3b4 call 0x42af50 | rax = bsl::Vector_Util::computeNewCapacity(unsigned long,unsigned long,unsigned long) (rbp, rax, rdx); 0x0041a3b9 mov r15, rax | r15 = rax; 0x0041a3bc mov rdi, qword [r14 + 0x18] | rdi = *((r14 + 0x18)); 0x0041a3c0 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0041a3c3 movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x0041a3c7 mov qword [rsp + 0x10], 0 | *((rsp + 0x10)) = 0; 0x0041a3d0 mov qword [rsp + 0x18], rdi | *((rsp + 0x18)) = rdi; 0x0041a3d5 mov rsi, rax | rsi = rax; 0x0041a3d8 shl rsi, 6 | rsi <<= 6; 0x0041a3dc mov rax, qword [rdi] | rax = *(rdi); 0x0041a3df call qword [rax + 0x10] | rax = uint64_t (*rax + 0x10)() (); 0x0041a3e2 mov r13, rax | r13 = rax; 0x0041a3e5 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0041a3ea mov qword [rsp], rax | *(rsp) = rax; 0x0041a3ee mov qword [rsp + 0x10], r15 | *((rsp + 0x10)) = r15; 0x0041a3f3 mov rdx, qword [r14] | 0x0041a3f6 mov r8, qword [r14 + 8] | 0x0041a3fa mov rax, qword [r14 + 0x18] | rax = *((r14 + 0x18)); 0x0041a3fe mov qword [rsp + 0x40], rax | *((rsp + 0x40)) = rax; 0x0041a403 sub rsp, 8 | 0x0041a407 lea rax, [rsp + 0x48] | rax = rsp + 0x48; 0x0041a40c mov rdi, r13 | 0x0041a40f mov rsi, qword [rsp + 0x38] | 0x0041a414 mov rcx, qword [rsp + 0x30] | 0x0041a419 mov r9, r12 | 0x0041a41c push rax | 0x0041a41d push rbx | 0x0041a41e push qword [rsp + 0x50] | 0x0041a422 call 0x41a540 | voidBloombergLP::bslalg::ArrayPrimitives::destructiveMoveAndInsert,BloombergLP::ball::UserFieldValueconst*>(bsl::allocator_traits>::pointer,bsl::allocator_traits>::pointer*,bsl::allocator_traits>::pointer,bsl::allocator_traits>::pointer,bsl::allocator_traits>::pointer,BloombergLP::ball::UserFieldValueconst*,BloombergLP::ball::UserFieldValueconst*,unsigned long,bsl::allocator) (r13, *((rsp + 0x38)), *(r14), *((rsp + 0x30)), *((r14 + 8)), r12); 0x0041a427 add rsp, 0x20 | 0x0041a42b shl rbp, 6 | rbp <<= 6; 0x0041a42f add r13, rbp | r13 += rbp; 0x0041a432 mov qword [rsp + 8], r13 | *((rsp + 8)) = r13; 0x0041a437 mov rsi, rsp | 0x0041a43a mov rdi, r14 | 0x0041a43d call 0x42af80 | bsl::Vector_Util::swap(void*,void*) (r14, rsp); 0x0041a442 mov rbx, qword [rsp] | rbx = *(rsp); 0x0041a446 test rbx, rbx | | if (rbx == 0) { 0x0041a449 je 0x41a4bc | goto label_2; | } 0x0041a44b mov rbp, qword [rsp + 8] | rbp = *((rsp + 8)); 0x0041a450 cmp rbx, rbp | | if (rbx == rbp) { 0x0041a453 je 0x41a475 | goto label_3; | } 0x0041a455 nop word cs:[rax + rax] | 0x0041a45f nop | | do { 0x0041a460 mov rdi, rbx | 0x0041a463 call 0x4167b0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (rbx); 0x0041a468 add rbx, 0x40 | rbx += 0x40; 0x0041a46c cmp rbp, rbx | 0x0041a46f jne 0x41a460 | | } while (rbp != rbx); 0x0041a471 mov rbx, qword [rsp] | rbx = *(rsp); | label_3: 0x0041a475 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0041a47a mov rax, qword [rdi] | rax = *(rdi); 0x0041a47d mov rsi, rbx | rsi = rbx; 0x0041a480 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0041a483 jmp 0x41a4bc | goto label_2; | label_1: 0x0041a485 test rdi, rdi | | if (rdi != 0) { 0x0041a488 je 0x41a4b2 | 0x0041a48a mov rax, qword [r14 + 0x18] | rax = *((r14 + 0x18)); 0x0041a48e mov qword [rsp], rax | *(rsp) = rax; 0x0041a492 sub rsp, 8 | 0x0041a496 lea r9, [rsp + 8] | 0x0041a49b mov rdi, r8 | 0x0041a49e mov rdx, r12 | 0x0041a4a1 mov r8, rbx | 0x0041a4a4 push 0 | 0x0041a4a6 call 0x41a840 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::insert>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValueconst*,BloombergLP::ball::UserFieldValueconst*,unsigned long,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (r8, rsi, r12, rcx, rbx, rsp + 8); 0x0041a4ab add rsp, 0x10 | 0x0041a4af mov rsi, qword [r15] | rsi = *(r15); | } 0x0041a4b2 shl rbx, 6 | rbx <<= 6; 0x0041a4b6 add rbx, rsi | rbx += rsi; 0x0041a4b9 mov qword [r15], rbx | *(r15) = rbx; | label_2: 0x0041a4bc add rsp, 0x48 | 0x0041a4c0 pop rbx | 0x0041a4c1 pop r12 | 0x0041a4c3 pop r13 | 0x0041a4c5 pop r14 | 0x0041a4c7 pop r15 | 0x0041a4c9 pop rbp | 0x0041a4ca ret | return rax; | label_0: 0x0041a4cb mov edi, 0x447dbd | 0x0041a4d0 call 0x4211a0 | return BloombergLP::bslstl::StdExceptUtil::throwLengthError(char const*) ("vector<...>::insert(pos,first,last): vector too long"); | }