; assembly | /* r2dec pseudo code output */ | /* baljsn_decoder.t/none @ 0x4587a0 */ | #include | ; (fcn) method.int_BloombergLP::bdlat_ChoiceFunctions::bdlat_choiceManipulateSelection_BloombergLP::balb::SequenceWithAnonymityChoice1__BloombergLP::baljsn.Decoder_ElementVisitor__BloombergLP::balb::SequenceWithAnonymityChoice1__BloombergLP::baljsn::Decoder_Ele () | int32_t method_int_BloombergLP::bdlat_ChoiceFunctions::bdlat_choiceManipulateSelection_BloombergLP::balb::SequenceWithAnonymityChoice1_BloombergLP::baljsn_Decoder_ElementVisitor_BloombergLP::balb::SequenceWithAnonymityChoice1_BloombergLP::baljsn::Decoder_Ele (int64_t arg2, int64_t arg1) { | rsi = arg2; | rdi = arg1; | /* int BloombergLP::bdlat_ChoiceFunctions::bdlat_choiceManipulateSelection(BloombergLP::balb::SequenceWithAnonymityChoice1*, BloombergLP::baljsn::Decoder_ElementVisitor&) */ 0x004587a0 push rbp | 0x004587a1 push r14 | 0x004587a3 push rbx | 0x004587a4 sub rsp, 0x10 | 0x004587a8 mov rbx, rdi | rbx = rdi; 0x004587ab mov eax, dword [rdi + 0x30] | eax = *((rdi + 0x30)); 0x004587ae mov ebp, 0xffffffff | 0x004587b3 cmp eax, 1 | | if (eax != 1) { 0x004587b6 je 0x4587f3 | 0x004587b8 test eax, eax | | if (eax != 0) { 0x004587ba jne 0x458861 | goto label_0; | } 0x004587c0 mov r14, qword [rsi] | r14 = *(rsi); 0x004587c3 cmp dword [r14 + 0x2300], 7 | | if (*((r14 + 0x2300)) == 7) { 0x004587cb jne 0x458833 | 0x004587cd lea rdi, [r14 + 0x120] | 0x004587d4 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004587d7 movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x004587db mov rsi, rsp | 0x004587de call 0x45f8a0 | eax = BloombergLP::baljsn::Tokenizer::value(std::_1::basic_string_view>*)const (r14 + 0x120, rsp); 0x004587e3 test eax, eax | | if (eax == 0) { 0x004587e5 je 0x458847 | goto label_1; | } 0x004587e7 mov esi, 0x613950 | esi = "Error reading simple value\n"; 0x004587ec mov edx, 0x1b | edx = 0x1b; 0x004587f1 jmp 0x45883d | | } else { 0x004587f3 mov r14, qword [rsi] | r14 = *(rsi); 0x004587f6 cmp dword [r14 + 0x2300], 7 | | if (*((r14 + 0x2300)) != 7) { 0x004587fe jne 0x458833 | goto label_2; | } 0x00458800 lea rdi, [r14 + 0x120] | 0x00458807 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x0045880a movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x0045880e mov rsi, rsp | 0x00458811 call 0x45f8a0 | eax = BloombergLP::baljsn::Tokenizer::value(std::_1::basic_string_view>*)const (r14 + 0x120, rsp); 0x00458816 test eax, eax | | if (eax == 0) { 0x00458818 je 0x458854 | goto label_3; | } 0x0045881a mov esi, 0x613950 | 0x0045881f mov edx, 0x1b | 0x00458824 mov rdi, r14 | 0x00458827 call 0x417b80 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r14, "Error reading simple value\n", 0x1b); 0x0045882c mov ebp, 0xffffffff | 0x00458831 jmp 0x458861 | goto label_0; | } | label_2: 0x00458833 mov esi, 0x61392c | 0x00458838 mov edx, 0x23 | | } 0x0045883d mov rdi, r14 | 0x00458840 call 0x417b80 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r14, "Simple element value was not found\n", 0x23); 0x00458845 jmp 0x458861 | goto label_0; | label_1: 0x00458847 mov rsi, rsp | 0x0045884a mov rdi, rbx | 0x0045884d call 0x45e700 | BloombergLP::baljsn::ParserUtil::getValue(bool*,std::_1::basic_string_view>const&) (rbx, rsp); 0x00458852 jmp 0x45885f | goto label_4; | label_3: 0x00458854 mov rsi, rsp | 0x00458857 mov rdi, rbx | 0x0045885a call 0x45da70 | eax = BloombergLP::baljsn::ParserUtil::getString(bsl::basic_string,bsl::allocator>*,std::_1::basic_string_view>const&) (rbx, rsp); | label_4: 0x0045885f mov ebp, eax | | label_0: 0x00458861 mov eax, ebp | 0x00458863 add rsp, 0x10 | 0x00458867 pop rbx | 0x00458868 pop r14 | 0x0045886a pop rbp | 0x0045886b ret | return eax; | }