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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x644
mov eax, dword [0x491330]
xor eax, esp
mov dword [esp + 0x640], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, str.error___
test edi, edi
cmovne eax, edi
xor ebx, ebx
push eax
push str.MakeDirectory____s_
xor eax, eax
push ebx
inc eax
push eax
push str..._npatgpc_npbase_win.cpp
push 0x486
call fcn.0042ab69
xor eax, eax
mov esi, 0x206
push esi
mov word [esp + 0x254], ax
lea eax, [esp + 0x256]
push ebx
push eax
call fcn.00447ae0
add esp, 0x24
xor eax, eax
mov word [esp + 0x30], ax
lea eax, [esp + 0x32]
push esi
push ebx
push eax
call fcn.00447ae0
add esp, 0xc
mov dword [esp + 0x10], ebx
xor eax, eax
mov word [esp + 0x440], ax
lea eax, [esp + 0x442]
push esi
push ebx
push eax
call fcn.00447ae0
add esp, 0xc
call fcn.00401ff1
test eax, eax
je 0x40b3dc
push ecx
lea ecx, [esp + 0x23c]
call fcn.0040220a
pop ecx
push edi
lea ecx, [esp + 0x1c]
call fcn.00401720
mov esi, eax
lea eax, [esp + 0x238]
push eax
call fcn.004012f1
pop ecx
push eax
push ebx
lea eax, [esp + 0x240]
mov ecx, esi
push eax
call fcn.00404813
cmp eax, 0xffffffff
lea ecx, [esp + 0x18]
push 0
sete bl
xor esi, esi
inc esi
push esi
call fcn.00401833
mov eax, dword [esp + 0x10]
test bl, bl
cmovne eax, esi
xor ebx, ebx
mov dword [esp + 0x10], eax
push edi
lea eax, [esp + 0x23c]
mov dword [esp + 0x10], ebx
push 0x104
push eax
call fcn.004438ef
add esp, 0xc
mov dword [esp + 0x14], ebx
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x23c]
push 0x47e944
push eax
call fcn.004431e6
mov esi, eax
add esp, 0xc
test esi, esi
je 0x40b56c
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [esp + 0xc]
test eax, eax
lea eax, [esp + 0x30]
jne 0x40b444
push esi
push 0x104
push eax
call fcn.004438ef
add esp, 0xc
jmp 0x40b523
push 0x104
push 0x47b858
push eax
call fcn.0042a3ef
add esp, 0xc
lea eax, [esp + 0x30]
push 0x104
push esi
push eax
call fcn.0042a3ef
add esp, 0xc
call fcn.00401ff1
test eax, eax
je 0x40b51a
xor esi, esi
mov dword [esp + 0x18], 0xc
inc esi
cmp dword [esp + 0x10], 0
mov dword [esp + 0x20], esi
je 0x40b4f2
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40b4d6
lea ecx, [esp + 0x440]
call fcn.00402419
test eax, eax
je 0x40b54c
call fcn.00402384
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x34]
push eax
call ebx
cmp dword [esp + 0x1c], 0
je 0x40b4d6
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x104
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x448]
push eax
call fcn.0042a4c1
jmp 0x40b43c
call fcn.00402384
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x34]
push eax
call ebx
cmp dword [esp + 0x1c], 0
je 0x40b523
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x40b523
push 0
lea eax, [esp + 0x34]
push eax
call ebx
lea eax, [esp + 0x14]
push eax
push 0x47e944
push 0
call fcn.004431e6
mov esi, eax
add esp, 0xc
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
test esi, esi
jne 0x40b428
jmp 0x40b56c
push edi
lea eax, [esp + 0x34]
push eax
push str.Ignore_create__s___s_
push 0
push esi
push str..._npatgpc_npbase_win.cpp
push 0x4b5
call fcn.0042ab69
add esp, 0x1c
mov ecx, dword [esp + 0x64c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00441f6f
mov esp, ebp
pop ebp
ret