; assembly | /* r2dec pseudo code output */ | /* baljsn_decoder.t/assume @ 0x4586c0 */ | #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&) */ 0x004586c0 push r14 | 0x004586c2 push rbx | 0x004586c3 sub rsp, 0x18 | 0x004586c7 mov rbx, rdi | rbx = rdi; 0x004586ca mov eax, dword [rdi + 0x30] | eax = *((rdi + 0x30)); 0x004586cd cmp eax, 1 | | if (eax != 1) { 0x004586d0 je 0x45870a | 0x004586d2 test eax, eax | | if (eax == 0) { 0x004586d4 jne 0x45874f | 0x004586d6 mov r14, qword [rsi] | r14 = *(rsi); 0x004586d9 cmp dword [r14 + 0x2300], 7 | | if (*((r14 + 0x2300)) == 7) { 0x004586e1 jne 0x45873d | 0x004586e3 lea rdi, [r14 + 0x120] | 0x004586ea xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x004586ed movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x004586f1 mov rsi, rsp | 0x004586f4 call 0x45f7a0 | eax = BloombergLP::baljsn::Tokenizer::value(std::_1::basic_string_view>*)const (r14 + 0x120, rsp); 0x004586f9 test eax, eax | | if (eax == 0) { 0x004586fb jne 0x458731 | 0x004586fd mov rsi, rsp | 0x00458700 mov rdi, rbx | 0x00458703 call 0x45e600 | BloombergLP::baljsn::ParserUtil::getValue(bool*,std::_1::basic_string_view>const&) (rbx, rsp); 0x00458708 jmp 0x458754 | | } else { 0x0045870a mov r14, qword [rsi] | r14 = *(rsi); 0x0045870d cmp dword [r14 + 0x2300], 7 | | if (*((r14 + 0x2300)) != 7) { 0x00458715 jne 0x45873d | goto label_0; | } 0x00458717 lea rdi, [r14 + 0x120] | 0x0045871e xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00458721 movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x00458725 mov rsi, rsp | 0x00458728 call 0x45f7a0 | eax = BloombergLP::baljsn::Tokenizer::value(std::_1::basic_string_view>*)const (r14 + 0x120, rsp); 0x0045872d test eax, eax | | if (eax == 0) { 0x0045872f je 0x45875c | goto label_1; | } | } 0x00458731 mov esi, 0x6131e6 | esi = "Error reading simple value\n"; 0x00458736 mov edx, 0x1b | edx = 0x1b; 0x0045873b jmp 0x458747 | | } else { | label_0: 0x0045873d mov esi, 0x6131c2 | 0x00458742 mov edx, 0x23 | | } 0x00458747 mov rdi, r14 | 0x0045874a call 0x417b30 | 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); | } 0x0045874f mov eax, 0xffffffff | eax = 0xffffffff; | } | do { 0x00458754 add rsp, 0x18 | 0x00458758 pop rbx | 0x00458759 pop r14 | 0x0045875b ret | return eax; | label_1: 0x0045875c mov rsi, rsp | 0x0045875f mov rdi, rbx | 0x00458762 call 0x45d970 | BloombergLP::baljsn::ParserUtil::getString(bsl::basic_string,bsl::allocator>*,std::_1::basic_string_view>const&) (rbx, rsp); 0x00458767 jmp 0x458754 | | } while (1); | }