; assembly | /* r2dec pseudo code output */ | /* bdlat_symbolicconverter.t/none @ 0x40fd00 */ | #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, uint32_t arg1) { | uint32_t var_8h; | rsi = arg2; | rdi = arg1; | /* int BloombergLP::test::MixedSequence::accessAttributes >(BloombergLP::bdlat_SymbolicConverter_StoreInSequence&) const */ 0x0040fd00 push r15 | 0x0040fd02 push r14 | 0x0040fd04 push rbx | 0x0040fd05 sub rsp, 0x10 | 0x0040fd09 mov r15, rsi | r15 = rsi; 0x0040fd0c mov r14, rdi | r14 = rdi; 0x0040fd0f mov rbx, qword [rsi + 8] | rbx = *((rsi + 8)); 0x0040fd13 mov qword [rsp], rbx | *(rsp) = rbx; 0x0040fd17 mov qword [rsp + 8], rdi | *((rsp + 8)) = rdi; 0x0040fd1c mov edi, 0x437e8d | 0x0040fd21 mov esi, 0xa | 0x0040fd26 call 0x404960 | rax = BloombergLP::test::MixedSequence::lookupAttributeInfo(char const*,int) ("Attribute1", 0xa); 0x0040fd2b test rax, rax | | if (rax != 0) { 0x0040fd2e je 0x40fd45 | 0x0040fd30 mov rdi, qword [r15] | 0x0040fd33 mov edx, dword [rax] | 0x0040fd35 mov rsi, rsp | 0x0040fd38 call 0x4102b0 | eax = intBloombergLP::test::MixedSequence::manipulateAttribute>(BloombergLP::bdlat_SymbolicConverter_LoadValue&,int) (*(r15), rsp, *(rax)); 0x0040fd3d test eax, eax | | if (eax == 0) { 0x0040fd3f je 0x40fd8a | goto label_2; | } 0x0040fd41 mov rbx, qword [r15 + 8] | rbx = *((r15 + 8)); | } 0x0040fd45 mov rdi, qword [rbx] | 0x0040fd48 mov esi, 0x438d26 | 0x0040fd4d mov edx, 0x1d | 0x0040fd52 call 0x40f6c0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rbx), "Failed to convert attribute ', 0x1d); 0x0040fd57 mov esi, 0x437e8d | | do { | label_1: 0x0040fd5c mov edx, 0xa | 0x0040fd61 mov rdi, rax | 0x0040fd64 call 0x40f6c0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, "Attribute1", 0xa); 0x0040fd69 mov esi, 0x438d44 | 0x0040fd6e mov edx, 2 | 0x0040fd73 mov rdi, rax | 0x0040fd76 call 0x40f6c0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, 0x438d44, 2); 0x0040fd7b mov eax, 0xfffffff9 | eax = 0xfffffff9; | label_0: 0x0040fd80 add rsp, 0x10 | 0x0040fd84 pop rbx | 0x0040fd85 pop r14 | 0x0040fd87 pop r15 | 0x0040fd89 ret | return rax; | label_2: 0x0040fd8a lea rax, [r14 + 0x40] | rax = r14 + 0x40; 0x0040fd8e mov rcx, qword [r15 + 8] | rcx = *((r15 + 8)); 0x0040fd92 mov qword [rsp], rcx | *(rsp) = rcx; 0x0040fd96 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0040fd9b mov rdi, qword [r15] | 0x0040fd9e mov rsi, rsp | 0x0040fda1 mov edx, 0x437e98 | 0x0040fda6 mov ecx, 0xa | 0x0040fdab call 0x410620 | eax = intBloombergLP::test::MixedSequence::manipulateAttribute>(BloombergLP::bdlat_SymbolicConverter_LoadValue&,char const*,int) (*(r15), rsp, "Attribute2", 0xa); 0x0040fdb0 test eax, eax | | if (eax == 0) { 0x0040fdb2 je 0x40fdd1 | goto label_3; | } 0x0040fdb4 mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0040fdb8 mov rdi, qword [rax] | 0x0040fdbb mov esi, 0x438d26 | 0x0040fdc0 mov edx, 0x1d | 0x0040fdc5 call 0x40f6c0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rax), "Failed to convert attribute ', 0x1d); 0x0040fdca mov esi, 0x437e98 | esi = "Attribute2"; 0x0040fdcf jmp 0x40fd5c | | } while (1); | label_3: 0x0040fdd1 lea rsi, [r14 + 0x70] | 0x0040fdd5 mov edx, 0x437ba0 | 0x0040fdda mov rdi, r15 | 0x0040fddd call 0x40fe80 | eax = intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator(),BloombergLP::bdlat_AttributeInfo>(BloombergLP::bdlb::NullableValueconst&,BloombergLP::bdlat_AttributeInfoconst&)const (r15, r14 + 0x70, 0x437ba0); 0x0040fde2 test eax, eax | | if (eax != 0) { 0x0040fde4 jne 0x40fd80 | goto label_0; | } 0x0040fde6 lea rsi, [r14 + 0x78] | 0x0040fdea mov edx, 0x437bc8 | 0x0040fdef mov rdi, r15 | 0x0040fdf2 call 0x40ffa0 | eax = intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator()(BloombergLP::test::EnumerationA::Valueconst&,BloombergLP::bdlat_AttributeInfoconst&)const (r15, r14 + 0x78, 0x437bc8); 0x0040fdf7 test eax, eax | | if (eax != 0) { 0x0040fdf9 jne 0x40fd80 | goto label_0; | } 0x0040fdfb lea rsi, [r14 + 0x7c] | 0x0040fdff mov edx, 0x437bf0 | 0x0040fe04 mov rdi, r15 | 0x0040fe07 call 0x4100e0 | eax = intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator()(intconst&,BloombergLP::bdlat_AttributeInfoconst&)const (r15, r14 + 0x7c, 0x437bf0); 0x0040fe0c test eax, eax | | if (eax != 0) { 0x0040fe0e jne 0x40fd80 | goto label_0; | } 0x0040fe14 lea rax, [r14 + 0x80] | rax = r14 + 0x80; 0x0040fe1b mov rcx, qword [r15 + 8] | rcx = *((r15 + 8)); 0x0040fe1f mov qword [rsp], rcx | *(rsp) = rcx; 0x0040fe23 mov qword [rsp + 8], rax | *((rsp + 8)) = rax; 0x0040fe28 mov rdi, qword [r15] | 0x0040fe2b mov rsi, rsp | 0x0040fe2e mov edx, 0x437f16 | 0x0040fe33 mov ecx, 0xa | 0x0040fe38 call 0x410ba0 | eax = intBloombergLP::test::MixedSequence::manipulateAttribute,bsl::allocator>>>(BloombergLP::bdlat_SymbolicConverter_LoadValue,bsl::allocator>>&,char const*,int) (*(r15), rsp, "Attribute6", 0xa); 0x0040fe3d test eax, eax | | if (eax != 0) { 0x0040fe3f je 0x40fe61 | 0x0040fe41 mov rax, qword [r15 + 8] | rax = *((r15 + 8)); 0x0040fe45 mov rdi, qword [rax] | 0x0040fe48 mov esi, 0x438d26 | 0x0040fe4d mov edx, 0x1d | 0x0040fe52 call 0x40f6c0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*(rax), "Failed to convert attribute ', 0x1d); 0x0040fe57 mov esi, 0x437f16 | esi = "Attribute6"; 0x0040fe5c jmp 0x40fd5c | goto label_1; | } 0x0040fe61 add r14, 0xb0 | r14 += 0xb0; 0x0040fe68 mov edx, 0x437c40 | 0x0040fe6d mov rdi, r15 | 0x0040fe70 mov rsi, r14 | 0x0040fe73 call 0x4101b0 | intBloombergLP::bdlat_SymbolicConverter_StoreInSequence::operator()(BloombergLP::test::SequenceAconst&,BloombergLP::bdlat_AttributeInfoconst&)const (r15, r14, 0x437c40); 0x0040fe78 jmp 0x40fd80 | goto label_0; | }