; assembly | /* r2dec pseudo code output */ | /* ball_userfieldvalue.t/assume @ 0x420610 */ | #include | ; (fcn) sym._ZNSt3__14swapIN11BloombergLP4bdlb10VariantImpINS1_5bslmf8TypeListIJxdN3bsl12basic_stringIcNS_11char_traitsIcEENS6_9allocatorI () | int64_t ZNSt3_14swapIN11BloombergLP4bdlb10VariantImpINS1_5bslmf8TypeListIJxdN3bsl12basic_stringIcNS_11char_traitsIcEENS6_9allocatorI (int64_t arg2, int64_t arg1) { | int64_t var_8h_2; | int64_t var_10h_2; | uint32_t var_40h; | int64_t var_8h; | rsi = arg2; | rdi = arg1; 0x00420610 push rbp | 0x00420611 push r14 | 0x00420613 push rbx | 0x00420614 sub rsp, 0x50 | 0x00420618 mov r14, rsi | r14 = rsi; 0x0042061b mov rbx, rdi | rbx = rdi; 0x0042061e mov ebp, dword [rdi + 0x30] | ebp = *((rdi + 0x30)); 0x00420621 mov rax, qword [rdi + 0x38] | rax = *((rdi + 0x38)); 0x00420625 mov dword [rsp + 0x40], ebp | *((rsp + 0x40)) = ebp; 0x00420629 test rax, rax | | if (rax == 0) { 0x0042062c jne 0x42063f | 0x0042062e mov rax, qword [rip + 0x25f5e3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00420635 test rax, rax | | if (rax != 0) { 0x00420638 jne 0x42063f | goto label_0; | } 0x0042063a call 0x4247a0 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x0042063f mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x00420644 test ebp, ebp | | if (ebp != 0) { 0x00420646 je 0x420668 | 0x00420648 lea rcx, [rsp + 0x10] | rcx = rsp + 0x10; 0x0042064d mov qword [rsp], rcx | *(rsp) = rcx; 0x00420651 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x00420656 mov edx, dword [rbx + 0x30] | edx = *((rbx + 0x30)); 0x00420659 test edx, edx | | if (edx == 0) { 0x0042065b je 0x420668 | goto label_1; | } 0x0042065d mov rsi, rsp | rsi = rsp; 0x00420660 mov rdi, rbx | rdi = rbx; 0x00420663 call 0x4208e0 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_MoveConstructVisitor&,int) (); | } | label_1: 0x00420668 cmp r14, rbx | | if (r14 != rbx) { 0x0042066b je 0x4206ba | 0x0042066d mov edx, dword [rbx + 0x30] | edx = *((rbx + 0x30)); 0x00420670 cmp edx, dword [r14 + 0x30] | | if (edx == *((r14 + 0x30))) { 0x00420674 jne 0x42068b | 0x00420676 test edx, edx | | if (edx == 0) { 0x00420678 je 0x4206ba | goto label_2; | } 0x0042067a mov qword [rsp], rbx | *(rsp) = rbx; 0x0042067e mov rsi, rsp | rsi = rsp; 0x00420681 mov rdi, r14 | rdi = r14; 0x00420684 call 0x420ab0 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_MoveAssignVisitor&,int) (); 0x00420689 jmp 0x4206ba | | } else { 0x0042068b mov rdi, rbx | 0x0042068e call 0x41fec0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (rbx); 0x00420693 mov edx, dword [r14 + 0x30] | edx = *((r14 + 0x30)); 0x00420697 test edx, edx | | if (edx == 0) { 0x00420699 je 0x4206ba | goto label_2; | } 0x0042069b mov rax, qword [rbx + 0x38] | rax = *((rbx + 0x38)); 0x0042069f mov qword [rsp], rbx | *(rsp) = rbx; 0x004206a3 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x004206a8 mov rsi, rsp | rsi = rsp; 0x004206ab mov rdi, r14 | rdi = r14; 0x004206ae call 0x4208e0 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_MoveConstructVisitor&,int) (); 0x004206b3 mov eax, dword [r14 + 0x30] | eax = *((r14 + 0x30)); 0x004206b7 mov dword [rbx + 0x30], eax | *((rbx + 0x30)) = eax; | } | } | label_2: 0x004206ba lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x004206bf cmp rax, r14 | | if (rax != r14) { 0x004206c2 je 0x420717 | 0x004206c4 mov edx, dword [r14 + 0x30] | edx = *((r14 + 0x30)); 0x004206c8 cmp edx, dword [rsp + 0x40] | | if (edx == *((rsp + 0x40))) { 0x004206cc jne 0x4206e5 | 0x004206ce test edx, edx | | if (edx == 0) { 0x004206d0 je 0x420717 | goto label_3; | } 0x004206d2 mov qword [rsp], r14 | *(rsp) = r14; 0x004206d6 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x004206db mov rsi, rsp | rsi = rsp; 0x004206de call 0x420ab0 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_MoveAssignVisitor&,int) (); 0x004206e3 jmp 0x420717 | | } else { 0x004206e5 mov rdi, r14 | 0x004206e8 call 0x41fec0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (r14); 0x004206ed mov edx, dword [rsp + 0x40] | edx = *((rsp + 0x40)); 0x004206f1 test edx, edx | | if (edx == 0) { 0x004206f3 je 0x420717 | goto label_3; | } 0x004206f5 mov rax, qword [r14 + 0x38] | rax = *((r14 + 0x38)); 0x004206f9 mov qword [rsp], r14 | *(rsp) = r14; 0x004206fd mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x00420702 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x00420707 mov rsi, rsp | rsi = rsp; 0x0042070a call 0x4208e0 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_MoveConstructVisitor&,int) (); 0x0042070f mov eax, dword [rsp + 0x40] | eax = *((rsp + 0x40)); 0x00420713 mov dword [r14 + 0x30], eax | *((r14 + 0x30)) = eax; | } | } | label_3: 0x00420717 lea rdi, [rsp + 0x10] | 0x0042071c call 0x41fec0 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::reset() (rsp + 0x10); 0x00420721 add rsp, 0x50 | 0x00420725 pop rbx | 0x00420726 pop r14 | 0x00420728 pop rbp | 0x00420729 ret | return rax; | }