; assembly | /* r2dec pseudo code output */ | /* bdlat_symbolicconverter.t/assume @ 0x40fd30 */ | #include | ; (fcn) method.int_BloombergLP::test::MixedSequence::accessAttributes_BloombergLP::bdlat_SymbolicConverter_StoreInSequence_BloombergLP::test.MixedSequence____BloombergLP::bdlat_SymbolicConverter_StoreInSequence_BloombergLP::test::MixedSequence___const () | uint64_t method_int_BloombergLP::test::MixedSequence::accessAttributes_BloombergLP::bdlat_SymbolicConverter_StoreInSequence_BloombergLP::test_MixedSequence_BloombergLP::bdlat_SymbolicConverter_StoreInSequence_BloombergLP::test::MixedSequence_const (int64_t arg2, int64_t arg1) { | int64_t var_8h; | int64_t var_10h; | rsi = arg2; | rdi = arg1; | /* int BloombergLP::test::MixedSequence::accessAttributes >(BloombergLP::bdlat_SymbolicConverter_StoreInSequence&) const */ 0x0040fd30 push r14 | 0x0040fd32 push rbx | 0x0040fd33 sub rsp, 0x18 | 0x0040fd37 mov rbx, rsi | rbx = rsi; 0x0040fd3a mov r14, rdi | r14 = rdi; 0x0040fd3d mov edx, 0x437ba0 | 0x0040fd42 mov rdi, rsi | 0x0040fd45 mov rsi, r14 | 0x0040fd48 call 0x40fe80 | eax = intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator()(BloombergLP::test::ChoiceAconst&,BloombergLP::bdlat_AttributeInfoconst&)const (rsi, r14, obj.BloombergLP::test::MixedSequence::ATTRIBUTE_INFO_ARRAY); 0x0040fd4d test eax, eax | | if (eax != 0) { 0x0040fd4f jne 0x40fe02 | goto label_0; | } 0x0040fd55 lea rax, [r14 + 0x40] | rax = r14 + 0x40; 0x0040fd59 mov rcx, qword [rbx + 8] | rcx = *((rbx + 8)); 0x0040fd5d mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0040fd62 mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0040fd67 mov rdi, qword [rbx] | 0x0040fd6a lea rsi, [rsp + 8] | 0x0040fd6f mov edx, 0x437eb0 | 0x0040fd74 mov ecx, 0xa | 0x0040fd79 call 0x410670 | eax = intBloombergLP::test::MixedSequence::manipulateAttribute>(BloombergLP::bdlat_SymbolicConverter_LoadValue&,char const*,int) (*(rbx), rsp + 8, "Attribute2", 0xa); 0x0040fd7e test eax, eax | | if (eax == 0) { 0x0040fd80 je 0x40fdc3 | goto label_1; | } 0x0040fd82 mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x0040fd86 mov rdi, qword [rax] | 0x0040fd89 mov esi, 0x438d42 | 0x0040fd8e mov edx, 0x1d | 0x0040fd93 call 0x40f620 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rax), "Failed to convert attribute ', 0x1d); 0x0040fd98 mov esi, 0x437eb0 | | do { 0x0040fd9d mov edx, 0xa | 0x0040fda2 mov rdi, rax | 0x0040fda5 call 0x40f620 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, "Attribute2", 0xa); 0x0040fdaa mov esi, 0x438d60 | 0x0040fdaf mov edx, 2 | 0x0040fdb4 mov rdi, rax | 0x0040fdb7 call 0x40f620 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x438d60, 2); 0x0040fdbc mov eax, 0xfffffff9 | eax = 0xfffffff9; 0x0040fdc1 jmp 0x40fe02 | goto label_0; | label_1: 0x0040fdc3 lea rsi, [r14 + 0x70] | 0x0040fdc7 mov edx, 0x437bf0 | 0x0040fdcc mov rdi, rbx | 0x0040fdcf call 0x40ff40 | eax = intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator(),BloombergLP::bdlat_AttributeInfo>(BloombergLP::bdlb::NullableValueconst&,BloombergLP::bdlat_AttributeInfoconst&)const (rbx, r14 + 0x70, 0x437bf0); 0x0040fdd4 test eax, eax | | if (eax == 0) { 0x0040fdd6 jne 0x40fe02 | 0x0040fdd8 lea rsi, [r14 + 0x78] | 0x0040fddc mov edx, 0x437c18 | 0x0040fde1 mov rdi, rbx | 0x0040fde4 call 0x410060 | eax = intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator()(BloombergLP::test::EnumerationA::Valueconst&,BloombergLP::bdlat_AttributeInfoconst&)const (rbx, r14 + 0x78, 0x437c18); 0x0040fde9 test eax, eax | | if (eax != 0) { 0x0040fdeb jne 0x40fe02 | goto label_0; | } 0x0040fded lea rsi, [r14 + 0x7c] | 0x0040fdf1 mov edx, 0x437c40 | 0x0040fdf6 mov rdi, rbx | 0x0040fdf9 call 0x410190 | eax = intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator()(intconst&,BloombergLP::bdlat_AttributeInfoconst&)const (rbx, r14 + 0x7c, 0x437c40); 0x0040fdfe test eax, eax | | if (eax == 0) { 0x0040fe00 je 0x40fe0a | goto label_2; | } | } | label_0: 0x0040fe02 add rsp, 0x18 | 0x0040fe06 pop rbx | 0x0040fe07 pop r14 | 0x0040fe09 ret | return rax; | label_2: 0x0040fe0a lea rax, [r14 + 0x80] | rax = r14 + 0x80; 0x0040fe11 mov rcx, qword [rbx + 8] | rcx = *((rbx + 8)); 0x0040fe15 mov qword [rsp + 8], rcx | *((rsp + 8)) = rcx; 0x0040fe1a mov qword [rsp + 0x10], rax | *((rsp + 0x10)) = rax; 0x0040fe1f mov rdi, qword [rbx] | 0x0040fe22 lea rsi, [rsp + 8] | 0x0040fe27 mov edx, 0x437f2e | 0x0040fe2c mov ecx, 0xa | 0x0040fe31 call 0x410bc0 | eax = intBloombergLP::test::MixedSequence::manipulateAttribute,bsl::allocator>>>(BloombergLP::bdlat_SymbolicConverter_LoadValue,bsl::allocator>>&,char const*,int) (*(rbx), rsp + 8, "Attribute6", 0xa); 0x0040fe36 test eax, eax | | if (eax == 0) { 0x0040fe38 je 0x40fe5a | goto label_3; | } 0x0040fe3a mov rax, qword [rbx + 8] | rax = *((rbx + 8)); 0x0040fe3e mov rdi, qword [rax] | 0x0040fe41 mov esi, 0x438d42 | 0x0040fe46 mov edx, 0x1d | 0x0040fe4b call 0x40f620 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rax), "Failed to convert attribute ', 0x1d); 0x0040fe50 mov esi, 0x437f2e | esi = "Attribute6"; 0x0040fe55 jmp 0x40fd9d | | } while (1); | label_3: 0x0040fe5a add r14, 0xb0 | r14 += 0xb0; 0x0040fe61 mov edx, 0x437c90 | 0x0040fe66 mov rdi, rbx | 0x0040fe69 mov rsi, r14 | 0x0040fe6c call 0x410260 | intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator()(BloombergLP::test::SequenceAconst&,BloombergLP::bdlat_AttributeInfoconst&)const (rbx, r14, 0x437c90); 0x0040fe71 jmp 0x40fe02 | goto label_0; | }