; assembly | /* r2dec pseudo code output */ | /* baljsn_decoder.t/none @ 0x418210 */ | #include | ; (fcn) method.void_BloombergLP::bslim::Printer_Helper::print_BloombergLP::s_baltst::Colors.Value_const__std::__1::basic_ostream_char__std::__1::char_traits_char_____BloombergLP::s_baltst::Colors::Value_const_const__BloombergLP::s_baltst::Colors::Value_const () | int64_t method_void_BloombergLP::bslim::Printer_Helper::print_BloombergLP::s_baltst::Colors_Value_const_std::_1::basic_ostream_char_std::_1::char_traits_char_BloombergLP::s_baltst::Colors::Value_const_const_BloombergLP::s_baltst::Colors::Value_const (int64_t arg5, int64_t arg4, int64_t arg3, int64_t arg2, int64_t arg1) { | int64_t var_fh; | int64_t var_10h; | int64_t var_24h; | r8 = arg5; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bslim::Printer_Helper::print(std::__1::basic_ostream >&, BloombergLP::s_baltst::Colors::Value const* const&, BloombergLP::s_baltst::Colors::Value const* const&, int, int) */ 0x00418210 push rbp | 0x00418211 push r15 | 0x00418213 push r14 | 0x00418215 push r13 | 0x00418217 push r12 | 0x00418219 push rbx | 0x0041821a sub rsp, 0x28 | 0x0041821e mov r12, rdx | r12 = rdx; 0x00418221 mov rbx, rsi | rbx = rsi; 0x00418224 mov rsi, rdi | 0x00418227 lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x0041822c mov rdi, r14 | 0x0041822f mov edx, ecx | 0x00418231 mov ecx, r8d | 0x00418234 call 0x4ca910 | BloombergLP::bslim::Printer::Printer(std::_1::basic_ostream>*,int,int) (r14, rdi, ecx, r8d); 0x00418239 mov rdi, r14 | 0x0041823c xor esi, esi | 0x0041823e call 0x4caad0 | BloombergLP::bslim::Printer::start(bool)const (r14, 0); 0x00418243 mov rbp, qword [rbx] | rbp = *(rbx); 0x00418246 cmp qword [r12], rbp | | if (*(r12) == rbp) { 0x0041824a je 0x4182d1 | goto label_1; | } 0x00418250 lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x00418255 jmp 0x41826a | | while (r15d < 0) { | label_0: 0x00418260 add rbp, 4 | rbp += 4; 0x00418264 cmp rbp, qword [r12] | | if (rbp == *(r12)) { 0x00418268 je 0x4182d1 | goto label_1; | } 0x0041826a mov rdi, r14 | 0x0041826d call 0x4ca8a0 | BloombergLP::bslim::Printer::printIndentation()const (r14); 0x00418272 movsxd rax, dword [rbp] | rax = *(rbp); 0x00418276 cmp rax, 4 | | if (rax <= 4) { 0x0041827a ja 0x418290 | 0x0041827c mov r13, qword [rax*8 + 0x4f4f98] | r13 = *((rax*8 + 0x4f4f98)); 0x00418284 jmp 0x418293 | | } else { 0x00418290 xor r13d, r13d | r13d = 0; | } 0x00418293 mov rbx, qword [rsp + 0x10] | rbx = *((rsp + 0x10)); 0x00418298 mov r15d, dword [rsp + 0x24] | r15d = *((rsp + 0x24)); 0x0041829d mov rdi, r13 | 0x004182a0 call 0x405eb0 | rax = strlen (r13); 0x004182a5 mov rdi, rbx | 0x004182a8 mov rsi, r13 | 0x004182ab mov rdx, rax | 0x004182ae call 0x417b80 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, r13, rax); 0x004182b3 test r15d, r15d | 0x004182b6 js 0x418260 | | } 0x004182b8 mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x004182bd mov edx, 1 | 0x004182c2 mov rdi, rbx | 0x004182c5 lea rsi, [rsp + 0xf] | 0x004182ca call 0x417b80 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rsp + 0xf, 1); 0x004182cf jmp 0x418260 | goto label_0; | label_1: 0x004182d1 lea rdi, [rsp + 0x10] | 0x004182d6 xor esi, esi | 0x004182d8 call 0x4ca950 | BloombergLP::bslim::Printer::end(bool)const (rsp + 0x10, 0); 0x004182dd lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x004182e2 call 0x4ca930 | BloombergLP::bslim::Printer::~Printer() (); 0x004182e7 add rsp, 0x28 | 0x004182eb pop rbx | 0x004182ec pop r12 | 0x004182ee pop r13 | 0x004182f0 pop r14 | 0x004182f2 pop r15 | 0x004182f4 pop rbp | 0x004182f5 ret | return rax; | }