; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/assume @ 0x41a760 */ | #include | ; (fcn) method.void_BloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept_BloombergLP::ball::UserFieldValue__bsl::allocator_BloombergLP::ball.UserFieldValue____BloombergLP::ball::UserFieldValue__BloombergLP::ball::UserFieldValue__BloombergLP::ball::UserFiel () | int64_t method_void_BloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept_BloombergLP::ball::UserFieldValue_bsl::allocator_BloombergLP::ball_UserFieldValue_BloombergLP::ball::UserFieldValue_BloombergLP::ball::UserFieldValue_BloombergLP::ball::UserFiel (int64_t arg4, int64_t arg3, uint32_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bslalg::ArrayPrimitives_Imp::moveIfNoexcept >(BloombergLP::ball::UserFieldValue*, BloombergLP::ball::UserFieldValue*, BloombergLP::ball::UserFieldValue*, bsl::allocator, BloombergLP::bslmf::MetaInt<0>*) */ 0x0041a760 push rbp | 0x0041a761 push r15 | 0x0041a763 push r14 | 0x0041a765 push r13 | 0x0041a767 push r12 | 0x0041a769 push rbx | 0x0041a76a sub rsp, 0x18 | 0x0041a76e cmp rsi, rdx | | if (rsi == rdx) { 0x0041a771 je 0x41a7ee | goto label_1; | } 0x0041a773 mov r14, rcx | r14 = rcx; 0x0041a776 mov r15, rdx | r15 = rdx; 0x0041a779 mov r12, rsi | r12 = rsi; 0x0041a77c mov rbx, rdi | rbx = rdi; 0x0041a77f sub r15, rsi | r15 -= rsi; 0x0041a782 xor ebp, ebp | ebp = 0; 0x0041a784 lea r13, [rsp + 8] | r13 = rsp + 8; 0x0041a789 jmp 0x41a799 | | while (ecx == 0) { | label_0: 0x0041a790 add rbp, 0x40 | rbp += 0x40; 0x0041a794 cmp r15, rbp | | if (r15 == rbp) { 0x0041a797 je 0x41a7ee | goto label_1; | } 0x0041a799 mov rax, qword [r14] | rax = *(r14); 0x0041a79c mov ecx, dword [r12 + rbp + 0x30] | ecx = *((r12 + rbp + 0x30)); 0x0041a7a1 mov dword [rbx + rbp + 0x30], ecx | *((rbx + rbp + 0x30)) = ecx; 0x0041a7a5 test rax, rax | | if (rax == 0) { 0x0041a7a8 jne 0x41a7c0 | 0x0041a7aa mov rax, qword [rip + 0x25f407] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041a7b1 test rax, rax | | if (rax != 0) { 0x0041a7b4 jne 0x41a7c0 | goto label_2; | } 0x0041a7b6 call 0x41f8a0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0041a7bb mov ecx, dword [rbx + rbp + 0x30] | ecx = *((rbx + rbp + 0x30)); 0x0041a7bf nop | | } | label_2: 0x0041a7c0 mov qword [rbx + rbp + 0x38], rax | *((rbx + rbp + 0x38)) = rax; 0x0041a7c5 test ecx, ecx | 0x0041a7c7 je 0x41a790 | | } 0x0041a7c9 lea rcx, [rbx + rbp] | rcx = rbx + rbp; 0x0041a7cd mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0041a7d2 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0041a7d7 mov edx, dword [r12 + rbp + 0x30] | edx = *((r12 + rbp + 0x30)); 0x0041a7dc test edx, edx | | if (edx == 0) { 0x0041a7de je 0x41a790 | goto label_0; | } 0x0041a7e0 lea rdi, [r12 + rbp] | 0x0041a7e4 mov rsi, r13 | 0x0041a7e7 call 0x41a190 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_CopyConstructVisitor&,int)const (r12 + rbp, r13, rdx, rcx, r8, r9); 0x0041a7ec jmp 0x41a790 | goto label_0; | label_1: 0x0041a7ee add rsp, 0x18 | 0x0041a7f2 pop rbx | 0x0041a7f3 pop r12 | 0x0041a7f5 pop r13 | 0x0041a7f7 pop r14 | 0x0041a7f9 pop r15 | 0x0041a7fb pop rbp | 0x0041a7fc ret | return rax; | }