Function at 0x4028ee
Capabilities:
Check if file exists
Create directory
Delete file
Get file size
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x101c]
mov eax, 0x101c
call fcn.0040b570
push 0xffffffffffffffff
push 0x42eabd
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x43c380]
xor eax, ebp
mov dword [ebp + 0x1018], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x1024]
xor esi, esi
push esi
push 0x80
push 4
push esi
push 1
push 0x80000000
push eax
mov edi, ecx
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
jne 0x40295f
push 3
pop eax
jmp 0x402c73
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, 0x1388
push ebx
call fcn.00409ea8
mov esi, eax
test esi, esi
pop ecx
je 0x402957
push ebx
push 0
push esi
call fcn.0040aa00
and dword [ebp - 0x18], 0
add esp, 0xc
push 0
lea eax, [ebp - 0x18]
push eax
push ebx
push esi
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_ReadFile]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.__GS__
push esi
call fcn.0040b4e0
test eax, eax
pop ecx
pop ecx
jne 0x402c5c
lea eax, [esi + 0xa]
push str.__Dict__
push eax
call fcn.0040b4e0
test eax, eax
pop ecx
pop ecx
jne 0x402c5c
mov eax, dword [esi + 0x34]
mov ecx, dword [eax + esi + 0x3a]
add eax, 6
lea eax, [eax + ecx + 6]
mov ecx, dword [eax + esi + 0x34]
add eax, 4
lea ebx, [eax + esi + 0x34]
lea eax, [eax + ecx + 6]
lea edx, [esi + 0x38]
lea eax, [eax + esi + 0x34]
push edx
lea ecx, [edi + 0x14]
mov dword [ebp - 0x10], eax
call fcn.0040153c
push ebx
lea ecx, [edi + 0x30]
call fcn.0040153c
push dword [ebp - 0x10]
lea ecx, [edi + 0x4c]
call fcn.0040153c
mov eax, dword [esi + 0x24]
and word [ebp + 0xa00], 0
mov dword [edi + 0x68], eax
mov eax, dword [esi + 0x28]
mov ebx, 0x206
push ebx
mov dword [edi + 0x6c], eax
lea eax, [ebp + 0xa02]
push 0
push eax
call fcn.0040aa00
and word [ebp + 0x3e8], 0
push ebx
lea eax, [ebp + 0x3ea]
push 0
push eax
call fcn.0040aa00
and word [ebp + 0xe10], 0
push ebx
lea eax, [ebp + 0xe12]
push 0
push eax
call fcn.0040aa00
and word [ebp + 0xc08], 0
push ebx
lea eax, [ebp + 0xc0a]
push 0
push eax
call fcn.0040aa00
and word [ebp], 0
push 0x3e6
lea eax, [ebp + 2]
push 0
push eax
call fcn.0040aa00
push dword [ebp - 0x14]
lea eax, [ebp]
push eax
call fcn.0040a8f7
mov ecx, dword [0x43e2bc]
add esp, 0x44
lea eax, [ebp + 0xa00]
push eax
push dword [ebp - 0x14]
call fcn.004018c8
mov ecx, eax
call fcn.004017ba
lea eax, [ebp + 0x3e8]
push eax
lea eax, [ebp + 0xa00]
push eax
call fcn.00407c79
pop ecx
pop ecx
mov ecx, dword [0x43e2bc]
call fcn.004018c4
mov ecx, eax
call fcn.00406326
push eax
push str._sDict_
lea eax, [ebp + 0xc08]
push eax
call fcn.0040a913
add esp, 0xc
lea eax, [ebp + 0xc08]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x402b1c
push eax
lea eax, [ebp + 0xc08]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push str..zncel
lea eax, [ebp + 0x3e8]
push eax
lea eax, [ebp + 0xc08]
push eax
lea eax, [ebp + 0xe10]
push 0x430534
push eax
call fcn.0040a913
add esp, 0x14
cmp dword [edi], 0
je 0x402bcd
cmp dword [edi + 4], 0
jne 0x402ba1
lea eax, [ebp + 0xe10]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x402ba1
lea ecx, [ebp - 0x20]
call fcn.00405046
mov ecx, dword [0x43e2bc]
and dword [ebp - 4], 0
push 0
call fcn.004018c1
push eax
lea ecx, [ebp - 0x20]
call fcn.00405194
xor ecx, ecx
inc ecx
xor edx, edx
cmp eax, ecx
sete dl
or dword [ebp - 4], 0xffffffff
mov dword [edi + 4], ecx
lea ecx, [ebp - 0x20]
mov dword [edi + 0xc], edx
call fcn.00405053
lea eax, [ebp + 0xe10]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x402bcd
cmp dword [edi + 0xc], 0
jne 0x402bcd
push esi
mov dword [edi + 8], 1
call fcn.0040aa7a
pop ecx
push 4
jmp 0x402959
and word [ebp + 0x5f0], 0
push ebx
lea eax, [ebp + 0x5f2]
push 0
push eax
call fcn.0040aa00
and word [ebp + 0x7f8], 0
push ebx
lea eax, [ebp + 0x7fa]
push 0
push eax
call fcn.0040aa00
lea eax, [ebp]
push eax
lea eax, [ebp + 0x5f0]
push eax
call fcn.0040a8f7
lea eax, [ebp + 0xe10]
push eax
lea eax, [ebp + 0x7f8]
push eax
call fcn.0040a8f7
lea eax, [ebp + 0x5f0]
push eax
call fcn.0040b471
lea eax, [ebp + 0x7f8]
push eax
call fcn.0040b471
lea eax, [ebp + 0xe10]
push eax
lea eax, [ebp]
push eax
call fcn.00407cf2
push esi
call fcn.0040aa7a
add esp, 0x3c
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
jmp 0x402c73
push esi
call fcn.0040aa7a
mov eax, dword [ebp + 0x1028]
neg eax
sbb eax, eax
and eax, 0xfffffffd
pop ecx
add eax, 5
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1018]
xor ecx, ebp
call fcn.0040a784
add ebp, 0x101c
leave
ret 8