; assembly | /* r2dec pseudo code output */ | /* baljsn_decoder.t/assume @ 0x452a40 */ | #include | ; (fcn) method.int_BloombergLP::balb::Choice1::manipulateSelection_BloombergLP::baljsn.Decoder_ElementVisitor__BloombergLP::baljsn::Decoder_ElementVisitor_ () | int64_t method_int_BloombergLP::balb::Choice1::manipulateSelection_BloombergLP::baljsn_Decoder_ElementVisitor_BloombergLP::baljsn::Decoder_ElementVisitor_ (int64_t arg2, int64_t arg1) { | rsi = arg2; | rdi = arg1; | /* int BloombergLP::balb::Choice1::manipulateSelection(BloombergLP::baljsn::Decoder_ElementVisitor&) */ 0x00452a40 push r14 | 0x00452a42 push rbx | 0x00452a43 sub rsp, 0x18 | 0x00452a47 mov eax, dword [rdi + 8] | eax = *((rdi + 8)); 0x00452a4a cmp rax, 3 | | if (rax <= 3) { 0x00452a4e ja 0x452af1 | 0x00452a54 mov rbx, rdi | rbx = rdi; | /* switch table (4 cases) at 0x4f5eb0 */ 0x00452a57 jmp qword [rax*8 + 0x4f5eb0] | 0x00452a5e mov rdi, qword [rsi] | rdi = *(rsi); 0x00452a61 mov edx, dword [rip + 0x1c8269] | edx = *(0x0061acd0); 0x00452a67 mov rsi, rbx | rsi = rbx; 0x00452a6a add rsp, 0x18 | 0x00452a6e pop rbx | 0x00452a6f pop r14 | 0x00452a71 jmp 0x452b10 | void (*0x452b10)() (); 0x00452a76 mov r14, qword [rsi] | r14 = *(rsi); 0x00452a79 cmp dword [r14 + 0x2300], 7 | | if (*((r14 + 0x2300)) == 7) { 0x00452a81 jne 0x452adf | 0x00452a83 lea rdi, [r14 + 0x120] | 0x00452a8a xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00452a8d movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x00452a91 mov rsi, rsp | 0x00452a94 call 0x45f7a0 | eax = BloombergLP::baljsn::Tokenizer::value(std::_1::basic_string_view>*)const (r14 + 0x120, rsp); 0x00452a99 test eax, eax | | if (eax == 0) { 0x00452a9b je 0x452afe | goto label_0; | } 0x00452a9d mov esi, 0x6131e6 | esi = "Error reading simple value\n"; 0x00452aa2 mov edx, 0x1b | edx = 0x1b; 0x00452aa7 jmp 0x452ae9 | goto label_1; 0x00452aa9 mov rax, qword [rbx] | rax = *(rbx); 0x00452aac mov rdi, qword [rsi] | rdi = *(rsi); 0x00452aaf mov edx, dword [rip + 0x1c826b] | edx = .comment; 0x00452ab5 mov rsi, rax | rsi = rax; 0x00452ab8 add rsp, 0x18 | 0x00452abc pop rbx | 0x00452abd pop r14 | 0x00452abf jmp 0x452be0 | void (*0x452be0)() (); 0x00452ac4 mov rax, qword [rbx] | rax = *(rbx); 0x00452ac7 mov rdi, qword [rsi] | rdi = *(rsi); 0x00452aca mov edx, dword [rip + 0x1c8278] | edx = .comment; 0x00452ad0 mov rsi, rax | rsi = rax; 0x00452ad3 add rsp, 0x18 | 0x00452ad7 pop rbx | 0x00452ad8 pop r14 | 0x00452ada jmp 0x4560d0 | void (*0x4560d0)() (); | } 0x00452adf mov esi, 0x6131c2 | 0x00452ae4 mov edx, 0x23 | | label_1: 0x00452ae9 mov rdi, r14 | 0x00452aec 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); | } 0x00452af1 mov eax, 0xffffffff | eax = 0xffffffff; | do { 0x00452af6 add rsp, 0x18 | 0x00452afa pop rbx | 0x00452afb pop r14 | 0x00452afd ret | return rax; | label_0: 0x00452afe mov rsi, rsp | 0x00452b01 mov rdi, rbx | 0x00452b04 call 0x45df50 | BloombergLP::baljsn::ParserUtil::getValue(double*,std::_1::basic_string_view>const&) (rbx, rsp); 0x00452b09 jmp 0x452af6 | | } while (1); | }