; assembly | /* r2dec pseudo code output */ | /* baljsn_decoder.t/assume @ 0x4181c0 */ | #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) */ 0x004181c0 push rbp | 0x004181c1 push r15 | 0x004181c3 push r14 | 0x004181c5 push r13 | 0x004181c7 push r12 | 0x004181c9 push rbx | 0x004181ca sub rsp, 0x28 | 0x004181ce mov r12, rdx | r12 = rdx; 0x004181d1 mov rbx, rsi | rbx = rsi; 0x004181d4 mov rsi, rdi | 0x004181d7 lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x004181dc mov rdi, r14 | 0x004181df mov edx, ecx | 0x004181e1 mov ecx, r8d | 0x004181e4 call 0x4ca1b0 | BloombergLP::bslim::Printer::Printer(std::_1::basic_ostream>*,int,int) (r14, rdi, ecx, r8d); 0x004181e9 mov rdi, r14 | 0x004181ec xor esi, esi | 0x004181ee call 0x4ca370 | BloombergLP::bslim::Printer::start(bool)const (r14, 0); 0x004181f3 mov rbp, qword [rbx] | rbp = *(rbx); 0x004181f6 cmp qword [r12], rbp | | if (*(r12) == rbp) { 0x004181fa je 0x41826c | goto label_1; | } 0x004181fc lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x00418201 jmp 0x41821a | | while (r15d < 0) { | label_0: 0x00418210 add rbp, 4 | rbp += 4; 0x00418214 cmp rbp, qword [r12] | | if (rbp == *(r12)) { 0x00418218 je 0x41826c | goto label_1; | } 0x0041821a mov rdi, r14 | 0x0041821d call 0x4ca140 | BloombergLP::bslim::Printer::printIndentation()const (r14); 0x00418222 mov r13, qword [rsp + 0x10] | r13 = *((rsp + 0x10)); 0x00418227 mov r15d, dword [rsp + 0x24] | r15d = *((rsp + 0x24)); 0x0041822c movsxd rax, dword [rbp] | rax = *(rbp); 0x00418230 mov rbx, qword [rax*8 + 0x4f4828] | rbx = *((rax*8 + 0x4f4828)); 0x00418238 mov rdi, rbx | 0x0041823b call 0x405eb0 | rax = strlen (*((rax*8 + 0x4f4828))); 0x00418240 mov rdi, r13 | 0x00418243 mov rsi, rbx | 0x00418246 mov rdx, rax | 0x00418249 call 0x417b30 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r13, rbx, rax); 0x0041824e test r15d, r15d | 0x00418251 js 0x418210 | | } 0x00418253 mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x00418258 mov edx, 1 | 0x0041825d mov rdi, r13 | 0x00418260 lea rsi, [rsp + 0xf] | 0x00418265 call 0x417b30 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r13, rsp + 0xf, 1); 0x0041826a jmp 0x418210 | goto label_0; | label_1: 0x0041826c lea rdi, [rsp + 0x10] | 0x00418271 xor esi, esi | 0x00418273 call 0x4ca1f0 | BloombergLP::bslim::Printer::end(bool)const (rsp + 0x10, 0); 0x00418278 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0041827d call 0x4ca1d0 | BloombergLP::bslim::Printer::~Printer() (); 0x00418282 add rsp, 0x28 | 0x00418286 pop rbx | 0x00418287 pop r12 | 0x00418289 pop r13 | 0x0041828b pop r14 | 0x0041828d pop r15 | 0x0041828f pop rbp | 0x00418290 ret | return rax; | }