; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/none @ 0x416350 */ | #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) */ 0x00416350 push rbp | 0x00416351 push r15 | 0x00416353 push r14 | 0x00416355 push r13 | 0x00416357 push r12 | 0x00416359 push rbx | 0x0041635a sub rsp, 0x28 | 0x0041635e mov r12, rdx | r12 = rdx; 0x00416361 mov rbx, rsi | rbx = rsi; 0x00416364 mov rsi, rdi | 0x00416367 lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x0041636c mov rdi, r14 | 0x0041636f mov edx, ecx | 0x00416371 mov ecx, r8d | 0x00416374 call 0x41fd40 | BloombergLP::bslim::Printer::Printer(std::_1::basic_ostream>*,int,int) (r14, rdi, ecx, r8d); 0x00416379 mov rdi, r14 | 0x0041637c xor esi, esi | 0x0041637e call 0x41ff00 | BloombergLP::bslim::Printer::start(bool)const (r14, 0); 0x00416383 mov rbp, qword [rbx] | rbp = *(rbx); 0x00416386 cmp qword [r12], rbp | | if (*(r12) == rbp) { 0x0041638a je 0x416411 | goto label_1; | } 0x00416390 lea r14, [rsp + 0x10] | r14 = rsp + 0x10; 0x00416395 jmp 0x4163aa | | while (r15d < 0) { | label_0: 0x004163a0 add rbp, 4 | rbp += 4; 0x004163a4 cmp rbp, qword [r12] | | if (rbp == *(r12)) { 0x004163a8 je 0x416411 | goto label_1; | } 0x004163aa mov rdi, r14 | 0x004163ad call 0x41fcd0 | BloombergLP::bslim::Printer::printIndentation()const (r14); 0x004163b2 movsxd rax, dword [rbp] | rax = *(rbp); 0x004163b6 cmp rax, 2 | | if (rax <= 2) { 0x004163ba ja 0x4163d0 | 0x004163bc mov r13, qword [rax*8 + 0x447bb0] | r13 = *((rax*8 + 0x447bb0)); 0x004163c4 jmp 0x4163d3 | | } else { 0x004163d0 xor r13d, r13d | r13d = 0; | } 0x004163d3 mov rbx, qword [rsp + 0x10] | rbx = *((rsp + 0x10)); 0x004163d8 mov r15d, dword [rsp + 0x24] | r15d = *((rsp + 0x24)); 0x004163dd mov rdi, r13 | 0x004163e0 call 0x403630 | rax = strlen (r13); 0x004163e5 mov rdi, rbx | 0x004163e8 mov rsi, r13 | 0x004163eb mov rdx, rax | 0x004163ee call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, r13, rax); 0x004163f3 test r15d, r15d | 0x004163f6 js 0x4163a0 | | } 0x004163f8 mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x004163fd mov edx, 1 | 0x00416402 mov rdi, rbx | 0x00416405 lea rsi, [rsp + 0xf] | 0x0041640a call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rsp + 0xf, 1); 0x0041640f jmp 0x4163a0 | goto label_0; | label_1: 0x00416411 lea rdi, [rsp + 0x10] | 0x00416416 xor esi, esi | 0x00416418 call 0x41fd80 | BloombergLP::bslim::Printer::end(bool)const (rsp + 0x10, 0); 0x0041641d lea rdi, [rsp + 0x10] | rdi = rsp + 0x10; 0x00416422 call 0x41fd60 | BloombergLP::bslim::Printer::~Printer() (); 0x00416427 add rsp, 0x28 | 0x0041642b pop rbx | 0x0041642c pop r12 | 0x0041642e pop r13 | 0x00416430 pop r14 | 0x00416432 pop r15 | 0x00416434 pop rbp | 0x00416435 ret | return rax; | }