; assembly | /* r2dec pseudo code output */ | /* balxml_encoder.t/none @ 0x44b1c0 */ | #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 */ 0x0044b1c0 push r15 | 0x0044b1c2 push r14 | 0x0044b1c4 push rbx | 0x0044b1c5 sub rsp, 0x40 | 0x0044b1c9 mov rbx, rdx | rbx = rdx; 0x0044b1cc mov r14, rdi | r14 = rdi; 0x0044b1cf mov r15, rsp | r15 = rsp; 0x0044b1d2 mov rdi, r15 | 0x0044b1d5 mov rsi, rcx | 0x0044b1d8 call 0x4514d0 | TestXmlUtil::generateContent(std::_1::basic_string_view>const&) (rsp, rcx); 0x0044b1dd mov rdi, r14 | 0x0044b1e0 mov rsi, rbx | 0x0044b1e3 mov rdx, r15 | 0x0044b1e6 xor ecx, ecx | 0x0044b1e8 call 0x44fb20 | TestXmlElement::TestXmlElement(std::_1::basic_string_view>const&,BloombergLP::bdlb::Variant>,bsl::basic_string,bsl::allocator>>const&,BloombergLP::bslma::Allocator*) (r14, rbx, r15, 0); 0x0044b1ed mov eax, dword [rsp + 0x30] | eax = *((rsp + 0x30)); 0x0044b1f1 cmp eax, 2 | | if (eax == 2) { 0x0044b1f4 je 0x44b238 | goto label_0; | } 0x0044b1f6 cmp eax, 1 | | if (eax != 1) { 0x0044b1f9 jne 0x44b24f | goto label_1; | } 0x0044b1fb mov rbx, qword [rsp] | rbx = *(rsp); 0x0044b1ff test rbx, rbx | | if (rbx == 0) { 0x0044b202 je 0x44b24f | goto label_1; | } 0x0044b204 mov r15, qword [rsp + 8] | r15 = *((rsp + 8)); 0x0044b209 cmp rbx, r15 | | if (rbx == r15) { 0x0044b20c je 0x44b228 | goto label_2; | } 0x0044b20e nop | | do { 0x0044b210 mov rdi, rbx | 0x0044b213 call 0x44ede0 | TestXmlElement::~TestXmlElement() (rbx); 0x0044b218 add rbx, 0x90 | rbx += 0x90; 0x0044b21f cmp r15, rbx | 0x0044b222 jne 0x44b210 | | } while (r15 != rbx); 0x0044b224 mov rbx, qword [rsp] | rbx = *(rsp); | label_2: 0x0044b228 mov rdi, qword [rsp + 0x18] | rdi = *((rsp + 0x18)); 0x0044b22d mov rax, qword [rdi] | rax = *(rdi); 0x0044b230 mov rsi, rbx | rsi = rbx; 0x0044b233 call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); 0x0044b236 jmp 0x44b24f | goto label_1; | label_0: 0x0044b238 cmp qword [rsp + 0x20], 0x17 | | if (*((rsp + 0x20)) != 0x17) { 0x0044b23e je 0x44b24f | 0x0044b240 mov rsi, qword [rsp] | rsi = *(rsp); 0x0044b244 mov rdi, qword [rsp + 0x28] | rdi = *((rsp + 0x28)); 0x0044b249 mov rax, qword [rdi] | rax = *(rdi); 0x0044b24c call qword [rax + 0x18] | uint64_t (*rax + 0x18)() (); | } | label_1: 0x0044b24f mov rax, r14 | rax = r14; 0x0044b252 add rsp, 0x40 | 0x0044b256 pop rbx | 0x0044b257 pop r14 | 0x0044b259 pop r15 | 0x0044b25b ret | return rax; | }