; assembly | /* r2dec pseudo code output */ | /* balxml_encoder.t/assume @ 0x44a940 */ | #include | ; (fcn) method.GenerateXmlElement.operator___std::__1::basic_string_view_char__std::__1::char_traits_char____const__std::__1::basic_string_view_char__std::__1::char_traits_char____const__const () | int64_t method_GenerateXmlElement_operator_std::_1::basic_string_view_char_std::_1::char_traits_char_const_std::_1::basic_string_view_char_std::_1::char_traits_char_const_const (int64_t arg4, char * arg3, int64_t arg1) { | int64_t var_8h; | int64_t var_18h; | uint32_t var_20h; | int64_t var_28h; | int64_t var_30h; | rcx = arg4; | rdx = arg3; | rdi = arg1; | /* GenerateXmlElement::operator()(std::__1::basic_string_view > const&, std::__1::basic_string_view > const&) const */ 0x0044a940 push r15 | 0x0044a942 push r14 | 0x0044a944 push rbx | 0x0044a945 sub rsp, 0x40 | 0x0044a949 mov rbx, rdx | rbx = rdx; 0x0044a94c mov r14, rdi | r14 = rdi; 0x0044a94f mov r15, rsp | r15 = rsp; 0x0044a952 mov rdi, r15 | 0x0044a955 mov rsi, rcx | 0x0044a958 call 0x450c30 | TestXmlUtil::generateContent(std::_1::basic_string_view>const&) (rsp, rcx); 0x0044a95d mov rdi, r14 | 0x0044a960 mov rsi, rbx | 0x0044a963 mov rdx, r15 | 0x0044a966 xor ecx, ecx | 0x0044a968 call 0x44f280 | TestXmlElement::TestXmlElement(std::_1::basic_string_view>const&,BloombergLP::bdlb::Variant>,bsl::basic_string,bsl::allocator>>const&,BloombergLP::bslma::Allocator*) (r14, rbx, r15, 0); 0x0044a96d mov eax, dword [rsp + 0x30] | eax = *((rsp + 0x30)); 0x0044a971 lea ecx, [rax - 3] | ecx = rax - 3; 0x0044a974 cmp ecx, 0x12 | 0x0044a977 jae 0x44a986 | | while (eax == 0) { | label_0: 0x0044a979 mov rax, r14 | rax = r14; 0x0044a97c add rsp, 0x40 | 0x0044a980 pop rbx | 0x0044a981 pop r14 | 0x0044a983 pop r15 | 0x0044a985 ret | return rax; 0x0044a986 test eax, eax | 0x0044a988 je 0x44a979 | | } 0x0044a98a cmp eax, 2 | | if (eax != 2) { 0x0044a98d jne 0x44a9a8 | goto label_1; | } 0x0044a98f cmp qword [rsp + 0x20], 0x17 | | if (*((rsp + 0x20)) == 0x17) { 0x0044a995 je 0x44a979 | goto label_0; | } 0x0044a997 mov rsi, qword [rsp] | rsi = *(rsp); 0x0044a99b mov rdi, qword [rsp + 0x28] | rdi = *((rsp + 0x28)); 0x0044a9a0 mov rax, qword [rdi] | rax = *(rdi); 0x0044a9a3 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0044a9a6 jmp 0x44a979 | goto label_0; | label_1: 0x0044a9a8 mov rbx, qword [rsp] | rbx = *(rsp); 0x0044a9ac test rbx, rbx | | if (rbx == 0) { 0x0044a9af je 0x44a979 | goto label_0; | } 0x0044a9b1 mov r15, qword [rsp + 8] | r15 = *((rsp + 8)); 0x0044a9b6 cmp rbx, r15 | | if (rbx == r15) { 0x0044a9b9 je 0x44a9d8 | goto label_2; | } 0x0044a9bb nop dword [rax + rax] | | do { 0x0044a9c0 mov rdi, rbx | 0x0044a9c3 call 0x44e530 | TestXmlElement::~TestXmlElement() (rbx); 0x0044a9c8 add rbx, 0x90 | rbx += 0x90; 0x0044a9cf cmp r15, rbx | 0x0044a9d2 jne 0x44a9c0 | | } while (r15 != rbx); 0x0044a9d4 mov rbx, qword [rsp] | rbx = *(rsp); | label_2: 0x0044a9d8 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044a9dd mov rax, qword [rdi] | rax = *(rdi); 0x0044a9e0 mov rsi, rbx | rsi = rbx; 0x0044a9e3 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0044a9e6 jmp 0x44a979 | goto label_0; | }