; assembly | /* r2dec pseudo code output */ | /* bdlat_symbolicconverter.t/assume @ 0x40f440 */ | #include | ; (fcn) method.int_BloombergLP::bdlat_SymbolicConverter::convert_BloombergLP::test::ChoiceA__BloombergLP::test.ChoiceB__BloombergLP::test::ChoiceA__BloombergLP::test::ChoiceB_const_ () | int64_t method_int_BloombergLP::bdlat_SymbolicConverter::convert_BloombergLP::test::ChoiceA_BloombergLP::test_ChoiceB_BloombergLP::test::ChoiceA_BloombergLP::test::ChoiceB_const_ (uint32_t arg2, uint32_t arg1) { | int64_t var_8h; | int64_t var_10h; | int64_t var_18h; | int64_t var_a0h; | int64_t var_a8h; | rsi = arg2; | rdi = arg1; | /* int BloombergLP::bdlat_SymbolicConverter::convert(BloombergLP::test::ChoiceA*, BloombergLP::test::ChoiceB const&) */ 0x0040f440 push r15 | 0x0040f442 push r14 | 0x0040f444 push rbx | 0x0040f445 sub rsp, 0xb0 | 0x0040f44c mov r14, rsi | r14 = rsi; 0x0040f44f mov rbx, rdi | rbx = rdi; 0x0040f452 lea r15, [rsp + 0x18] | r15 = rsp + 0x18; 0x0040f457 mov qword [rsp + 0x10], 0x64fbc0 | *((rsp + 0x10)) = 0x64fbc0; 0x0040f460 mov qword [rsp + 0x18], 0x64fbe8 | *((rsp + 0x18)) = 0x64fbe8; 0x0040f469 mov rdi, r15 | rdi = r15; 0x0040f46c xor esi, esi | esi = 0; 0x0040f46e call 0x402ea0 | std::_1::ios_base::init(void*) (); 0x0040f473 mov qword [rsp + 0xa0], 0 | *((rsp + 0xa0)) = 0; 0x0040f47f mov dword [rsp + 0xa8], 0xffffffff | *((rsp + 0xa8)) = 0xffffffff; 0x0040f48a mov eax, dword [rbx + 0x30] | eax = *((rbx + 0x30)); 0x0040f48d test eax, eax | | if (eax != 0) { 0x0040f48f je 0x40f4b2 | 0x0040f491 cmp eax, 1 | | if (eax != 1) { 0x0040f494 jne 0x40f4b2 | goto label_0; | } 0x0040f496 cmp qword [rbx + 0x20], 0x17 | | if (*((rbx + 0x20)) != 0x17) { 0x0040f49b je 0x40f4aa | 0x0040f49d mov rsi, qword [rbx] | rsi = *(rbx); 0x0040f4a0 mov rdi, qword [rbx + 0x28] | rdi = *((rbx + 0x28)); 0x0040f4a4 mov rax, qword [rdi] | rax = *(rdi); 0x0040f4a7 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } 0x0040f4aa mov qword [rbx + 0x18], 0xffffffffffffffff | *((rbx + 0x18)) = 0xffffffffffffffff; | } | label_0: 0x0040f4b2 mov dword [rbx + 0x30], 0xffffffff | *((rbx + 0x30)) = 0xffffffff; 0x0040f4b9 lea rax, [rsp + 0x10] | rax = rsp + 0x10; 0x0040f4be mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0040f4c3 lea rdi, [rsp + 8] | 0x0040f4c8 mov rsi, rbx | 0x0040f4cb mov rdx, r14 | 0x0040f4ce call 0x4111e0 | eax = intBloombergLP::bdlat_SymbolicConverter_Imp::convert(BloombergLP::test::ChoiceA*,BloombergLP::bdlat_TypeCategory::Choice,BloombergLP::test::ChoiceBconst&,BloombergLP::bdlat_TypeCategory::Choice) (rsp + 8, rbx, r14); 0x0040f4d3 mov ebx, eax | ebx = eax; 0x0040f4d5 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0040f4da call 0x402e50 | std::_1::basic_ostream>::~basic_ostream() (); 0x0040f4df mov eax, ebx | eax = ebx; 0x0040f4e1 add rsp, 0xb0 | 0x0040f4e8 pop rbx | 0x0040f4e9 pop r14 | 0x0040f4eb pop r15 | 0x0040f4ed ret | return rax; | }