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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x44b018]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, 0xe
mov dword [ebp - 0x3c], 0
mov ecx, esi
mov dword [ebp - 0x38], 0xf
cmp dword [0x44c1f4], ecx
mov eax, 0x44c1e4
mov byte [ebp - 0x4c], 0
cmovb ecx, dword [0x44c1f4]
cmp dword [0x44c1f8], 0x10
push ecx
cmovae eax, dword [0x44c1e4]
lea ecx, [ebp - 0x4c]
push eax
call fcn.00416360
lea eax, [ebp - 0x4c]
push eax
push ecx
lea ecx, [ebp - 0x64]
call fcn.00405b90
add esp, 4
lea ecx, [ebp - 0x34]
mov edx, eax
call fcn.00416970
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x40fafd
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x40fb0f
mov bl, 1
jmp 0x40fb17
shr bl, 4
not bl
and bl, 1
mov edx, dword [ebp - 0x20]
cmp edx, 0x10
jb 0x40fb4b
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fb41
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410207
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp edx, 0x10
jb 0x40fb91
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fb87
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410207
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
cmp edx, 0x10
jb 0x40fbd7
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fbcd
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410207
push edx
push ecx
call fcn.00418e03
add esp, 8
test bl, bl
je 0x40fd0b
mov ecx, esi
mov dword [ebp - 0x3c], 0
cmp dword [0x44c1f4], ecx
mov eax, 0x44c1e4
mov dword [ebp - 0x38], 0xf
cmovb ecx, dword [0x44c1f4]
cmp dword [0x44c1f8], 0x10
push ecx
cmovae eax, dword [0x44c1e4]
lea ecx, [ebp - 0x4c]
push eax
mov byte [ebp - 0x4c], 0
call fcn.00416360
lea eax, [ebp - 0x4c]
push eax
push ecx
lea ecx, [ebp - 0x34]
call fcn.00405b90
add esp, 4
lea ecx, [ebp - 0x64]
mov edx, eax
call fcn.00416970
add esp, 4
cmp dword [eax + 0x14], 0x10
jb 0x40fc42
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edx, dword [ebp - 0x50]
cmp edx, 0x10
jb 0x40fc7f
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fc75
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41020c
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
cmp edx, 0x10
jb 0x40fcc5
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fcbb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41020c
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp edx, 0x10
jb 0x40fd0b
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fd01
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41020c
push edx
push ecx
call fcn.00418e03
add esp, 8
cmp dword [0x44c1f4], esi
lea ecx, [ebp - 0x34]
mov eax, 0x44c1e4
mov dword [ebp - 0x24], 0
cmovb esi, dword [0x44c1f4]
cmp dword [0x44c1f8], 0x10
push esi
cmovae eax, dword [0x44c1e4]
push eax
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
call fcn.00416360
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.004157d0
lea ecx, [ebp - 0xdc]
call fcn.004054f0
add esp, 0x18
push eax
sub esp, 0x1c
mov ecx, esp
push 0x44c304
call fcn.004157d0
lea ecx, [ebp - 0xc4]
call fcn.00403500
add esp, 0x1c
push eax
lea eax, [ebp - 0x34]
push eax
push ecx
lea ecx, [ebp - 0xac]
call fcn.00405b90
add esp, 4
lea ecx, [ebp - 0x94]
mov edx, eax
call fcn.00416970
add esp, 4
lea ecx, [ebp - 0x7c]
mov edx, eax
call fcn.00416970
add esp, 4
lea ecx, [ebp - 0x64]
mov edx, eax
call fcn.00416970
add esp, 4
mov ecx, eax
push 0x448228
call fcn.004156a0
sub esp, 0x18
mov ecx, esp
movups xmm0, xmmword [eax]
push 0x44bb6c
movups xmmword [ebp - 0x4c], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x3c], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.004157d0
lea ecx, [ebp - 0xf4]
call fcn.00403500
push eax
lea edx, [ebp - 0x4c]
lea ecx, [ebp - 0x1c]
call fcn.00416970
mov edx, dword [ebp - 0x38]
add esp, 0x1c
cmp edx, 0x10
jb 0x40fe4a
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fe40
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp edx, 0x10
jb 0x40fe90
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fe86
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
cmp edx, 0x10
jb 0x40fed6
mov ecx, dword [ebp - 0x7c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40fecc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
cmp edx, 0x10
jb 0x40ff1f
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ff15
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
cmp edx, 0x10
jb 0x40ff71
mov ecx, dword [ebp - 0xac]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ff67
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
cmp edx, 0x10
jb 0x40ffc0
mov ecx, dword [ebp - 0x34]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40ffb6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0xf
mov byte [ebp - 0x34], 0
cmp edx, 0x10
jb 0x41000c
mov ecx, dword [ebp - 0xc4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x410002
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0xf
mov byte [ebp - 0xc4], 0
cmp edx, 0x10
jb 0x410061
mov ecx, dword [ebp - 0xdc]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x410057
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp - 0xe0]
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0xf
mov byte [ebp - 0xdc], 0
cmp edx, 0x10
jb 0x4100b6
mov ecx, dword [ebp - 0xf4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4100ac
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410211
push edx
push ecx
call fcn.00418e03
add esp, 8
cmp dword [ebp - 8], 0x10
lea eax, [ebp - 0x1c]
push 0x448220
cmovae eax, dword [ebp - 0x1c]
push eax
call fcn.0041d6d4
add esp, 8
test eax, eax
je 0x4100f6
push eax
call fcn.0041daaa
sub esp, 0x14
lea eax, [ebp - 0x1c]
mov ecx, esp
push eax
call fcn.004157d0
call fcn.00405420
add esp, 0x18
cmp eax, 0x4e20
jg 0x410157
sub esp, 0x18
lea eax, [ebp - 0x1c]
mov ecx, esp
push eax
call fcn.004157d0
sub esp, 0x18
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.004157d0
call fcn.004088a0
cmp dword [ebp - 8], 0x10
lea eax, [ebp - 0x1c]
push 0x448220
cmovae eax, dword [ebp - 0x1c]
push eax
call fcn.0041d6d4
add esp, 0x38
test eax, eax
je 0x410185
push eax
call fcn.0041daaa
sub esp, 0x14
lea eax, [ebp - 0x1c]
mov ecx, esp
push eax
call fcn.004157d0
call fcn.00405420
add esp, 0x18
cmp eax, 0x4e20
jle 0x410185
sub esp, 0x18
mov esi, esp
sub esp, 0x18
mov ecx, esp
push 0x44bb84
call fcn.004157d0
mov ecx, esi
call fcn.00403500
lea eax, [ebp - 0x1c]
mov ecx, esp
push eax
call fcn.004157d0
call fcn.00404590
add esp, 0x30
mov edx, dword [ebp - 8]
cmp edx, 0x10
jb 0x4101b5
mov ecx, dword [ebp - 0x1c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4101ab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410216
push edx
push ecx
call fcn.00418e03
add esp, 8
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x1c], 0
cmp edx, 0x10
jb 0x4101f7
mov ecx, dword [ebp + 8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4101ed
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x410216
push edx
push ecx
call fcn.00418e03
add esp, 8
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0041878c
mov esp, ebp
pop ebp
ret
call fcn.0042140f
call fcn.0042140f
call fcn.0042140f
call fcn.0042140f
int3