; assembly | /* r2dec pseudo code output */ | /* ball_broadcastobserver.t/none @ 0x41a980 */ | #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>*) */ 0x0041a980 push rbp | 0x0041a981 push r15 | 0x0041a983 push r14 | 0x0041a985 push r13 | 0x0041a987 push r12 | 0x0041a989 push rbx | 0x0041a98a sub rsp, 0x18 | 0x0041a98e cmp rsi, rdx | | if (rsi == rdx) { 0x0041a991 je 0x41aa0e | goto label_1; | } 0x0041a993 mov r14, rcx | r14 = rcx; 0x0041a996 mov r15, rdx | r15 = rdx; 0x0041a999 mov r12, rsi | r12 = rsi; 0x0041a99c mov rbx, rdi | rbx = rdi; 0x0041a99f sub r15, rsi | r15 -= rsi; 0x0041a9a2 xor ebp, ebp | ebp = 0; 0x0041a9a4 lea r13, [rsp + 8] | r13 = rsp + 8; 0x0041a9a9 jmp 0x41a9b9 | | while (ecx == 0) { | label_0: 0x0041a9b0 add rbp, 0x40 | rbp += 0x40; 0x0041a9b4 cmp r15, rbp | | if (r15 == rbp) { 0x0041a9b7 je 0x41aa0e | goto label_1; | } 0x0041a9b9 mov rax, qword [r14] | rax = *(r14); 0x0041a9bc mov ecx, dword [r12 + rbp + 0x30] | ecx = *((r12 + rbp + 0x30)); 0x0041a9c1 mov dword [rbx + rbp + 0x30], ecx | *((rbx + rbp + 0x30)) = ecx; 0x0041a9c5 test rax, rax | | if (rax == 0) { 0x0041a9c8 jne 0x41a9e0 | 0x0041a9ca mov rax, qword [rip + 0x2601e7] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x0041a9d1 test rax, rax | | if (rax != 0) { 0x0041a9d4 jne 0x41a9e0 | goto label_2; | } 0x0041a9d6 call 0x41fad0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); 0x0041a9db mov ecx, dword [rbx + rbp + 0x30] | ecx = *((rbx + rbp + 0x30)); 0x0041a9df nop | | } | label_2: 0x0041a9e0 mov qword [rbx + rbp + 0x38], rax | *((rbx + rbp + 0x38)) = rax; 0x0041a9e5 test ecx, ecx | 0x0041a9e7 je 0x41a9b0 | | } 0x0041a9e9 lea rcx, [rbx + rbp] | rcx = rbx + rbp; 0x0041a9ed mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0041a9f2 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0041a9f7 mov edx, dword [r12 + rbp + 0x30] | edx = *((r12 + rbp + 0x30)); 0x0041a9fc test edx, edx | | if (edx == 0) { 0x0041a9fe je 0x41a9b0 | goto label_0; | } 0x0041aa00 lea rdi, [r12 + rbp] | 0x0041aa04 mov rsi, r13 | 0x0041aa07 call 0x41a1f0 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_CopyConstructVisitor&,int)const (r12 + rbp, r13, rdx); 0x0041aa0c jmp 0x41a9b0 | goto label_0; | label_1: 0x0041aa0e add rsp, 0x18 | 0x0041aa12 pop rbx | 0x0041aa13 pop r12 | 0x0041aa15 pop r13 | 0x0041aa17 pop r14 | 0x0041aa19 pop r15 | 0x0041aa1b pop rbp | 0x0041aa1c ret | return rax; | }