; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/assume @ 0x4162e0 */ | #include | ; (fcn) method.void_BloombergLP::bslim::Printer_Helper::print_BloombergLP::balb::Enumerated.Value_const__std::__1::basic_ostream_char__std::__1::char_traits_char_____BloombergLP::balb::Enumerated::Value_const_const__BloombergLP::balb::Enumerated::Value_const () | int64_t method_void_BloombergLP::bslim::Printer_Helper::print_BloombergLP::balb::Enumerated_Value_const_std::_1::basic_ostream_char_std::_1::char_traits_char_BloombergLP::balb::Enumerated::Value_const_const_BloombergLP::balb::Enumerated::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::balb::Enumerated::Value const* const&, BloombergLP::balb::Enumerated::Value const* const&, int, int) */ 0x004162e0 push rbp | 0x004162e1 push r15 | 0x004162e3 push r14 | 0x004162e5 push r13 | 0x004162e7 push r12 | 0x004162e9 push rbx | 0x004162ea sub rsp, 0x28 | 0x004162ee mov r12, rdx | r12 = rdx; 0x004162f1 mov rbx, rsi | rbx = rsi; 0x004162f4 mov rsi, rdi | 0x004162f7 lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x004162fc mov rdi, r14 | 0x004162ff mov edx, ecx | 0x00416301 mov ecx, r8d | 0x00416304 call 0x41fc40 | BloombergLP::bslim::Printer::Printer(std::_1::basic_ostream>*,int,int) (r14, rdi, ecx, r8d); 0x00416309 mov rdi, r14 | 0x0041630c xor esi, esi | 0x0041630e call 0x41fe00 | BloombergLP::bslim::Printer::start(bool)const (r14, 0); 0x00416313 mov rbp, qword [rbx] | rbp = *(rbx); 0x00416316 cmp qword [r12], rbp | | if (*(r12) == rbp) { 0x0041631a je 0x41638c | goto label_1; | } 0x0041631c lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x00416321 jmp 0x41633a | | while (r15d < 0) { | label_0: 0x00416330 add rbp, 4 | rbp += 4; 0x00416334 cmp rbp, qword [r12] | | if (rbp == *(r12)) { 0x00416338 je 0x41638c | goto label_1; | } 0x0041633a mov rdi, r14 | 0x0041633d call 0x41fbd0 | BloombergLP::bslim::Printer::printIndentation()const (r14); 0x00416342 mov r13, qword [rsp + 0x10] | r13 = *((rsp + 0x10)); 0x00416347 mov r15d, dword [rsp + 0x24] | r15d = *((rsp + 0x24)); 0x0041634c movsxd rax, dword [rbp] | rax = *(rbp); 0x00416350 mov rbx, qword [rax*8 + 0x4481e0] | rbx = *((rax*8 + 0x4481e0)); 0x00416358 mov rdi, rbx | 0x0041635b call 0x403630 | rax = strlen (*((rax*8 + 0x4481e0))); 0x00416360 mov rdi, r13 | 0x00416363 mov rsi, rbx | 0x00416366 mov rdx, rax | 0x00416369 call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r13, rbx, rax); 0x0041636e test r15d, r15d | 0x00416371 js 0x416330 | | } 0x00416373 mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x00416378 mov edx, 1 | 0x0041637d mov rdi, r13 | 0x00416380 lea rsi, [rsp + 0xf] | 0x00416385 call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (r13, rsp + 0xf, 1); 0x0041638a jmp 0x416330 | goto label_0; | label_1: 0x0041638c lea rdi, [rsp + 0x10] | 0x00416391 xor esi, esi | 0x00416393 call 0x41fc80 | BloombergLP::bslim::Printer::end(bool)const (rsp + 0x10, 0); 0x00416398 lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x0041639d call 0x41fc60 | BloombergLP::bslim::Printer::~Printer() (); 0x004163a2 add rsp, 0x28 | 0x004163a6 pop rbx | 0x004163a7 pop r12 | 0x004163a9 pop r13 | 0x004163ab pop r14 | 0x004163ad pop r15 | 0x004163af pop rbp | 0x004163b0 ret | return rax; | }