Function at 0x40df90
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4534e7
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x46d070]
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
mov ebx, ecx
mov dword [ebp - 0x34], ebx
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0xe8]
sub esp, 8
call fcn.004027b0
lea eax, [ebx + 0x18]
mov dword [ebp - 4], 0
lea edi, [ebx + 0x48]
mov dword [ebp - 0x30], eax
mov edx, esi
mov dword [ebp - 0x38], edi
lea ecx, [ebp - 0xd8]
call fcn.00409350
mov edx, 0x5c
mov ecx, eax
call fcn.004095d0
lea edx, [ebx + 0x18]
mov ecx, eax
call fcn.00409350
mov edx, 0x5f
mov ecx, eax
call fcn.004095d0
mov edx, edi
mov ecx, eax
call fcn.00409350
mov edx, str..ini
mov ecx, eax
call fcn.004098a0
mov ecx, eax
call fcn.00407e40
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xe8]
call fcn.004026a0
mov edi, eax
lea esi, [ebx + 0x60]
cmp esi, edi
je 0x40e084
mov eax, dword [esi + 0x14]
cmp eax, 8
jb 0x40e05d
inc eax
mov ecx, esi
push eax
push dword [esi]
call fcn.0040d960
mov dword [esi + 0x14], 7
cmp dword [esi + 0x14], 8
mov dword [esi + 0x10], 0
jb 0x40e075
mov eax, dword [esi]
jmp 0x40e077
mov eax, esi
xor ecx, ecx
mov word [eax], cx
mov ecx, esi
push edi
call fcn.0040d5b0
mov eax, dword [ebp - 0x14]
cmp eax, 8
jb 0x40e099
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.0040d960
cmp dword [esi + 0x14], 8
mov byte [ebp - 0x29], 0
jb 0x40e0a7
mov eax, dword [esi]
jmp 0x40e0a9
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40e0cf
cmp dword [esi + 0x14], 8
jb 0x40e0be
mov eax, dword [esi]
jmp 0x40e0c0
mov eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x40e177
cmp dword [esi + 0x14], 8
jb 0x40e0d9
mov eax, dword [esi]
jmp 0x40e0db
mov eax, esi
cmp dword [ebx + 0x14], 8
jb 0x40e0e3
mov ebx, dword [ebx]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push eax
push ebx
push 0x463b18
push str.keyinfo
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
cmp dword [esi + 0x14], 8
jb 0x40e109
mov ecx, dword [esi]
jmp 0x40e10b
mov ecx, esi
mov eax, dword [ebp - 0x30]
cmp dword [eax + 0x14], 8
jb 0x40e116
mov eax, dword [eax]
push ecx
push eax
push 0x463b3c
push str.keyinfo
call edi
call ebx
cmp dword [esi + 0x14], 8
jb 0x40e130
mov ecx, dword [esi]
jmp 0x40e132
mov ecx, esi
mov eax, dword [ebp - 0x34]
add eax, 0x30
cmp dword [eax + 0x14], 8
jb 0x40e140
mov eax, dword [eax]
push ecx
push eax
push 0x463b44
push str.keyinfo
call edi
call ebx
cmp dword [esi + 0x14], 8
jb 0x40e158
mov esi, dword [esi]
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x14], 8
jb 0x40e163
mov eax, dword [eax]
push esi
push eax
push 0x463b4c
push str.keyinfo
call edi
call ebx
mov byte [ebp - 0x29], 1
lea ecx, [ebp - 0x80]
call fcn.004026c0
lea eax, [ebp - 0x80]
mov dword [ebp - 4], 2
push eax
mov dword [ebp - 0x80], vtable.std::ios_base.0
call fcn.00433d45
mov al, byte [ebp - 0x29]
add esp, 4
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.0043598e
mov esp, ebp
pop ebp
ret 4