Function at 0x402f40
Capabilities:
Create directory
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24c
mov eax, dword [0x427330]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [0x429e1c], eax
call fcn.00404720
mov ecx, dword [ebp + 0x10]
push ecx
push 0x1f40
push 0x42a860
call fcn.004114c7
add esp, 0xc
push 0x42a860
push str.WinMain____CmdLine_s
call fcn.00408a40
add esp, 8
push str._WITHPROGRESS
push 0x42a860
call fcn.00406270
add esp, 8
test eax, eax
je 0x402fb5
mov dword [0x4321cc], 1
push str.WinMain____Dialog_mode_
call fcn.00408e70
add esp, 4
push 0x420bd0
push 0x42a860
call fcn.00406270
add esp, 8
test eax, eax
jne 0x402fe1
push 0x420bd8
push 0x42a860
call fcn.00406270
add esp, 8
test eax, eax
je 0x402ff8
mov dword [0x4321c8], 1
push str.WinMain____Silent_mode_
call fcn.00408e70
add esp, 4
xor edx, edx
mov word [ebp - 0x210], dx
push 0x206
push 0
lea eax, [ebp - 0x20e]
push eax
call fcn.00411070
add esp, 0xc
lea ecx, [ebp - 0x210]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push 0x429e38
push 0
push 0x420bf8
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
push 0x429e38
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x429e38
push str.WinMain____UniqueFolder_s
call fcn.00408a40
add esp, 8
push 0
push 0x429e38
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x403089
push 0x429e38
push str.WinMain____Error_create_directory___s__
call fcn.00408a40
add esp, 8
xor eax, eax
jmp 0x403350
push 0
push 0x429e30
call fcn.00403b10
add esp, 8
mov dword [0x429e2c], eax
mov eax, dword [0x429e30]
push eax
mov ecx, dword [0x429e2c]
push ecx
push str.WinMain____hCABRes_x_SizeCABRes_d_oct
call fcn.00408e70
add esp, 0xc
call fcn.004045c0
push 0x42a658
call fcn.00406140
add esp, 4
test eax, eax
jne 0x4030da
push 0x42a658
call fcn.00404200
add esp, 4
push 0x42a658
call fcn.00404330
add esp, 4
mov edx, dword [0x420cb4]
mov dword [ebp - 0x220], edx
mov eax, dword [0x420cb8]
mov dword [ebp - 0x21c], eax
mov ecx, dword [0x420cbc]
mov dword [ebp - 0x218], ecx
mov edx, dword [0x420cc0]
mov dword [ebp - 0x214], edx
lea eax, [ebp - 0x220]
push eax
mov ecx, dword [0x429e1c]
push ecx
call fcn.00403a80
add esp, 8
push 0
push 0x403360
push 0
push 0x84
mov edx, dword [0x429e1c]
push edx
call dword [sym.imp.USER32.dll_CreateDialogParamW]
mov dword [0x429e28], eax
mov eax, dword [0x429e28]
push eax
push str.CreateDialog_____x
call fcn.00408e70
add esp, 8
cmp dword [0x429e28], 0
je 0x4032c9
cmp dword [0x4321c8], 0
jne 0x403219
cmp dword [0x4293e0], 0
je 0x403219
mov ecx, dword [0x429e28]
push ecx
call fcn.004061b0
add esp, 4
cmp dword [0x429e2c], 0
jne 0x4031a7
cmp dword [0x4321cc], 0
je 0x4031d9
push 0xffffffffffffffec
mov edx, dword [0x429e28]
push edx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x240]
or eax, 0x40000
push eax
push 0xffffffffffffffec
mov ecx, dword [0x429e28]
push ecx
call dword [sym.imp.USER32.dll_SetWindowLongW]
jmp 0x403203
push 0x428368
mov edx, dword [0x429e28]
push edx
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0x12
push 0
push 0
push 0
push 0
push 0
mov eax, dword [0x429e28]
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0x1f4
push 1
mov ecx, dword [0x429e28]
push ecx
call fcn.00406980
add esp, 0xc
push 0
push 0
push 0
lea edx, [ebp - 0x23c]
push edx
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x403264
lea eax, [ebp - 0x23c]
push eax
mov ecx, dword [0x429e28]
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x403262
lea edx, [ebp - 0x23c]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x23c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
jmp 0x403219
cmp dword [0x429e24], 0
je 0x4032c9
mov dword [0x429e34], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x244], eax
push 0x2710
mov ecx, dword [0x429e24]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov dword [ebp - 0x248], eax
mov edx, dword [0x429e24]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x244]
push eax
mov eax, dword [ebp - 0x248]
push eax
push str.WinMain____WaitForSingleObject_x_Time_d_ms
call fcn.00408e70
add esp, 0xc
mov ecx, dword [0x429e1c]
push ecx
lea edx, [ebp - 0x220]
push edx
call dword [sym.imp.USER32.dll_UnregisterClassW]
cmp dword [0x428dac], 0
je 0x403321
push 0x429e38
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x403321
push 0x429e38
call fcn.00405500
add esp, 4
mov dword [ebp - 0x24c], eax
mov eax, dword [ebp - 0x24c]
push eax
push 0x429e38
push str.WinMain____Remove_folder__s___d_
call fcn.00408a40
add esp, 0xc
cmp dword [0x429e2c], 0
je 0x403337
mov ecx, dword [0x429e2c]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeResource]
mov edx, dword [0x427004]
push edx
push str.WinMain____End__x_
call fcn.00408e70
add esp, 8
mov eax, dword [0x427004]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00411054
mov esp, ebp
pop ebp
ret 0x10