Function at 0x410700
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x41f9eb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x214
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ebp, [esi + 0x4fc]
push ebp
mov dword [esp + 0x14], ebp
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, esi
mov dword [esp + 0x22c], 0
call fcn.004109f0
mov dl, byte [0x426fec]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x1d]
mov byte [esp + 0x1c], dl
mov byte [esp + 0x120], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x121]
mov ebx, dword [esp + 0x234]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x120]
push 0
lea ecx, [esp + 0x20]
push eax
push ecx
push ebx
call fcn.00419b10
add esp, 0x10
lea edx, [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x4107d3
lea eax, [esp + 0x1c]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x4107d3
push ebp
mov dword [0x426fe4], 0x14
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x80004005
jmp 0x4109cb
lea ebp, [esi + 0x20c]
push 0x426420
mov ecx, ebp
call fcn.0041a190
push 0xc8
mov ecx, ebp
call fcn.0041b990
push 0x4000
mov ecx, ebp
call fcn.0041b9a0
push esi
push 0x42641c
push ebx
call fcn.00419390
add esp, 0xc
mov ecx, ebp
push 2
push esi
call fcn.0041ab00
test eax, eax
je 0x410911
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push 0x100
push esi
mov ecx, ebp
call fcn.0041a1e0
test eax, eax
je 0x410855
mov ecx, dword [esp + 0x10]
mov dword [0x426fe4], 0x15
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x80004005
jmp 0x4109cb
push 0x2eec
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov ecx, 0xbbb
xor eax, eax
mov edi, ebx
push 0x2eec
rep stosd dword es:[edi], eax
push 1
push ebx
mov ecx, ebp
mov dword [ebx], eax
mov dword [ebx + 4], 0x64
mov dword [ebx + 8], 0xffffffff
call fcn.0041b640
mov edi, eax
push ebx
test edi, edi
jge 0x4108bc
call fcn.0041e706
mov edx, dword [esp + 0x14]
add esp, 4
mov dword [0x426fe4], 7
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x80004005
jmp 0x4109cb
call fcn.0041e706
add esp, 4
lea eax, [esp + 0x18]
lea ecx, [esp + 0x14]
xor ebx, ebx
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
call fcn.0041af20
cmp dword [esp + 0x18], 0x100
jne 0x410903
mov eax, dword [esp + 0x14]
cmp eax, ebx
je 0x410903
mov dword [eax], edi
mov edx, dword [esp + 0x14]
mov ecx, 0x3f
xor eax, eax
lea edi, [edx + 4]
rep stosd dword es:[edi], eax
mov ecx, ebp
call fcn.0041a5e0
mov ebx, dword [esp + 0x234]
push 0xa
mov ecx, esi
call fcn.00413b60
push 0xb
mov ecx, esi
call fcn.00413b60
push 0xc
mov ecx, esi
call fcn.00413b60
lea edi, [esi + 0x380]
push 0x426410
mov ecx, edi
call fcn.0041a190
push 0x3e8
mov ecx, edi
call fcn.0041b990
push 0x10000
mov ecx, edi
call fcn.0041b9a0
lea ebp, [esi + 0x105]
push ebp
push 0x42640c
push ebx
call fcn.00419390
add esp, 0xc
mov ecx, edi
push 2
push ebp
call fcn.0041ab00
test eax, eax
je 0x4109aa
push 0
push ebp
mov ecx, edi
call fcn.0041a1e0
test eax, eax
je 0x4109a3
mov eax, dword [esp + 0x10]
mov dword [0x426fe4], 0x16
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 0x80004005
jmp 0x4109cb
mov ecx, edi
call fcn.0041a5e0
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x4f8], 1
push ecx
mov dword [0x426fe4], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
mov ecx, dword [esp + 0x224]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x220
ret 4