; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/assume @ 0x416730 */ | #include | ; (fcn) method.void_BloombergLP::bslim::Printer_Helper::printRaw_BloombergLP::bdlb::NullableValue_BloombergLP::balb::Enumerated.Value____std::__1::basic_ostream_char__std::__1::char_traits_char_____BloombergLP::bdlb::NullableValue_BloombergLP::balb::Enumerated: () | int64_t method_void_BloombergLP::bslim::Printer_Helper::printRaw_BloombergLP::bdlb::NullableValue_BloombergLP::balb::Enumerated_Value_std::_1::basic_ostream_char_std::_1::char_traits_char_BloombergLP::bdlb::NullableValue_BloombergLP::balb::Enumerated_ (int64_t arg4, int64_t arg3, uint32_t arg2, int64_t arg1) { | int64_t var_eh; | int64_t var_fh; | rcx = arg4; | rdx = arg3; | rsi = arg2; | rdi = arg1; | /* void BloombergLP::bslim::Printer_Helper::printRaw >(std::__1::basic_ostream >&, BloombergLP::bdlb::NullableValue const&, int, int, BloombergLP::bslmf::SelectTraitCase) */ 0x00416730 push rbp | 0x00416731 push r14 | 0x00416733 push rbx | 0x00416734 sub rsp, 0x10 | 0x00416738 cmp byte [rsi + 4], 0 | 0x0041673c mov r14d, ecx | r14d = ecx; 0x0041673f mov rbx, rdi | rbx = rdi; 0x00416742 mov rax, qword [rdi] | rax = *(rdi); 0x00416745 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x00416749 mov eax, dword [rdi + rax + 0x20] | eax = *((rdi + rax + 0x20)); | if (*((rsi + 4)) != 0) { 0x0041674d je 0x41679a | 0x0041674f test al, 1 | | if ((al & 1) != 0) { 0x00416751 jne 0x4167d9 | goto label_0; | } 0x00416757 mov rbp, rsi | 0x0041675a mov rdi, rbx | 0x0041675d mov esi, edx | 0x0041675f mov edx, r14d | edx = r14d; 0x00416762 call 0x41bfd0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, edx); 0x00416767 movsxd rax, dword [rbp] | rax = *(rbp); 0x0041676b mov rbp, qword [rax*8 + 0x4481e0] | rbp = *((rax*8 + 0x4481e0)); 0x00416773 mov rdi, rbp | 0x00416776 call 0x403630 | rax = strlen (*((rax*8 + 0x4481e0))); 0x0041677b mov rdi, rbx | 0x0041677e mov rsi, rbp | 0x00416781 mov rdx, rax | 0x00416784 call 0x4043d0 | al = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rbp, rax); 0x00416789 test r14d, r14d | | if (r14d < 0) { 0x0041678c js 0x4167d9 | goto label_0; | } 0x0041678e mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x00416793 lea rsi, [rsp + 0xf] | rsi = rsp + 0xf; 0x00416798 jmp 0x4167cc | | } else { 0x0041679a test al, 1 | | if ((al & 1) != 0) { 0x0041679c jne 0x4167d9 | goto label_0; | } 0x0041679e mov rdi, rbx | 0x004167a1 mov esi, edx | 0x004167a3 mov edx, r14d | edx = r14d; 0x004167a6 call 0x41bfd0 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, edx); 0x004167ab mov esi, 0x448662 | 0x004167b0 mov edx, 4 | 0x004167b5 mov rdi, rbx | 0x004167b8 call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, "NULL", 4); 0x004167bd test r14d, r14d | | if (r14d < 0) { 0x004167c0 js 0x4167d9 | goto label_0; | } 0x004167c2 mov byte [rsp + 0xe], 0xa | *((rsp + 0xe)) = 0xa; 0x004167c7 lea rsi, [rsp + 0xe] | | } 0x004167cc mov edx, 1 | 0x004167d1 mov rdi, rbx | 0x004167d4 call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rsp + 0xe, 1); | label_0: 0x004167d9 add rsp, 0x10 | 0x004167dd pop rbx | 0x004167de pop r14 | 0x004167e0 pop rbp | 0x004167e1 ret | return rax; | }