; assembly | /* r2dec pseudo code output */ | /* balxml_encoder.t/none @ 0x4e7e30 */ | #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, int64_t 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&) */ 0x004e7e30 push r14 | 0x004e7e32 push rbx | 0x004e7e33 push rax | 0x004e7e34 mov r14, rsi | r14 = rsi; 0x004e7e37 mov rbx, rdi | rbx = rdi; 0x004e7e3a mov esi, dword [rdi + 0xa8] | esi = *((rdi + 0xa8)); 0x004e7e40 mov eax, dword [rdi + 0xd8] | eax = *((rdi + 0xd8)); 0x004e7e46 dec esi | esi--; 0x004e7e48 mov dword [rdi + 0xa8], esi | *((rdi + 0xa8)) = esi; 0x004e7e4e cmp eax, 2 | | if (eax == 2) { 0x004e7e51 jne 0x4e7e79 | 0x004e7e53 mov rdi, qword [rbx + 0xa0] | 0x004e7e5a mov esi, 0x54e990 | 0x004e7e5f mov edx, 2 | 0x004e7e64 call 0x4529b0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), 0x54e990, 2); 0x004e7e69 mov eax, dword [rbx + 0xb0] | eax = *((rbx + 0xb0)); 0x004e7e6f mov ecx, 2 | ecx = 2; 0x004e7e74 jmp 0x4e7f27 | | } else { 0x004e7e79 cmp dword [rbx + 0xb4], 0 | | if (*((rbx + 0xb4)) > 0) { 0x004e7e80 jle 0x4e7ede | 0x004e7e82 cmp dword [rbx + 0xb0], 0 | | if (*((rbx + 0xb0)) != 0) { 0x004e7e89 je 0x4e7eb9 | 0x004e7e8b mov rax, qword [rbx + 0xc0] | rax = *((rbx + 0xc0)); 0x004e7e92 cmp dword [rax - 4], 3 | | if (*((rax - 4)) != 3) { 0x004e7e96 jne 0x4e7ede | goto label_0; | } 0x004e7e98 mov rdi, qword [rbx + 0xa0] | 0x004e7e9f mov byte [rsp + 6], 0xa | *((rsp + 6)) = 0xa; 0x004e7ea4 lea rsi, [rsp + 6] | 0x004e7ea9 mov edx, 1 | 0x004e7eae call 0x4529b0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), rsp + 6, 1); 0x004e7eb3 mov esi, dword [rbx + 0xa8] | | } 0x004e7eb9 mov rdi, qword [rbx + 0xa0] | 0x004e7ec0 mov edx, dword [rbx + 0xac] | edx = *((rbx + 0xac)); 0x004e7ec6 call 0x4f0430 | BloombergLP::bdlb::Print::indent(std::_1::basic_ostream>&,int,int) (*((rbx + 0xa0)), *((rbx + 0xa8))); 0x004e7ecb mov eax, dword [rbx + 0xac] | eax = *((rbx + 0xac)); 0x004e7ed1 imul eax, dword [rbx + 0xa8] | eax *= *((rbx + 0xa8)); 0x004e7ed8 mov dword [rbx + 0xb0], eax | *((rbx + 0xb0)) = eax; | } | label_0: 0x004e7ede mov rdi, qword [rbx + 0xa0] | 0x004e7ee5 mov esi, 0x552a2c | 0x004e7eea mov edx, 2 | 0x004e7eef call 0x4529b0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), 0x552a2c, 2); 0x004e7ef4 mov rsi, qword [r14] | 0x004e7ef7 mov rdx, qword [r14 + 8] | 0x004e7efb mov rdi, rax | 0x004e7efe call 0x4529b0 | rax = std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, *(r14), *((r14 + 8))); 0x004e7f03 mov byte [rsp + 7], 0x3e | *((rsp + 7)) = 0x3e; 0x004e7f08 lea rsi, [rsp + 7] | 0x004e7f0d mov edx, 1 | 0x004e7f12 mov rdi, rax | 0x004e7f15 call 0x4529b0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (rax, rsp + 7, 1); 0x004e7f1a mov eax, dword [r14 + 8] | eax = *((r14 + 8)); 0x004e7f1e add eax, 3 | eax += 3; 0x004e7f21 mov ecx, dword [rbx + 0xb0] | ecx = *((rbx + 0xb0)); | } 0x004e7f27 add ecx, eax | ecx += eax; 0x004e7f29 mov dword [rbx + 0xb0], ecx | *((rbx + 0xb0)) = ecx; 0x004e7f2f mov byte [rbx + 0xdc], 0 | *((rbx + 0xdc)) = 0; 0x004e7f36 cmp dword [rbx + 0xb4], 0 | | if (*((rbx + 0xb4)) < 0) { 0x004e7f3d js 0x4e7f92 | goto label_1; | } 0x004e7f3f mov rdi, qword [rbx + 0xa0] | 0x004e7f46 mov byte [rsp + 5], 0xa | *((rsp + 5)) = 0xa; 0x004e7f4b lea rsi, [rsp + 5] | 0x004e7f50 mov edx, 1 | 0x004e7f55 call 0x4529b0 | std::_1::basic_ostream>&std::_1::_put_character_sequence>(std::_1::basic_ostream>&,char const*,unsigned long) (*((rbx + 0xa0)), rsp + 5, 1); 0x004e7f5a mov dword [rbx + 0xb0], 0 | *((rbx + 0xb0)) = 0; 0x004e7f64 mov byte [rbx + 0xdd], 1 | *((rbx + 0xdd)) = 1; 0x004e7f6b mov rax, qword [rbx + 0xc0] | rax = *((rbx + 0xc0)); 0x004e7f72 add rax, 0xfffffffffffffffc | rax += 0xfffffffffffffffc; 0x004e7f76 mov qword [rbx + 0xc0], rax | *((rbx + 0xc0)) = rax; 0x004e7f7d cmp rax, qword [rbx + 0xb8] | | if (rax == *((rbx + 0xb8))) { 0x004e7f84 je 0x4e7f9b | goto label_2; | } | do { 0x004e7f86 mov dword [rbx + 0xd8], 3 | *((rbx + 0xd8)) = 3; 0x004e7f90 jmp 0x4e7fb1 | goto label_3; | label_1: 0x004e7f92 cmp dword [rbx + 0xa8], 0 | 0x004e7f99 jne 0x4e7f86 | | } while (*((rbx + 0xa8)) != 0); | label_2: 0x004e7f9b mov dword [rbx + 0xd8], 4 | *((rbx + 0xd8)) = 4; 0x004e7fa5 mov rdi, qword [rbx + 0xa0] | rdi = *((rbx + 0xa0)); 0x004e7fac call 0x4046b0 | std::_1::basic_ostream>::flush() (); | label_3: 0x004e7fb1 add rsp, 8 | 0x004e7fb5 pop rbx | 0x004e7fb6 pop r14 | 0x004e7fb8 ret | return rax; | }