; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/none @ 0x41aab0 */ | #include | ; (fcn) method.void_BloombergLP::bslalg::ArrayPrimitives_Imp::insert_BloombergLP::ball::UserFieldValue__BloombergLP::ball::UserFieldValue_const__bsl::allocator_BloombergLP::ball.UserFieldValue____BloombergLP::ball::UserFieldValue__BloombergLP::ball::UserFieldV () | int64_t method_void_BloombergLP::bslalg::ArrayPrimitives_Imp::insert_BloombergLP::ball::UserFieldValue_BloombergLP::ball::UserFieldValue_const_bsl::allocator_BloombergLP::ball_UserFieldValue_BloombergLP::ball::UserFieldValue_BloombergLP::ball::UserFieldV (int64_t arg6, uint32_t arg5, int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_20h; | r9 = arg6; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bslalg::ArrayPrimitives_Imp::insert >(BloombergLP::ball::UserFieldValue*, BloombergLP::ball::UserFieldValue*, BloombergLP::ball::UserFieldValue const*, BloombergLP::ball::UserFieldValue const*, unsigned long, bsl::allocator, BloombergLP::bslmf::MetaInt<0>*) */ 0x0041aab0 push rbp | 0x0041aab1 push r15 | 0x0041aab3 push r14 | 0x0041aab5 push r13 | 0x0041aab7 push r12 | 0x0041aab9 push rbx | 0x0041aaba sub rsp, 0x28 | 0x0041aabe test r8, r8 | | if (r8 == 0) { 0x0041aac1 je 0x41abe8 | goto label_0; | } 0x0041aac7 mov r14, r9 | r14 = r9; 0x0041aaca mov rbp, r8 | 0x0041aacd mov r15, rdx | r15 = rdx; 0x0041aad0 mov r12, rsi | r12 = rsi; 0x0041aad3 mov r13, rdi | r13 = rdi; 0x0041aad6 mov rbx, rsi | rbx = rsi; 0x0041aad9 sub rbx, rdi | rbx -= rdi; 0x0041aadc mov rax, rbx | rax = rbx; 0x0041aadf sar rax, 6 | rax >>= 6; 0x0041aae3 cmp rax, r8 | | if (rax <= r8) { 0x0041aae6 jbe 0x41ab50 | goto label_1; | } 0x0041aae8 shl rbp, 6 | rbp <<= 6; 0x0041aaec mov rsi, r12 | rsi = r12; 0x0041aaef sub rsi, rbp | rsi -= rbp; 0x0041aaf2 mov rax, qword [r14] | rax = *(r14); 0x0041aaf5 mov qword [rsp + 0x20], rax | *((rsp + 0x20)) = rax; 0x0041aafa lea rcx, [rsp + 0x20] | 0x0041aaff mov rdi, r12 | rdi = r12; 0x0041ab02 mov rdx, r12 | 0x0041ab05 xor r8d, r8d | r8d = 0; 0x0041ab08 call 0x41a980 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (rdi, rsi, r12, rsp + 0x20); 0x0041ab0d mov r14, rbp | r14 = rbp; 0x0041ab10 xor r14, 0xffffffffffffffc0 | r14 ^= 0xffffffffffffffc0; 0x0041ab14 mov qword [rsp + 8], rbp | *((rsp + 8)) = rbp; 0x0041ab19 mov rax, r12 | rax = r12; 0x0041ab1c lea r12, [r13 + rbp] | r12 = r13 + rbp; 0x0041ab21 mov qword [rsp], rax | *(rsp) = rax; 0x0041ab25 mov rbp, rax | 0x0041ab28 nop dword [rax + rax] | | do { 0x0041ab30 cmp r12, rbp | | if (r12 == rbp) { 0x0041ab33 je 0x41abca | goto label_2; | } 0x0041ab39 lea rbx, [rbp - 0x40] | rbx = rbp - 0x40; 0x0041ab3d add rbp, r14 | rbp += r14; 0x0041ab40 mov rdi, rbx | 0x0041ab43 mov rsi, rbp | 0x0041ab46 call 0x41a000 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::operator=(BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>const&) (rbx, rbp); 0x0041ab4b mov rbp, rbx | 0x0041ab4e jmp 0x41ab30 | | } while (1); | label_1: 0x0041ab50 mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0041ab55 shl rbp, 6 | rbp <<= 6; 0x0041ab59 lea rdi, [r13 + rbp] | 0x0041ab5e mov rax, qword [r14] | rax = *(r14); 0x0041ab61 mov qword [rsp + 0x18], rax | *((rsp + 0x18)) = rax; 0x0041ab66 lea rcx, [rsp + 0x18] | 0x0041ab6b mov rsi, r13 | 0x0041ab6e mov rdx, r12 | 0x0041ab71 xor r8d, r8d | r8d = 0; 0x0041ab74 call 0x41a980 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (r13 + rbp, r13, r12, rsp + 0x18); 0x0041ab79 mov rax, r13 | rax = r13; 0x0041ab7c sub rax, r12 | rax -= r12; 0x0041ab7f mov qword [rsp], rax | *(rsp) = rax; | if (rax == 0) { 0x0041ab83 je 0x41aba8 | goto label_3; | } 0x0041ab85 nop word cs:[rax + rax] | 0x0041ab8f nop | | do { 0x0041ab90 mov rdi, r13 | 0x0041ab93 mov rsi, r15 | 0x0041ab96 call 0x41a000 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::operator=(BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>const&) (r13, r15); 0x0041ab9b add r15, 0x40 | r15 += 0x40; 0x0041ab9f add r13, 0x40 | r13 += 0x40; 0x0041aba3 cmp r12, r13 | 0x0041aba6 jne 0x41ab90 | | } while (r12 != r13); | label_3: 0x0041aba8 mov rax, qword [r14] | rax = *(r14); 0x0041abab mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0041abb0 lea rcx, [rsp + 0x10] | 0x0041abb5 mov rdi, r12 | 0x0041abb8 mov rsi, r15 | 0x0041abbb mov rdx, qword [rsp + 8] | 0x0041abc0 xor r8d, r8d | r8d = 0; 0x0041abc3 call 0x41a850 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::copyConstruct>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValueconst*,BloombergLP::ball::UserFieldValueconst*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (r12, r15, *((rsp + 8)), rsp + 0x10); 0x0041abc8 jmp 0x41abe8 | goto label_0; | label_2: 0x0041abca cmp r13, rbp | | if (r13 == rbp) { 0x0041abcd je 0x41abe8 | goto label_0; | } 0x0041abcf nop | | do { 0x0041abd0 mov rdi, r13 | 0x0041abd3 mov rsi, r15 | 0x0041abd6 call 0x41a000 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::operator=(BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>const&) (r13, r15); 0x0041abdb add r13, 0x40 | r13 += 0x40; 0x0041abdf add r15, 0x40 | r15 += 0x40; 0x0041abe3 cmp rbp, r13 | 0x0041abe6 jne 0x41abd0 | | } while (rbp != r13); | label_0: 0x0041abe8 add rsp, 0x28 | 0x0041abec pop rbx | 0x0041abed pop r12 | 0x0041abef pop r13 | 0x0041abf1 pop r14 | 0x0041abf3 pop r15 | 0x0041abf5 pop rbp | 0x0041abf6 ret | return rax; | }