; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/assume @ 0x41a540 */ | #include | ; (fcn) method.void_BloombergLP::bslalg::ArrayPrimitives::destructiveMoveAndInsert_bsl::allocator_BloombergLP::ball::UserFieldValue___BloombergLP::ball.UserFieldValue_const__bsl::allocator_traits_bsl::allocator_BloombergLP::ball::UserFieldValue___::pointer__bsl () | int64_t method_void_BloombergLP::bslalg::ArrayPrimitives::destructiveMoveAndInsert_bsl::allocator_BloombergLP::ball::UserFieldValue_BloombergLP::ball_UserFieldValue_const_bsl::allocator_traits_bsl::allocator_BloombergLP::ball::UserFieldValue_::pointer_bsl (int64_t arg_50h, int64_t arg_58h, int64_t arg_60h, int64_t arg6, int64_t arg5, int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | r9 = arg6; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bslalg::ArrayPrimitives::destructiveMoveAndInsert, BloombergLP::ball::UserFieldValue const*>(bsl::allocator_traits >::pointer, bsl::allocator_traits >::pointer*, bsl::allocator_traits >::pointer, bsl::allocator_traits >::pointer, bsl::allocator_traits >::pointer, BloombergLP::ball::UserFieldValue const*, BloombergLP::ball::UserFieldValue const*, unsigned long, bsl::allocator) */ 0x0041a540 push rbp | 0x0041a541 push r15 | 0x0041a543 push r14 | 0x0041a545 push r13 | 0x0041a547 push r12 | 0x0041a549 push rbx | 0x0041a54a sub rsp, 0x18 | 0x0041a54e mov r15, r8 | r15 = r8; 0x0041a551 mov r13, rcx | r13 = rcx; 0x0041a554 mov r14, rdx | r14 = rdx; 0x0041a557 mov rbx, qword [rsp + 0x60] | rbx = *((rsp + 0x60)); 0x0041a55c mov r12, qword [rsp + 0x58] | r12 = *((rsp + 0x58)); 0x0041a561 mov rdx, qword [rsp + 0x50] | 0x0041a566 mov qword [rsp + 8], rsi | *((rsp + 8)) = rsi; 0x0041a56b mov qword [rsi], r8 | *(rsi) = r8; 0x0041a56e mov rbp, rcx | 0x0041a571 sub rbp, r14 | rbp -= r14; 0x0041a574 mov qword [rsp + 0x10], rdi | *((rsp + 0x10)) = rdi; 0x0041a579 add rbp, rdi | rbp += rdi; 0x0041a57c mov rax, qword [rbx] | rax = *(rbx); 0x0041a57f mov qword [rsp], rax | *(rsp) = rax; 0x0041a583 mov rcx, rsp | 0x0041a586 mov rdi, rbp | 0x0041a589 mov rsi, r9 | 0x0041a58c xor r8d, r8d | r8d = 0; 0x0041a58f call 0x41a680 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::copyConstruct>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValueconst*,BloombergLP::ball::UserFieldValueconst*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (rbp, r9, *((rsp + 0x50)), rsp); 0x0041a594 shl r12, 6 | r12 <<= 6; 0x0041a598 add r12, rbp | r12 += rbp; 0x0041a59b mov rax, qword [rbx] | rax = *(rbx); 0x0041a59e mov qword [rsp], rax | *(rsp) = rax; 0x0041a5a2 mov rcx, rsp | 0x0041a5a5 mov rdi, r12 | 0x0041a5a8 mov rsi, r13 | 0x0041a5ab mov rdx, r15 | 0x0041a5ae xor r8d, r8d | r8d = 0; 0x0041a5b1 call 0x41a760 | voidBloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (r12, r13, r15, rsp); 0x0041a5b6 cmp r13, r15 | | if (r13 == r15) { 0x0041a5b9 je 0x41a5d1 | goto label_0; | } 0x0041a5bb mov rbx, r13 | rbx = r13; 0x0041a5be nop | | do { 0x0041a5c0 mov rdi, rbx | 0x0041a5c3 call 0x4167b0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (rbx); 0x0041a5c8 add rbx, 0x40 | rbx += 0x40; 0x0041a5cc cmp r15, rbx | 0x0041a5cf jne 0x41a5c0 | | } while (r15 != rbx); | label_0: 0x0041a5d1 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0041a5d6 mov qword [rax], r13 | *(rax) = r13; 0x0041a5d9 sub r15, r13 | r15 -= r13; 0x0041a5dc add r12, r15 | r12 += r15; 0x0041a5df mov rax, qword [rsp + 0x60] | rax = *((rsp + 0x60)); 0x0041a5e4 mov rax, qword [rax] | rax = *(rax); 0x0041a5e7 mov qword [rsp], rax | *(rsp) = rax; 0x0041a5eb mov rcx, rsp | 0x0041a5ee mov rdi, qword [rsp + 0x10] | 0x0041a5f3 mov rsi, r14 | 0x0041a5f6 mov rdx, r13 | 0x0041a5f9 xor r8d, r8d | r8d = 0; 0x0041a5fc call 0x41a760 | rax = voidBloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept>(BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,BloombergLP::ball::UserFieldValue*,bsl::allocator,BloombergLP::bslmf::MetaInt<0>*) (*((rsp + 0x10)), r14, r13, rsp); 0x0041a601 cmp r14, r13 | | if (r14 == r13) { 0x0041a604 je 0x41a621 | goto label_1; | } 0x0041a606 mov rbx, r14 | rbx = r14; 0x0041a609 nop dword [rax] | | do { 0x0041a610 mov rdi, rbx | 0x0041a613 call 0x4167b0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (rbx); 0x0041a618 add rbx, 0x40 | rbx += 0x40; 0x0041a61c cmp r13, rbx | 0x0041a61f jne 0x41a610 | | } while (r13 != rbx); | label_1: 0x0041a621 mov rax, qword [rsp + 8] | rax = *((rsp + 8)); 0x0041a626 mov qword [rax], r14 | *(rax) = r14; 0x0041a629 add rsp, 0x18 | 0x0041a62d pop rbx | 0x0041a62e pop r12 | 0x0041a630 pop r13 | 0x0041a632 pop r14 | 0x0041a634 pop r15 | 0x0041a636 pop rbp | 0x0041a637 ret | return rax; | }