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

Disassembly:
push 0x4c
mov eax, 0x4dcebd
call fcn.004a941b
and dword [ebp - 4], 0
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ebx, ebx
inc ebx
cmp eax, ebx
je 0x42d706
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
je 0x42d49d
cmp eax, 2
je 0x42d49d
xor bl, bl
jmp 0x42d706
push ebx
call fcn.004a1849
mov dword [ebp - 0x44], eax
push ecx
lea edx, [ebp - 0x44]
mov ecx, esp
mov byte [ebp - 4], bl
call fcn.00424a40
lea ecx, [ebp + 8]
call fcn.0042894a
pop ecx
pop ecx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
call fcn.00401630
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x42d706
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 0x5c
je 0x42d4ef
cmp eax, 0x2f
jne 0x42d4fb
lea eax, [ecx - 1]
push eax
lea ecx, [ebp + 8]
call fcn.00402b20
xor eax, eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
push ebx
sub esp, 0x14
mov ecx, esp
mov byte [ebp - 4], 2
call fcn.0042890c
lea edx, [ebp + 8]
lea ecx, [ebp - 0x50]
call fcn.0042e103
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x4c]
add esp, 0x18
cmp esi, edi
je 0x42d58c
mov dword [ebp - 0x54], 0x18
cmp esi, edi
je 0x42d593
push ebx
call fcn.004a1849
pop ecx
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x44]
push eax
mov edx, esi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.00426b50
pop ecx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 2
call fcn.00401630
cmp dword [ebp - 0x30], 0
je 0x42d584
mov edx, esi
lea ecx, [ebp - 0x40]
call fcn.00426b90
test al, al
jne 0x42d584
lea ecx, [ebp - 0x40]
call fcn.00403170
push 0x18
pop eax
add esi, eax
jmp 0x42d534
lea ecx, [ebp - 0x40]
call fcn.00403170
xor bl, bl
jmp 0x42d6fe
push dword [ebp - 0x50]
lea ecx, [ebp - 0x28]
call fcn.004014c0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
mov eax, ecx
sub eax, esi
push 0x18
cdq
pop edi
idiv edi
mov dword [ebp - 0x58], ebx
cmp eax, ebx
jbe 0x42d5f2
push 0x4edd10
lea ecx, [ebp - 0x28]
add esi, edi
call fcn.00404dc0
push 0xffffffffffffffff
push 0
push esi
mov ecx, eax
call fcn.00402a00
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
push 0x18
pop eax
add edi, eax
mov eax, ecx
sub eax, esi
cdq
idiv dword [ebp - 0x54]
inc ebx
cmp ebx, eax
jb 0x42d5b9
xor ebx, ebx
push 0x18
inc ebx
pop edi
mov eax, ecx
sub eax, esi
cdq
idiv edi
or dword [ebp - 0x58], 0xffffffff
mov edi, eax
dec edi
js 0x42d66a
mov eax, edi
imul eax, eax, 0x18
mov dword [ebp - 0x44], eax
xor ecx, ecx
test edi, edi
setne cl
add ecx, dword [eax + esi + 0x10]
mov eax, dword [ebp - 0x18]
push ecx
sub eax, ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.00402b60
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, ebx
je 0x42d6e7
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
cmp eax, 2
je 0x42d656
call esi
cmp eax, 3
jne 0x42d6e7
mov eax, dword [ebp - 0x44]
mov esi, dword [ebp - 0x50]
push 0x18
pop ecx
sub eax, ecx
dec edi
mov dword [ebp - 0x44], eax
jns 0x42d60a
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x58]
xor edi, edi
test eax, eax
cmovg edi, eax
sub ecx, esi
mov eax, ecx
push 0x18
cdq
pop ecx
idiv ecx
cmp edi, eax
jge 0x42d6f6
mov ecx, edi
imul ecx, ecx, 0x18
mov dword [ebp - 0x44], ecx
test edi, edi
jle 0x42d6a1
push 0x4edd10
lea ecx, [ebp - 0x28]
call fcn.00404dc0
mov esi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x44]
push 0xffffffffffffffff
lea eax, [ecx + esi]
push 0
push eax
lea ecx, [ebp - 0x28]
call fcn.00402a00
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, ebx
jne 0x42d6f4
mov ecx, dword [ebp - 0x44]
mov esi, dword [ebp - 0x50]
push 0x18
pop eax
add ecx, eax
mov eax, dword [ebp - 0x4c]
sub eax, esi
cdq
idiv dword [ebp - 0x54]
inc edi
mov dword [ebp - 0x44], ecx
cmp edi, eax
jl 0x42d68a
jmp 0x42d6f6
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
mov eax, edi
jmp 0x42d66d
xor bl, bl
lea ecx, [ebp - 0x28]
call fcn.00403170
lea ecx, [ebp - 0x50]
call fcn.00401500
lea ecx, [ebp + 8]
call fcn.00403170
mov al, bl
call fcn.004a93ca
ret