; assembly | /* r2dec pseudo code output */ | /* balxml_encoder.t/assume @ 0x4e7630 */ | #include | ; (fcn) method.BloombergLP::balxml::Formatter.closeElement_std::__1::basic_string_view_char__std::__1::char_traits_char____const_ () | int64_t method_BloombergLP::balxml::Formatter_closeElement_std::_1::basic_string_view_char_std::_1::char_traits_char_const_ (char * arg2, char * arg1) { | int64_t var_5h; | int64_t var_6h; | int64_t var_7h; | rsi = arg2; | rdi = arg1; | /* BloombergLP::balxml::Formatter::closeElement(std::__1::basic_string_view > const&) */ 0x004e7630 push r14 | 0x004e7632 push rbx | 0x004e7633 push rax | 0x004e7634 mov r14, rsi | r14 = rsi; 0x004e7637 mov rbx, rdi | rbx = rdi; 0x004e763a mov esi, dword [rdi + 0xa8] | esi = *((rdi + 0xa8)); 0x004e7640 dec esi | esi--; 0x004e7642 cmp dword [rdi + 0xd8], 2 | 0x004e7649 mov dword [rdi + 0xa8], esi | *((rdi + 0xa8)) = esi; | if (*((rdi + 0xd8)) == 2) { 0x004e764f jne 0x4e7677 | 0x004e7651 mov rdi, qword [rbx + 0xa0] | 0x004e7658 mov esi, 0x54dfa0 | 0x004e765d mov edx, 2 | 0x004e7662 call 0x4521a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), 0x54dfa0, 2); 0x004e7667 mov eax, dword [rbx + 0xb0] | eax = *((rbx + 0xb0)); 0x004e766d mov ecx, 2 | ecx = 2; 0x004e7672 jmp 0x4e7725 | | } else { 0x004e7677 cmp dword [rbx + 0xb4], 0 | | if (*((rbx + 0xb4)) > 0) { 0x004e767e jle 0x4e76dc | 0x004e7680 cmp dword [rbx + 0xb0], 0 | | if (*((rbx + 0xb0)) != 0) { 0x004e7687 je 0x4e76b7 | 0x004e7689 mov rax, qword [rbx + 0xc0] | rax = *((rbx + 0xc0)); 0x004e7690 cmp dword [rax - 4], 3 | | if (*((rax - 4)) != 3) { 0x004e7694 jne 0x4e76dc | goto label_0; | } 0x004e7696 mov rdi, qword [rbx + 0xa0] | 0x004e769d mov byte [rsp + 6], 0xa | *((rsp + 6)) = 0xa; 0x004e76a2 lea rsi, [rsp + 6] | 0x004e76a7 mov edx, 1 | 0x004e76ac call 0x4521a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), rsp + 6, 1); 0x004e76b1 mov esi, dword [rbx + 0xa8] | | } 0x004e76b7 mov rdi, qword [rbx + 0xa0] | 0x004e76be mov edx, dword [rbx + 0xac] | edx = *((rbx + 0xac)); 0x004e76c4 call 0x4efc90 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rbx + 0xa0)), *((rbx + 0xa8))); 0x004e76c9 mov eax, dword [rbx + 0xac] | eax = *((rbx + 0xac)); 0x004e76cf imul eax, dword [rbx + 0xa8] | eax *= *((rbx + 0xa8)); 0x004e76d6 mov dword [rbx + 0xb0], eax | *((rbx + 0xb0)) = eax; | } | label_0: 0x004e76dc mov rdi, qword [rbx + 0xa0] | 0x004e76e3 mov esi, 0x55203e | 0x004e76e8 mov edx, 2 | 0x004e76ed call 0x4521a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), 0x55203e, 2); 0x004e76f2 mov rsi, qword [r14] | 0x004e76f5 mov rdx, qword [r14 + 8] | 0x004e76f9 mov rdi, rax | 0x004e76fc call 0x4521a0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, *(r14), *((r14 + 8))); 0x004e7701 mov byte [rsp + 7], 0x3e | *((rsp + 7)) = 0x3e; 0x004e7706 lea rsi, [rsp + 7] | 0x004e770b mov edx, 1 | 0x004e7710 mov rdi, rax | 0x004e7713 call 0x4521a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 7, 1); 0x004e7718 mov eax, dword [r14 + 8] | eax = *((r14 + 8)); 0x004e771c add eax, 3 | eax += 3; 0x004e771f mov ecx, dword [rbx + 0xb0] | ecx = *((rbx + 0xb0)); | } 0x004e7725 add ecx, eax | ecx += eax; 0x004e7727 mov dword [rbx + 0xb0], ecx | *((rbx + 0xb0)) = ecx; 0x004e772d mov byte [rbx + 0xdc], 0 | *((rbx + 0xdc)) = 0; 0x004e7734 cmp dword [rbx + 0xb4], 0 | | if (*((rbx + 0xb4)) < 0) { 0x004e773b js 0x4e7790 | goto label_1; | } 0x004e773d mov rdi, qword [rbx + 0xa0] | 0x004e7744 mov byte [rsp + 5], 0xa | *((rsp + 5)) = 0xa; 0x004e7749 lea rsi, [rsp + 5] | 0x004e774e mov edx, 1 | 0x004e7753 call 0x4521a0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), rsp + 5, 1); 0x004e7758 mov dword [rbx + 0xb0], 0 | *((rbx + 0xb0)) = 0; 0x004e7762 mov byte [rbx + 0xdd], 1 | *((rbx + 0xdd)) = 1; 0x004e7769 mov rax, qword [rbx + 0xc0] | rax = *((rbx + 0xc0)); 0x004e7770 add rax, 0xfffffffffffffffc | rax += 0xfffffffffffffffc; 0x004e7774 mov qword [rbx + 0xc0], rax | *((rbx + 0xc0)) = rax; 0x004e777b cmp rax, qword [rbx + 0xb8] | | if (rax == *((rbx + 0xb8))) { 0x004e7782 je 0x4e7799 | goto label_2; | } | do { 0x004e7784 mov dword [rbx + 0xd8], 3 | *((rbx + 0xd8)) = 3; 0x004e778e jmp 0x4e77af | goto label_3; | label_1: 0x004e7790 cmp dword [rbx + 0xa8], 0 | 0x004e7797 jne 0x4e7784 | | } while (*((rbx + 0xa8)) != 0); | label_2: 0x004e7799 mov dword [rbx + 0xd8], 4 | *((rbx + 0xd8)) = 4; 0x004e77a3 mov rdi, qword [rbx + 0xa0] | rdi = *((rbx + 0xa0)); 0x004e77aa call 0x4046b0 | std::_1::basic_ostream>::flush() (); | label_3: 0x004e77af add rsp, 8 | 0x004e77b3 pop rbx | 0x004e77b4 pop r14 | 0x004e77b6 ret | return rax; | }