Function at 0x4015f0
Capabilities:
Create directory
Create process on windows
Set current directory

Disassembly:
mov eax, 0x442205
call fcn.00439938
sub esp, 0xbc
push ebx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00416690
xor ebx, ebx
mov ecx, 0x45e5ec
mov dword [ebp - 4], ebx
call fcn.004160c0
test eax, eax
je 0x401709
push 0x45e5ec
lea ecx, [ebp - 0x2c]
call fcn.00416dd0
mov esi, str._temp_
lea ecx, [ebp - 0x2c]
push esi
call fcn.00416f60
test al, al
je 0x40167f
lea ecx, [ebp - 0xc8]
call fcn.00419470
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 1
push eax
call fcn.00417a90
pop ecx
lea ecx, [ebp - 0xc8]
call fcn.00419d50
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00416b00
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], bl
call fcn.00419530
mov esi, str._programfiles_
lea ecx, [ebp - 0x2c]
push esi
call fcn.00416f60
test al, al
je 0x4016e9
lea ecx, [ebp - 0x50]
call fcn.00416690
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 2
call fcn.0041a530
lea eax, [ebp - 0x50]
push ebx
push eax
push str.ProgramFilesDir
push str.Software_Microsoft_Windows_CurrentVersion
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 3
call fcn.0041a860
lea ecx, [ebp - 0x50]
call fcn.00406c10
push eax
push esi
lea ecx, [ebp - 0x2c]
call fcn.00416b00
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 2
call fcn.0041a560
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], bl
call fcn.00416820
push 0x2f
push 0x5c
lea ecx, [ebp - 0x2c]
call fcn.00416190
push 0x450190
push 0x45018c
lea ecx, [ebp - 0x2c]
call fcn.00416a00
jmp 0x401744
lea eax, [ebp - 0x2c]
push eax
push 0x450188
call fcn.00418c80
pop ecx
pop ecx
push 0x2e
lea ecx, [ebp - 0x2c]
call fcn.00416330
test al, al
je 0x401744
lea ecx, [ebp - 0x2c]
call fcn.00416ed0
cmp al, 0x2e
push 1
lea ecx, [ebp - 0x2c]
je 0x40173f
call fcn.00416f00
jmp 0x401727
call fcn.00416f00
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00406c10
push eax
call fcn.0041a1d0
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.004160c0
test eax, eax
je 0x401854
lea ecx, [ebp - 0x2c]
call fcn.00406c10
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp eax, ebx
jne 0x4017bb
lea ecx, [ebp - 0xc8]
call fcn.00419470
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call fcn.00406c10
push eax
lea ecx, [ebp - 0xc8]
call fcn.004196e0
lea eax, [ebp - 0xc8]
push eax
call fcn.00418240
pop ecx
mov byte [ebp - 0xd], al
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], bl
call fcn.00419530
jmp 0x4017bf
mov byte [ebp - 0xd], 1
cmp byte [ebp - 0xd], bl
jne 0x401854
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00406c10
push eax
call fcn.0041a1d0
pop ecx
pop ecx
push ebx
lea ecx, [ebp - 0x2c]
call fcn.00406c10
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
cmp eax, ebx
jne 0x401854
lea ecx, [ebp - 0xc8]
call fcn.00419470
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 5
call fcn.00406c10
push eax
lea ecx, [ebp - 0xc8]
call fcn.00419680
lea eax, [ebp - 0xc8]
push ebx
push eax
call fcn.00418190
pop ecx
cmp al, bl
pop ecx
jne 0x401846
lea ecx, [ebp - 0x2c]
call fcn.00406c10
push eax
lea ecx, [ebp - 0xc8]
call fcn.004196e0
lea eax, [ebp - 0xc8]
push ebx
push eax
call fcn.00418190
pop ecx
pop ecx
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], bl
call fcn.00419530
lea ecx, [ebp - 0x2c]
call fcn.00406c10
push eax
push dword [ebp + 8]
call fcn.00401964
pop ecx
test al, al
pop ecx
je 0x40194a
mov esi, 0x45e5b4
mov ecx, esi
call fcn.004160c0
test eax, eax
je 0x40194a
push edi
lea ecx, [ebp - 0x50]
call fcn.00416690
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.00406c10
push eax
lea ecx, [ebp - 0x50]
call fcn.00416360
mov esi, 0x45e5d0
xor edi, edi
mov ecx, esi
call fcn.004160c0
test eax, eax
je 0x4018bb
mov ecx, esi
call fcn.00406c10
mov edi, eax
push 1
lea ecx, [ebp - 0x2c]
call fcn.00406c10
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.00406c10
push eax
push str.open
push dword [ebp + 8]
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 0x20
pop edi
jg 0x40193f
lea ecx, [ebp - 0x6c]
call fcn.00416690
push str.Failed_to_run
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 7
call fcn.00416360
lea ecx, [ebp - 0x50]
call fcn.00406c10
push eax
lea ecx, [ebp - 0x6c]
call fcn.00416360
push str.__check_to_see_if_this_file_is_in_the_Zip_
lea ecx, [ebp - 0x6c]
call fcn.00416360
push ebx
push str.Error
lea ecx, [ebp - 0x6c]
call fcn.00406c10
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 6
call fcn.00416820
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], bl
call fcn.00416820
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00416820
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret