Function at 0x429180
Capabilities:
Check if file exists
Create directory
Delete file
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x450f20
mov eax, dword fs:[0]
push eax
sub esp, 0xafc
mov eax, dword [0x4656fc]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [ebp + 0x14], 0
je 0x4291ba
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
mov dword [ebp - 0x18], 0
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x228], 0
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.00425410
mov dword [ebp - 0xaf4], eax
lea edx, [ebp - 0x244]
push edx
push 0xc
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xaf4]
push ecx
mov edx, dword [ebp - 0xaf4]
mov eax, dword [edx]
mov ecx, dword [eax + 0x1c]
call ecx
mov edx, dword [ebp - 0x23c]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x238]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.00425410
mov dword [ebp - 0xaf8], eax
lea ecx, [ebp - 0x244]
push ecx
push 3
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0xaf8]
push eax
mov ecx, dword [ebp - 0xaf8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
call eax
movzx ecx, word [ebp - 0x244]
test ecx, ecx
jne 0x42925b
mov eax, 1
jmp 0x429a5e
mov edx, dword [ebp - 0x23c]
push edx
push 0x104
lea eax, [ebp - 0x224]
push eax
call fcn.0043af94
add esp, 0xc
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 0
je 0x4292e7
push 0x454944
lea edx, [ebp - 0x224]
push edx
call fcn.00429a80
add esp, 8
test eax, eax
je 0x4292c3
lea eax, [ebp - 0x224]
push eax
call fcn.0043a92b
add esp, 4
lea ecx, [eax + eax - 6]
push ecx
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x224]
push eax
call fcn.0043b2d0
add esp, 0xc
jmp 0x4292e5
push 0x454950
lea ecx, [ebp - 0x224]
push ecx
call fcn.00429a80
add esp, 8
test eax, eax
je 0x4292e5
mov eax, 1
jmp 0x429a5e
jmp 0x42934d
push str.x86_
lea edx, [ebp - 0x224]
push edx
call fcn.00429a80
add esp, 8
test eax, eax
je 0x42932b
lea eax, [ebp - 0x224]
push eax
call fcn.0043a92b
add esp, 4
lea ecx, [eax + eax - 6]
push ecx
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x224]
push eax
call fcn.0043b2d0
add esp, 0xc
jmp 0x42934d
push str.x64_
lea ecx, [ebp - 0x224]
push ecx
call fcn.00429a80
add esp, 8
test eax, eax
je 0x42934d
mov eax, 1
jmp 0x429a5e
push 0x104
lea edx, [ebp - 0x44c]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
call fcn.00427ed0
movzx ecx, al
test ecx, ecx
jne 0x429375
mov eax, 1
jmp 0x429a5e
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.00425410
mov dword [ebp - 0xafc], eax
lea edx, [ebp - 0x244]
push edx
push 9
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xafc]
push ecx
mov edx, dword [ebp - 0xafc]
mov eax, dword [edx]
mov ecx, dword [eax + 0x1c]
call ecx
movzx edx, word [ebp - 0x244]
test edx, edx
jne 0x4293bc
mov eax, 1
jmp 0x429a5e
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x228], eax
mov ecx, dword [ebp - 0x23c]
and ecx, 0x10
je 0x42947b
push 0x454974
lea edx, [ebp - 0x224]
push edx
call fcn.0043af5d
add esp, 8
test eax, eax
je 0x429407
push 0x45497c
lea eax, [ebp - 0x224]
push eax
call fcn.0043af5d
add esp, 8
test eax, eax
jne 0x429411
mov eax, 1
jmp 0x429a5e
lea ecx, [ebp - 0x224]
push ecx
lea edx, [ebp - 0x44c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push 0
lea eax, [ebp - 0x44c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x429474
lea ecx, [ebp - 0x224]
push ecx
lea ecx, [ebp - 0xa98]
call fcn.00408170
mov dword [ebp - 4], 0
lea edx, [ebp - 0xa98]
push edx
mov ecx, 0x467334
call fcn.00429ce0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa98]
call fcn.00405000
xor eax, eax
jmp 0x429a5e
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0x224]
push edx
lea ecx, [ebp - 0xab4]
call fcn.00408170
mov dword [ebp - 4], 1
lea eax, [ebp - 0xab4]
push eax
mov ecx, 0x467334
call fcn.00429ce0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xab4]
call fcn.00405000
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov dword [ebp - 0x230], eax
cmp dword [ebp - 0x230], 0
je 0x429631
mov ecx, dword [ebp + 8]
add ecx, 0xc
call fcn.00425410
mov dword [ebp - 0xb00], eax
lea edx, [ebp - 0x244]
push edx
push 0x13
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 0xb00]
push ecx
mov edx, dword [ebp - 0xb00]
mov eax, dword [edx]
mov ecx, dword [eax + 0x1c]
call ecx
lea edx, [ebp - 0x44c]
push edx
call fcn.00425420
add esp, 4
cmp eax, dword [ebp - 0x23c]
jne 0x42953e
mov eax, 1
jmp 0x429a5e
lea eax, [ebp - 0x44c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x450], eax
cmp dword [ebp - 0x450], 0
jne 0x429631
push 0
lea ecx, [ebp - 0x44c]
push ecx
push 0x454984
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
mov dword [ebp - 0x660], 1
jmp 0x429597
mov eax, dword [ebp - 0x660]
add eax, 1
mov dword [ebp - 0x660], eax
cmp dword [ebp - 0x660], 0x64
jge 0x429631
lea ecx, [ebp - 0x65c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4295ed
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x4295c8
jmp 0x429631
mov eax, dword [ebp - 0x660]
push eax
lea ecx, [ebp - 0x44c]
push ecx
push str._ws.del_d
lea edx, [ebp - 0x65c]
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
jmp 0x429588
lea eax, [ebp - 0x65c]
push eax
lea ecx, [ebp - 0x44c]
push ecx
call fcn.0043b295
add esp, 8
xor edx, edx
test eax, eax
setle dl
mov dword [ebp - 0x230], edx
cmp dword [ebp - 0x230], 0
jne 0x42962a
push 4
push 0
lea eax, [ebp - 0x65c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x429631
push 0
push 0x80
push 2
push 0
push 1
push 0xc0000000
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x429677
cmp dword [ebp - 0x230], 0
jne 0x429677
mov eax, 1
jmp 0x429a5e
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x42994d
cmp dword [ebp - 0x230], 0
je 0x42994d
push 0x104
lea edx, [ebp - 0xa7c]
push edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
call fcn.00427ed0
movzx ecx, al
test ecx, ecx
jne 0x4296b9
mov eax, 1
jmp 0x429a5e
push 0x4549ac
lea edx, [ebp - 0xa7c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x224]
push eax
lea ecx, [ebp - 0xa7c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea edx, [ebp - 0xa7c]
push edx
call fcn.004290f0
add esp, 4
test eax, eax
jne 0x4296fc
mov eax, 1
jmp 0x429a5e
push 0x4549b4
lea ecx, [ebp - 0xad0]
call fcn.00408170
mov dword [ebp - 4], 2
lea eax, [ebp - 0xad0]
push eax
mov ecx, 0x467334
call fcn.00429ce0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xad0]
call fcn.00405000
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
lea ecx, [ebp - 0xa7c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0xffffffff
jne 0x42976e
mov eax, 1
jmp 0x429a5e
mov edx, dword [ebp - 0x228]
push edx
lea eax, [ebp - 0xa7c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0x20
call fcn.0043ad96
add esp, 4
mov dword [ebp - 0xad8], eax
mov dword [ebp - 4], 3
cmp dword [ebp - 0xad8], 0
je 0x4297b5
mov ecx, dword [ebp - 0xad8]
call fcn.00429aa0
mov dword [ebp - 0xb04], eax
jmp 0x4297bf
mov dword [ebp - 0xb04], 0
mov ecx, dword [ebp - 0xb04]
mov dword [ebp - 0xad4], ecx
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0xad4]
push edx
lea ecx, [ebp - 0x664]
call fcn.00435700
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x664]
call fcn.00429d60
movzx eax, al
test eax, eax
je 0x429831
mov ecx, dword [ebp - 0x22c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xadc], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x664]
call fcn.004253f0
mov eax, dword [ebp - 0xadc]
jmp 0x429a5e
mov edx, dword [ebp - 0x228]
push edx
lea ecx, [ebp - 0x664]
call fcn.00425410
mov ecx, eax
call fcn.0042b000
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x664]
call fcn.00425410
mov ecx, eax
call fcn.0042afe0
lea edx, [ebp - 0x44c]
push edx
lea eax, [ebp - 0x874]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea ecx, [ebp - 0x874]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
mov dword [ebp - 0x668], eax
xor edx, edx
mov eax, dword [ebp - 0x668]
mov word [eax], dx
lea ecx, [ebp - 0x874]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4298b8
push 1
push 0
lea edx, [ebp - 0x874]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 1
lea eax, [ebp - 0x874]
push eax
lea ecx, [ebp - 0x44c]
push ecx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
push 4
push 0
lea edx, [ebp - 0x874]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov eax, dword [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x664]
call fcn.00425410
push eax
call fcn.0042aed0
lea ecx, [ebp - 0x44c]
push ecx
lea edx, [ebp - 0xa7c]
push edx
lea ecx, [ebp - 0x664]
call fcn.00425410
push eax
call fcn.0042aef0
lea ecx, [ebp - 0x664]
call fcn.00434aa0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov dword [ebp - 0xae0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x664]
call fcn.004253f0
mov eax, dword [ebp - 0xae0]
jmp 0x429a5e
push 0x20
call fcn.0043ad96
add esp, 4
mov dword [ebp - 0xae8], eax
mov dword [ebp - 4], 5
cmp dword [ebp - 0xae8], 0
je 0x429980
mov ecx, dword [ebp - 0xae8]
call fcn.00429aa0
mov dword [ebp - 0xb08], eax
jmp 0x42998a
mov dword [ebp - 0xb08], 0
mov edx, dword [ebp - 0xb08]
mov dword [ebp - 0xae4], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xae4]
push eax
lea ecx, [ebp - 0x10]
call fcn.00435700
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x10]
call fcn.00429d60
movzx ecx, al
test ecx, ecx
je 0x4299f0
mov edx, dword [ebp - 0x22c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xaec], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004253f0
mov eax, dword [ebp - 0xaec]
jmp 0x429a5e
mov eax, dword [ebp - 0x228]
push eax
lea ecx, [ebp - 0x10]
call fcn.00425410
mov ecx, eax
call fcn.0042b000
mov ecx, dword [ebp - 0x14]
push ecx
mov edx, dword [ebp - 0x18]
push edx
lea ecx, [ebp - 0x10]
call fcn.00425410
mov ecx, eax
call fcn.0042afe0
mov eax, dword [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x10]
call fcn.00425410
push eax
call fcn.0042aed0
lea ecx, [ebp - 0x10]
call fcn.00434aa0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov dword [ebp - 0xaf0], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004253f0
mov eax, dword [ebp - 0xaf0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.0043a91c
mov esp, ebp
pop ebp
ret 0x10