Function at 0x40f650
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x53a1b4
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x200
mov eax, dword [0x58d214]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1a4], ecx
mov dword [ebp - 0x1a8], 1
lea eax, [ebp - 0x1a8]
push eax
mov ecx, dword [ebp - 0x1a4]
call fcn.0040f250
add eax, 0x18
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040ed70
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x3c]
call fcn.0040b600
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f6eb
mov byte [ebp - 0x19d], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.00407d30
mov al, byte [ebp - 0x19d]
jmp 0x40f9ff
mov dword [ebp - 0x1ac], 1
lea ecx, [ebp - 0x1ac]
push ecx
mov ecx, dword [ebp - 0x1a4]
call fcn.0040f250
push eax
lea ecx, [ebp - 0x54]
call fcn.0040ed70
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x1a4]
add edx, 0x38
push edx
lea ecx, [ebp - 0x18]
call fcn.0040eed0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3c]
call fcn.0040b600
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f776
mov byte [ebp - 0x19e], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.0040f010
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x54]
call fcn.00407d30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.00407d30
mov al, byte [ebp - 0x19e]
jmp 0x40f9ff
mov byte [ebp - 4], 3
push 0xc
lea ecx, [ebp - 0x24]
call fcn.0040afc0
mov ecx, dword [ebp - 0x1a4]
add ecx, 0x68
call fcn.0040b600
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00407820
mov dword [ebp - 0x1c4], eax
mov byte [ebp - 4], 4
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x24]
call fcn.0043b1f0
mov dword [ebp - 0x1c8], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x1f8]
call fcn.00407d30
mov ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1b0], ecx
mov dword [ebp - 0x1b4], 0x40ffc0
sub esp, 0xc
mov edx, esp
mov dword [ebp - 0x1cc], esp
push 0x544e1b
lea eax, [ebp - 0x1b0]
push eax
lea ecx, [ebp - 0x1b4]
push ecx
push edx
call fcn.0040e8c0
add esp, 0x10
lea ecx, [ebp - 0xa4]
call fcn.0040c780
mov dword [ebp - 0x1d0], eax
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x1a4]
mov dword [ebp - 0x1b8], edx
mov dword [ebp - 0x1bc], 0x40fa20
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x1d4], esp
push 0x544e1b
lea ecx, [ebp - 0x1b8]
push ecx
lea edx, [ebp - 0x1bc]
push edx
push eax
call fcn.0040e8c0
add esp, 0x10
lea ecx, [ebp - 0x7c]
call fcn.0040c710
mov dword [ebp - 0x1d8], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x54]
call fcn.0040b600
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40f891
push 0
lea ecx, [ebp - 0x54]
call fcn.0040b600
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0x592314
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x19c]
call fcn.0043caf0
mov dword [ebp - 0x1dc], eax
mov byte [ebp - 4], 9
cmp dword [ebp + 0xc], 0
je 0x40f8ef
mov ecx, dword [ebp + 0xc]
push ecx
lea ecx, [ebp - 0x210]
call fcn.00407820
mov dword [ebp - 0x1e0], eax
mov byte [ebp - 4], 0xa
lea edx, [ebp - 0x210]
push edx
lea ecx, [ebp - 0x19c]
call fcn.0043b773
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x210]
call fcn.00407d30
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x19c]
call fcn.0043b764
lea ecx, [ebp - 0xa4]
push ecx
lea ecx, [ebp - 0x19c]
call fcn.0043b77f
lea edx, [ebp - 0x54]
push edx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x19c]
call fcn.0043cb76
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x19c]
call fcn.0040f0b0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x7c]
call fcn.0040eff0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xa4]
call fcn.0040eff0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.0043b336
jmp 0x40f990
mov dword [ebp - 4], 2
jmp 0x40f9cb
mov byte [ebp - 0x1a0], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x18]
call fcn.0040f010
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x54]
call fcn.00407d30
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x3c]
call fcn.00407d30
mov al, byte [ebp - 0x1a0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d48f1
mov esp, ebp
pop ebp
ret 8