Function at 0x1401d12b0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xe8
mov rax, qword [0x14049bcb8]
xor rax, rsp
mov qword [rsp + 0xd0], rax
mov r14, r9
mov rsi, r8
mov rbx, rdx
mov rdi, rcx
mov qword [rsp + 0x50], rcx
call fcn.1401c2560
mov rdx, rbx
mov rcx, qword [rdi]
call qword [sym.imp.VBoxRT.dll_public:_class_RTCString____ptr64___cdecl_RTCString::operator_class_RTCString_const____ptr64____ptr64]
lea rcx, [rdi + 0x5e8]
call qword [sym.imp.VBoxRT.dll_public:_bool___cdecl_RTCString::isEmpty_void_const___ptr64]
test al, al
je 0x1401d131f
lea rcx, [rdi + 0x608]
call qword [sym.imp.VBoxRT.dll_public:_bool___cdecl_RTCString::isEmpty_void_const___ptr64]
test al, al
je 0x1401d131f
mov rcx, rdi
call fcn.1401d0ed0
mov rcx, rdi
call fcn.1401c3880
lea rcx, [rdi + 0x608]
call qword [sym.imp.VBoxRT.dll_public:_bool___cdecl_RTCString::isNotEmpty_void_const___ptr64]
mov rcx, qword [rdi]
mov rcx, qword [rcx + 0x38]
test al, al
je 0x1401d136a
lea rdx, str.MachineEncrypted
call qword [sym.imp.VBoxRT.dll_public:_class_xml::ElementNode____ptr64___cdecl_xml::ElementNode::createChild_char_const____ptr64____ptr64]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], rsi
xor r9d, r9d
lea r8d, [r9 + 9]
mov rdx, rax
mov rcx, rdi
call fcn.1401bf530
jmp 0x1401d1389
lea rdx, [0x14031d498]
call qword [sym.imp.VBoxRT.dll_public:_class_xml::ElementNode____ptr64___cdecl_xml::ElementNode::createChild_char_const____ptr64____ptr64]
xor r9d, r9d
lea r8d, [r9 + 9]
mov rdx, rax
mov rcx, rdi
call fcn.1401bfa30
mov rdx, qword [rdi]
mov rdx, qword [rdx + 0x28]
lea rcx, [rsp + 0x48]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::XmlFileWriter::constructor_class_xml::Document____ptr64____ptr64]
nop
mov rcx, qword [rdi]
call qword [sym.imp.VBoxRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov rdx, rax
mov r8b, 1
lea rcx, [rsp + 0x48]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::XmlFileWriter::write_char_const____ptr64__bool____ptr64]
cmp qword [rdi + 0x5d0], 0
je 0x1401d1603
mov rcx, qword [rdi]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.VBoxRT.dll_public:_class_xml::ElementNode____ptr64___cdecl_xml::Document::getRootElement_void____ptr64]
cmp qword [rdi + 0x5d0], 0
je 0x1401d14a4
lea rdx, str.CustomData
mov rcx, rax
call qword [sym.imp.VBoxRT.dll_public:_class_xml::ElementNode____ptr64___cdecl_xml::ElementNode::createChild_char_const____ptr64____ptr64]
mov r12, rax
mov rbx, qword [rdi + 0x5c8]
mov rbx, qword [rbx]
nop dword [rax]
cmp rbx, qword [rdi + 0x5c8]
je 0x1401d14a4
lea rdx, str.CustomDataItem
mov rcx, r12
call qword [sym.imp.VBoxRT.dll_public:_class_xml::ElementNode____ptr64___cdecl_xml::ElementNode::createChild_char_const____ptr64____ptr64]
mov rsi, rax
lea r8, [rbx + 0x20]
lea rdx, str.name
mov rcx, rax
call qword [sym.imp.VBoxRT.dll_public:_class_xml::AttributeNode____ptr64___cdecl_xml::ElementNode::setAttribute_char_const____ptr64__class_RTCString_const____ptr64____ptr64]
lea r8, [rbx + 0x40]
lea rdx, str.value
mov rcx, rsi
call qword [sym.imp.VBoxRT.dll_public:_class_xml::AttributeNode____ptr64___cdecl_xml::ElementNode::setAttribute_char_const____ptr64__class_RTCString_const____ptr64____ptr64]
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x1401d1478
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x1401d1473
nop dword [rax]
cmp rbx, qword [rax + 0x10]
jne 0x1401d1473
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x1401d1460
mov rbx, rax
jmp 0x1401d1400
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x1401d1400
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x1401d1490
jmp 0x1401d1400
mov rdx, qword [rdi]
lea rcx, [rsp + 0x60]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_RTCString::constructor_class_RTCString_const____ptr64____ptr64]
lea rax, vtable.com::Utf8Str.0
mov qword [rsp + 0x60], rax
lea rdx, str._custom
lea rcx, [rsp + 0x60]
call qword [sym.imp.VBoxRT.dll_public:_class_RTCString____ptr64___cdecl_RTCString::append_char_const____ptr64____ptr64]
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x40]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::XmlMemWriter::constructor_void____ptr64]
nop
mov rdx, qword [rdi]
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
mov rdx, qword [rdx + 0x30]
lea rcx, [rsp + 0x40]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::XmlMemWriter::write_class_xml::Document_const____ptr64__void____ptr64____ptr64__unsigned_long_long_unsigned___int64_____ptr64____ptr64]
lea rdx, [0x14030eea8]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.VBoxRT.dll_RTMemAllocZTag]
mov rbx, rax
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x30]
mov dword [rsp + 0xc0], 0xa30adf59
mov dword [rsp + 0xc4], 0xd180e867
mov dword [rsp + 0xc8], 0xc3aab352
mov dword [rsp + 0xcc], 0x7b9a2944
mov r8, qword [rsp + 0x38]
mov rcx, rax
test rdx, rdx
je 0x1401d1583
nop dword [rax]
mov rax, rcx
sub rax, rbx
and eax, 0xf
movzx eax, byte [rsp + rax + 0xc0]
xor al, byte [r8]
mov byte [rcx], al
lea r8, [r8 + 1]
inc rcx
sub rdx, 1
jne 0x1401d1560
lea rcx, [rsp + 0x60]
call qword [sym.imp.VBoxRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov r8, rax
mov dword [rsp + 0x20], 1
mov r9b, 1
mov edx, 2
lea rcx, [rsp + 0x88]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::File::constructor_enum_xml::File::Mode__char_const____ptr64__bool____ptr64]
nop
mov r8d, dword [rsp + 0x30]
mov rdx, rbx
lea rcx, [rsp + 0x98]
call qword [sym.imp.VBoxRT.dll_public_virtual:_int___cdecl_xml::File::write_char_const____ptr64__int____ptr64]
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::File::vbase_dtor_void____ptr64]
nop
jmp 0x1401d15e2
mov rcx, rbx
call qword [sym.imp.VBoxRT.dll_RTMemFree]
nop
lea rcx, [rsp + 0x40]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::XmlMemWriter::destructor_void____ptr64]
nop
lea rcx, [rsp + 0x60]
call qword [sym.imp.VBoxRT.dll_public_virtual:_void___cdecl_RTCString::destructor_void____ptr64]
mov rax, qword [rdi]
mov byte [rax + 0x20], 1
mov rcx, qword [rdi]
call fcn.1401c3490
mov ecx, 0xb80010
call qword [sym.imp.VBoxRT.dll_RTLogRelGetDefaultInstanceEx]
mov rbx, rax
test rax, rax
je 0x1401d164f
mov rcx, qword [rdi]
call qword [sym.imp.VBoxRT.dll_public:_char_const____ptr64___cdecl_RTCString::c_str_void_const___ptr64]
mov qword [rsp + 0x20], rax
lea r9, str.Finished_saving_settings_file___s__n
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
mov r8d, 0xb8
mov rcx, rbx
call qword [sym.imp.VBoxRT.dll_RTLogLoggerEx]
nop
lea rcx, [rsp + 0x48]
call qword [sym.imp.VBoxRT.dll_public:_void___cdecl_xml::XmlFileWriter::destructor_void____ptr64]
nop
mov rcx, qword [rsp + 0xd0]
xor rcx, rsp
call fcn.140202f70
add rsp, 0xe8
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret