Function at 0x404300
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4eb543
mov eax, dword fs:[0]
push eax
sub esp, 0x3fc
mov eax, dword [0x533014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00487ab0
add esp, 0xc
mov eax, 0x53966c
cmp dword [0x539680], 8
cmovae eax, dword [0x53966c]
push eax
push 0x508cd4
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00406b90
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4045bd
lea ecx, [ebp - 0x310]
call dword [sym.imp.utilities.dll_public:_void___thiscall_pugi::xml_document::constructor_void_]
push 0
push 0x74
lea eax, [ebp - 0x218]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x400]
push eax
lea ecx, [ebp - 0x310]
call dword [sym.imp.utilities.dll_public:_struct_pugi::xml_parse_result___thiscall_pugi::xml_document::load_file_wchar_t_const___unsigned_int__enum_pugi::xml_encoding_]
cmp dword [ebp - 0x400], 0
lea ecx, [ebp - 0x310]
jne 0x404594
mov esi, dword [sym.imp.utilities.dll_public:_class_pugi::xml_node___thiscall_pugi::xml_node::child_wchar_t_const___bool_]
lea eax, [ebp - 0x3dc]
push 0
push str.filesinfo
push eax
push 0
push str.root
lea eax, [ebp - 0x3e0]
push eax
call esi
mov ecx, eax
call esi
lea ecx, [ebp - 0x3dc]
call dword [sym.imp.utilities.dll_public:_void____cdecl___class_pugi::xml_node_______thiscall_pugi::xml_node::operator_void____cdecl___class_pugi::xml_node_____void_const]
test eax, eax
je 0x404589
lea eax, [ebp - 0x3ec]
push eax
lea ecx, [ebp - 0x3dc]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node_iterator___thiscall_pugi::xml_node::begin_void_]
lea eax, [ebp - 0x3f4]
push eax
lea ecx, [ebp - 0x3dc]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node_iterator___thiscall_pugi::xml_node::end_void_]
push eax
lea ecx, [ebp - 0x3ec]
call dword [sym.imp.utilities.dll_public:_bool___thiscall_pugi::xml_node_iterator::operator__class_pugi::xml_node_iterator_const__const]
test al, al
je 0x404589
mov edi, dword [sym.imp.utilities.dll_public:_wchar_t_const____thiscall_pugi::xml_attribute::value_void_const]
mov ebx, dword [sym.imp.utilities.dll_public:_class_pugi::xml_attribute___thiscall_pugi::xml_node::attribute_wchar_t_const___bool_]
nop dword [eax]
xor eax, eax
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], 0
mov word [ebp - 0x248], ax
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], eax
mov word [ebp - 0x230], ax
push eax
push 0x508cfc
lea eax, [ebp - 0x3e0]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x3ec]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node____thiscall_pugi::xml_node_iterator::operator___void_const]
mov ecx, eax
call ebx
mov ecx, eax
call edi
mov edx, eax
cmp word [edx], 0
jne 0x4044b5
xor ecx, ecx
jmp 0x4044cf
mov ecx, edx
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4044c0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x230]
call fcn.00407340
push 0
push str.password
lea eax, [ebp - 0x3e4]
push eax
lea ecx, [ebp - 0x3ec]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node____thiscall_pugi::xml_node_iterator::operator___void_const]
mov ecx, eax
call ebx
mov ecx, eax
call edi
mov edx, eax
cmp word [edx], 0
jne 0x40450a
xor ecx, ecx
jmp 0x40451f
mov ecx, edx
lea esi, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404510
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x248]
call fcn.00407340
lea eax, [ebp - 0x248]
mov ecx, 0x539684
push eax
call fcn.00404ca0
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 0
call fcn.004046f0
push 0
lea eax, [ebp - 0x408]
push eax
lea ecx, [ebp - 0x3ec]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node_iterator___thiscall_pugi::xml_node_iterator::operator_int_]
lea eax, [ebp - 0x3f4]
push eax
lea ecx, [ebp - 0x3dc]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node_iterator___thiscall_pugi::xml_node::end_void_]
push eax
lea ecx, [ebp - 0x3ec]
call dword [sym.imp.utilities.dll_public:_bool___thiscall_pugi::xml_node_iterator::operator__class_pugi::xml_node_iterator_const__const]
test al, al
jne 0x404450
lea ecx, [ebp - 0x310]
jmp 0x40468b
push 1
push 1
push 0x508d8c
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.utilities.dll_public:_bool___thiscall_pugi::xml_document::save_file_wchar_t_const___wchar_t_const___unsigned_int__enum_pugi::xml_encoding_const]
lea ecx, [ebp - 0x310]
call dword [sym.imp.utilities.dll_public:_void___thiscall_pugi::xml_document::destructor_void_]
xor eax, eax
jmp 0x404696
lea ecx, [ebp - 0x3d8]
call dword [sym.imp.utilities.dll_public:_void___thiscall_pugi::xml_document::constructor_void_]
push 7
lea eax, [ebp - 0x3dc]
mov dword [ebp - 4], 2
push eax
lea ecx, [ebp - 0x3d8]
call dword [sym.imp.utilities.dll_public:_class_pugi::xml_node___thiscall_pugi::xml_node::prepend_child_enum_pugi::xml_node_type_]
mov edi, dword [sym.imp.utilities.dll_public:_class_pugi::xml_attribute___thiscall_pugi::xml_node::append_attribute_wchar_t_const__]
lea eax, [ebp - 0x3e4]
push 0x508d2c
push str.version
push eax
lea ecx, [ebp - 0x3dc]
call edi
mov esi, dword [sym.imp.utilities.dll_public:_bool___thiscall_pugi::xml_attribute::set_value_wchar_t_const__]
mov ecx, eax
call esi
push str.utf_8
push str.encoding
lea eax, [ebp - 0x3e4]
push eax
lea ecx, [ebp - 0x3dc]
call edi
mov ecx, eax
call esi
mov esi, dword [sym.imp.utilities.dll_public:_class_pugi::xml_node___thiscall_pugi::xml_node::append_child_wchar_t_const__]
lea eax, [ebp - 0x3e0]
push str.Root
push eax
lea ecx, [ebp - 0x3d8]
call esi
lea ecx, [ebp - 0x3e0]
call dword [sym.imp.utilities.dll_public:_void____cdecl___class_pugi::xml_node_______thiscall_pugi::xml_node::operator_void____cdecl___class_pugi::xml_node_____void_const]
test eax, eax
je 0x404669
push str.filesinfo
lea eax, [ebp - 0x3e4]
push eax
lea ecx, [ebp - 0x3e0]
call esi
push 1
push 1
push 0x508d8c
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x3d8]
call dword [sym.imp.utilities.dll_public:_bool___thiscall_pugi::xml_document::save_file_wchar_t_const___wchar_t_const___unsigned_int__enum_pugi::xml_encoding_const]
lea ecx, [ebp - 0x3d8]
call dword [sym.imp.utilities.dll_public:_void___thiscall_pugi::xml_document::destructor_void_]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046370d
mov esp, ebp
pop ebp
ret