; assembly | /* r2dec pseudo code output */ | /* baljsn_decoder.t/none @ 0x452ad0 */ | #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&) */ 0x00452ad0 push rbp | 0x00452ad1 push r14 | 0x00452ad3 push rbx | 0x00452ad4 sub rsp, 0x10 | 0x00452ad8 mov eax, dword [rdi + 8] | eax = *((rdi + 8)); 0x00452adb mov ebp, 0xffffffff | 0x00452ae0 cmp rax, 3 | | if (rax <= 3) { 0x00452ae4 ja 0x452b99 | 0x00452aea mov rbx, rdi | rbx = rdi; | /* switch table (4 cases) at 0x4f6620 */ 0x00452aed jmp qword [rax*8 + 0x4f6620] | 0x00452af4 mov rdi, qword [rsi] | rdi = *(rsi); 0x00452af7 mov edx, dword [rip + 0x1c8203] | edx = *(0x0061ad00); 0x00452afd mov rsi, rbx | rsi = rbx; 0x00452b00 add rsp, 0x10 | 0x00452b04 pop rbx | 0x00452b05 pop r14 | 0x00452b07 pop rbp | 0x00452b08 jmp 0x452bb0 | void (*0x452bb0)() (); 0x00452b0d mov r14, qword [rsi] | r14 = *(rsi); 0x00452b10 cmp dword [r14 + 0x2300], 7 | | if (*((r14 + 0x2300)) == 7) { 0x00452b18 jne 0x452b78 | 0x00452b1a lea rdi, [r14 + 0x120] | 0x00452b21 xorps xmm0, xmm0 | __asm ("xorps xmm0, xmm0"); 0x00452b24 movaps xmmword [rsp], xmm0 | *(rsp) = xmm0; 0x00452b28 mov rsi, rsp | 0x00452b2b call 0x45f8a0 | eax = BloombergLP::baljsn::Tokenizer::value(std::_1::basic_string_view>*)const (r14 + 0x120, rsp); 0x00452b30 test eax, eax | | if (eax == 0) { 0x00452b32 je 0x452b8c | goto label_0; | } 0x00452b34 mov esi, 0x613950 | esi = "Error reading simple value\n"; 0x00452b39 mov edx, 0x1b | edx = 0x1b; 0x00452b3e jmp 0x452b82 | goto label_1; 0x00452b40 mov rax, qword [rbx] | rax = *(rbx); 0x00452b43 mov rdi, qword [rsi] | rdi = *(rsi); 0x00452b46 mov edx, dword [rip + 0x1c8204] | edx = .comment; 0x00452b4c mov rsi, rax | rsi = rax; 0x00452b4f add rsp, 0x10 | 0x00452b53 pop rbx | 0x00452b54 pop r14 | 0x00452b56 pop rbp | 0x00452b57 jmp 0x452c80 | void (*0x452c80)() (); 0x00452b5c mov rax, qword [rbx] | rax = *(rbx); 0x00452b5f mov rdi, qword [rsi] | rdi = *(rsi); 0x00452b62 mov edx, dword [rip + 0x1c8210] | edx = .comment; 0x00452b68 mov rsi, rax | rsi = rax; 0x00452b6b add rsp, 0x10 | 0x00452b6f pop rbx | 0x00452b70 pop r14 | 0x00452b72 pop rbp | 0x00452b73 jmp 0x456170 | void (*0x456170)() (); | } 0x00452b78 mov esi, 0x61392c | 0x00452b7d mov edx, 0x23 | | label_1: 0x00452b82 mov rdi, r14 | 0x00452b85 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); 0x00452b8a jmp 0x452b99 | goto label_2; | label_0: 0x00452b8c mov rsi, rsp | 0x00452b8f mov rdi, rbx | 0x00452b92 call 0x45e050 | eax = BloombergLP::baljsn::ParserUtil::getValue(double*,std::_1::basic_string_view>const&) (rbx, rsp); 0x00452b97 mov ebp, eax | | } | label_2: 0x00452b99 mov eax, ebp | 0x00452b9b add rsp, 0x10 | 0x00452b9f pop rbx | 0x00452ba0 pop r14 | 0x00452ba2 pop rbp | 0x00452ba3 ret | return rax; | }