; assembly | /* r2dec pseudo code output */ | /* ball_userfieldvalue.t/none @ 0x423130 */ | #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_18h; | uint32_t var_20h; | int64_t var_28h; | int64_t var_30h; | int64_t var_38h; | int64_t var_40h; | int64_t var_48h; | rsi = arg2; | rdi = arg1; 0x00423130 push rbp | 0x00423131 push r14 | 0x00423133 push rbx | 0x00423134 sub rsp, 0x50 | 0x00423138 mov r14, rsi | r14 = rsi; 0x0042313b mov rbx, rdi | rbx = rdi; 0x0042313e mov ebp, dword [rdi + 0x30] | ebp = *((rdi + 0x30)); 0x00423141 mov rax, qword [rdi + 0x38] | rax = *((rdi + 0x38)); 0x00423145 mov dword [rsp + 0x30], ebp | *((rsp + 0x30)) = ebp; 0x00423149 test rax, rax | | if (rax == 0) { 0x0042314c jne 0x42315f | 0x0042314e mov rax, qword [rip + 0x25fac3] | rax = BloombergLP::bslma::Default::s_defaultAllocator; 0x00423155 test rax, rax | | if (rax != 0) { 0x00423158 jne 0x42315f | goto label_0; | } 0x0042315a call 0x427340 | rax = BloombergLP::bslma::Default::determineAndReturnDefaultAllocator() (); | } | label_0: 0x0042315f mov qword [rsp + 0x38], rax | *((rsp + 0x38)) = rax; 0x00423164 test ebp, ebp | | if (ebp != 0) { 0x00423166 je 0x423189 | 0x00423168 mov rcx, rsp | rcx = rsp; 0x0042316b mov qword [rsp + 0x40], rcx | *((rsp + 0x40)) = rcx; 0x00423170 mov qword [rsp + 0x48], rax | *((rsp + 0x48)) = rax; 0x00423175 mov edx, dword [rbx + 0x30] | edx = *((rbx + 0x30)); 0x00423178 test edx, edx | | if (edx == 0) { 0x0042317a je 0x423189 | goto label_1; | } 0x0042317c lea rsi, [rsp + 0x40] | rsi = rsp + 0x40; 0x00423181 mov rdi, rbx | rdi = rbx; 0x00423184 call 0x423450 | voidBloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::doApply(BloombergLP::bdlb::Variant_MoveConstructVisitor&,int) (); | } | label_1: 0x00423189 mov rdi, rbx | 0x0042318c mov rsi, r14 | 0x0042318f call 0x423380 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::operator=(BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>&&) (rbx, r14); 0x00423194 mov rsi, rsp | 0x00423197 mov rdi, r14 | 0x0042319a call 0x423380 | BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>::operator=(BloombergLP::bdlb::VariantImp,bsl::allocator>,BloombergLP::bdlt::DatetimeTz,bsl::vector>>>&&) (r14, rsp); 0x0042319f mov eax, dword [rsp + 0x30] | eax = *((rsp + 0x30)); 0x004231a3 cmp eax, 5 | | if (eax != 5) { 0x004231a6 je 0x4231c6 | 0x004231a8 cmp eax, 3 | | if (eax != 3) { 0x004231ab jne 0x4231da | goto label_2; | } 0x004231ad cmp qword [rsp + 0x20], 0x17 | | if (*((rsp + 0x20)) == 0x17) { 0x004231b3 je 0x4231da | goto label_2; | } 0x004231b5 mov rsi, qword [rsp] | rsi = *(rsp); 0x004231b9 mov rdi, qword [rsp + 0x28] | rdi = *((rsp + 0x28)); 0x004231be mov rax, qword [rdi] | rax = *(rdi); 0x004231c1 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x004231c4 jmp 0x4231da | | } else { 0x004231c6 mov rsi, qword [rsp] | rsi = *(rsp); 0x004231ca test rsi, rsi | | if (rsi == 0) { 0x004231cd je 0x4231da | goto label_2; | } 0x004231cf mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x004231d4 mov rax, qword [rdi] | rax = *(rdi); 0x004231d7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_2: 0x004231da add rsp, 0x50 | 0x004231de pop rbx | 0x004231df pop r14 | 0x004231e1 pop rbp | 0x004231e2 ret | return rax; | }