; assembly | /* r2dec pseudo code output */ | /* balb_testmessages.t/none @ 0x4167b0 */ | #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) */ 0x004167b0 push rbp | 0x004167b1 push r14 | 0x004167b3 push rbx | 0x004167b4 sub rsp, 0x10 | 0x004167b8 cmp byte [rsi + 4], 0 | 0x004167bc mov r14d, ecx | r14d = ecx; 0x004167bf mov rbx, rdi | rbx = rdi; 0x004167c2 mov rax, qword [rdi] | rax = *(rdi); 0x004167c5 mov rax, qword [rax - 0x18] | rax = *((rax - 0x18)); 0x004167c9 mov eax, dword [rdi + rax + 0x20] | eax = *((rdi + rax + 0x20)); | if (*((rsi + 4)) != 0) { 0x004167cd je 0x4167fb | 0x004167cf test al, 1 | | if ((al & 1) != 0) { 0x004167d1 jne 0x416863 | goto label_0; | } 0x004167d7 mov rbp, rsi | 0x004167da mov rdi, rbx | 0x004167dd mov esi, edx | 0x004167df mov edx, r14d | edx = r14d; 0x004167e2 call 0x41c020 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, edx); 0x004167e7 movsxd rax, dword [rbp] | rax = *(rbp); 0x004167eb cmp rax, 2 | | if (rax <= 2) { 0x004167ef ja 0x41682f | 0x004167f1 mov rbp, qword [rax*8 + 0x447bb0] | rbp = *((rax*8 + 0x447bb0)); 0x004167f9 jmp 0x416831 | | } else { 0x004167fb test al, 1 | | if ((al & 1) != 0) { 0x004167fd jne 0x416863 | goto label_0; | } 0x004167ff mov rdi, rbx | 0x00416802 mov esi, edx | 0x00416804 mov edx, r14d | edx = r14d; 0x00416807 call 0x41c020 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (rbx, edx); 0x0041680c mov esi, 0x447ed0 | 0x00416811 mov edx, 4 | 0x00416816 mov rdi, rbx | 0x00416819 call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, "NULL", 4); 0x0041681e test r14d, r14d | | if (r14d < 0) { 0x00416821 js 0x416863 | goto label_0; | } 0x00416823 mov byte [rsp + 0xe], 0xa | *((rsp + 0xe)) = 0xa; 0x00416828 lea rsi, [rsp + 0xe] | rsi = rsp + 0xe; 0x0041682d jmp 0x416856 | goto label_1; | } 0x0041682f xor ebp, ebp | ebp = 0; | } 0x00416831 mov rdi, rbp | 0x00416834 call 0x403630 | rax = strlen (rbp); 0x00416839 mov rdi, rbx | 0x0041683c mov rsi, rbp | 0x0041683f mov rdx, rax | 0x00416842 call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rbp, rax); 0x00416847 test r14d, r14d | | if (r14d >= 0) { 0x0041684a js 0x416863 | 0x0041684c mov byte [rsp + 0xf], 0xa | *((rsp + 0xf)) = 0xa; 0x00416851 lea rsi, [rsp + 0xf] | | label_1: 0x00416856 mov edx, 1 | 0x0041685b mov rdi, rbx | 0x0041685e call 0x4043d0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rbx, rsp + 0xf, 1); | } | label_0: 0x00416863 add rsp, 0x10 | 0x00416867 pop rbx | 0x00416868 pop r14 | 0x0041686a pop rbp | 0x0041686b ret | return rax; | }