; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/assume @ 0x41a680 */ | #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, uint32_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>*) */ 0x0041a680 push rbp | 0x0041a681 push r15 | 0x0041a683 push r14 | 0x0041a685 push r13 | 0x0041a687 push r12 | 0x0041a689 push rbx | 0x0041a68a sub rsp, 0x18 | 0x0041a68e cmp rsi, rdx | | if (rsi == rdx) { 0x0041a691 je 0x41a70e | goto label_1; | } 0x0041a693 mov r14, rcx | r14 = rcx; 0x0041a696 mov r15, rdx | r15 = rdx; 0x0041a699 mov r12, rsi | r12 = rsi; 0x0041a69c mov rbx, rdi | rbx = rdi; 0x0041a69f sub r15, rsi | r15 -= rsi; 0x0041a6a2 xor ebp, ebp | ebp = 0; 0x0041a6a4 lea r13, [rsp + 8] | r13 = rsp + 8; 0x0041a6a9 jmp 0x41a6b9 | | while (ecx == 0) { | label_0: 0x0041a6b0 add rbp, 0x40 | rbp += 0x40; 0x0041a6b4 cmp r15, rbp | | if (r15 == rbp) { 0x0041a6b7 je 0x41a70e | goto label_1; | } 0x0041a6b9 mov rax, qword [r14] | rax = *(r14); 0x0041a6bc mov ecx, dword [r12 + rbp + 0x30] | ecx = *((r12 + rbp + 0x30)); 0x0041a6c1 mov dword [rbx + rbp + 0x30], ecx | *((rbx + rbp + 0x30)) = ecx; 0x0041a6c5 test rax, rax | | if (rax == 0) { 0x0041a6c8 jne 0x41a6e0 | 0x0041a6ca mov rax, qword [rip + 0x25f4e7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041a6d1 test rax, rax | | if (rax != 0) { 0x0041a6d4 jne 0x41a6e0 | goto label_2; | } 0x0041a6d6 call 0x41f8a0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0041a6db mov ecx, dword [rbx + rbp + 0x30] | ecx = *((rbx + rbp + 0x30)); 0x0041a6df nop | | } | label_2: 0x0041a6e0 mov qword [rbx + rbp + 0x38], rax | *((rbx + rbp + 0x38)) = rax; 0x0041a6e5 test ecx, ecx | 0x0041a6e7 je 0x41a6b0 | | } 0x0041a6e9 lea rcx, [rbx + rbp] | rcx = rbx + rbp; 0x0041a6ed mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0041a6f2 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0041a6f7 mov edx, dword [r12 + rbp + 0x30] | edx = *((r12 + rbp + 0x30)); 0x0041a6fc test edx, edx | | if (edx == 0) { 0x0041a6fe je 0x41a6b0 | goto label_0; | } 0x0041a700 lea rdi, [r12 + rbp] | 0x0041a704 mov rsi, r13 | 0x0041a707 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); 0x0041a70c jmp 0x41a6b0 | goto label_0; | label_1: 0x0041a70e add rsp, 0x18 | 0x0041a712 pop rbx | 0x0041a713 pop r12 | 0x0041a715 pop r13 | 0x0041a717 pop r14 | 0x0041a719 pop r15 | 0x0041a71b pop rbp | 0x0041a71c ret | return rax; | }