; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/none @ 0x41a850 */ | #include | ; (fcn) method.void_BloombergLP::bslalg::ArrayPrimitives_Imp::copyConstruct_BloombergLP::ball::UserFieldValue__BloombergLP::ball::UserFieldValue_const__bsl::allocator_BloombergLP::ball.UserFieldValue____BloombergLP::ball::UserFieldValue__BloombergLP::ball::Use () | int64_t method_void_BloombergLP::bslalg::ArrayPrimitives_Imp::copyConstruct_BloombergLP::ball::UserFieldValue_BloombergLP::ball::UserFieldValue_const_bsl::allocator_BloombergLP::ball_UserFieldValue_BloombergLP::ball::UserFieldValue_BloombergLP::ball::Use (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::copyConstruct >(BloombergLP::ball::UserFieldValue*, BloombergLP::ball::UserFieldValue const*, BloombergLP::ball::UserFieldValue const*, bsl::allocator, BloombergLP::bslmf::MetaInt<0>*) */ 0x0041a850 push rbp | 0x0041a851 push r15 | 0x0041a853 push r14 | 0x0041a855 push r13 | 0x0041a857 push r12 | 0x0041a859 push rbx | 0x0041a85a sub rsp, 0x18 | 0x0041a85e cmp rsi, rdx | | if (rsi == rdx) { 0x0041a861 je 0x41a8de | goto label_1; | } 0x0041a863 mov r14, rcx | r14 = rcx; 0x0041a866 mov r15, rdx | r15 = rdx; 0x0041a869 mov r12, rsi | r12 = rsi; 0x0041a86c mov rbx, rdi | rbx = rdi; 0x0041a86f sub r15, rsi | r15 -= rsi; 0x0041a872 xor ebp, ebp | ebp = 0; 0x0041a874 lea r13, [rsp + 8] | r13 = rsp + 8; 0x0041a879 jmp 0x41a889 | | while (ecx == 0) { | label_0: 0x0041a880 add rbp, 0x40 | rbp += 0x40; 0x0041a884 cmp r15, rbp | | if (r15 == rbp) { 0x0041a887 je 0x41a8de | goto label_1; | } 0x0041a889 mov rax, qword [r14] | rax = *(r14); 0x0041a88c mov ecx, dword [r12 + rbp + 0x30] | ecx = *((r12 + rbp + 0x30)); 0x0041a891 mov dword [rbx + rbp + 0x30], ecx | *((rbx + rbp + 0x30)) = ecx; 0x0041a895 test rax, rax | | if (rax == 0) { 0x0041a898 jne 0x41a8b0 | 0x0041a89a mov rax, qword [rip + 0x260317] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041a8a1 test rax, rax | | if (rax != 0) { 0x0041a8a4 jne 0x41a8b0 | goto label_2; | } 0x0041a8a6 call 0x41fad0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0041a8ab mov ecx, dword [rbx + rbp + 0x30] | ecx = *((rbx + rbp + 0x30)); 0x0041a8af nop | | } | label_2: 0x0041a8b0 mov qword [rbx + rbp + 0x38], rax | *((rbx + rbp + 0x38)) = rax; 0x0041a8b5 test ecx, ecx | 0x0041a8b7 je 0x41a880 | | } 0x0041a8b9 lea rcx, [rbx + rbp] | rcx = rbx + rbp; 0x0041a8bd mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0041a8c2 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0041a8c7 mov edx, dword [r12 + rbp + 0x30] | edx = *((r12 + rbp + 0x30)); 0x0041a8cc test edx, edx | | if (edx == 0) { 0x0041a8ce je 0x41a880 | goto label_0; | } 0x0041a8d0 lea rdi, [r12 + rbp] | 0x0041a8d4 mov rsi, r13 | 0x0041a8d7 call 0x41a1f0 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_CopyConstructVisitor&,int)const (r12 + rbp, r13, rdx); 0x0041a8dc jmp 0x41a880 | goto label_0; | label_1: 0x0041a8de add rsp, 0x18 | 0x0041a8e2 pop rbx | 0x0041a8e3 pop r12 | 0x0041a8e5 pop r13 | 0x0041a8e7 pop r14 | 0x0041a8e9 pop r15 | 0x0041a8eb pop rbp | 0x0041a8ec ret | return rax; | }