Function at 0x401af9
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x43ab27
call fcn.0041ab0c
sub esp, 0x29c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
cmp edi, ebx
je 0x401b29
push ebx
push 0x3e9
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
cmp byte [0x457ce4], bl
je 0x401b6e
cmp edi, ebx
je 0x402249
push edi
call fcn.00401a8b
test al, al
pop ecx
jne 0x401b6e
mov eax, dword [0x457dd0]
cmp eax, ebx
je 0x401b5a
push str.Password_is_incorrect._n
push eax
call fcn.0041ace4
pop ecx
pop ecx
push ebx
push edi
call dword [sym.imp.USER32.dll_EndDialog]
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
jmp 0x402249
lea ecx, [ebp - 0x28]
call fcn.00403b60
mov esi, 0x457c2c
mov dword [ebp - 4], ebx
mov ecx, esi
call fcn.00402930
test eax, eax
je 0x401ce2
mov ecx, esi
call fcn.00403140
push eax
lea ecx, [ebp - 0x28]
call fcn.00403830
mov esi, str._temp_
lea ecx, [ebp - 0x28]
push esi
call fcn.00404320
test al, al
je 0x401bee
lea ecx, [ebp - 0x138]
call fcn.00402800
lea eax, [ebp - 0x138]
mov byte [ebp - 4], 1
push eax
call fcn.004059e0
pop ecx
lea ecx, [ebp - 0x138]
call fcn.00403140
push eax
push esi
lea ecx, [ebp - 0x28]
call fcn.00403ec0
lea ecx, [ebp - 0x138]
mov byte [ebp - 4], bl
call fcn.004028c0
push 0x2f
push 0x5c
lea ecx, [ebp - 0x28]
call fcn.00403620
push 0x447408
push 0x447404
lea ecx, [ebp - 0x28]
call fcn.00403dc0
push 0x5c
push 0x2f
lea ecx, [ebp - 0x28]
call fcn.00403620
cmp dword [0x457dd0], ebx
je 0x401c3c
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
push str.unzipDir____s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
push ebx
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
call fcn.00407480
pop ecx
cmp al, bl
pop ecx
jne 0x401de7
cmp dword [0x457dd0], ebx
je 0x401c79
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
push str.failed_to_ensure_dir_exists:___s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
lea ecx, [ebp - 0xdc]
call fcn.00402800
push str.Failed_to_ensure_dir_exists:
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 2
call fcn.00403110
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
lea ecx, [ebp - 0xdc]
call fcn.00403110
push ebx
push 0x4473a0
lea ecx, [ebp - 0xdc]
call fcn.00402b10
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push ebx
push edi
call dword [sym.imp.USER32.dll_EndDialog]
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov byte [ebp - 4], bl
lea ecx, [ebp - 0xdc]
jmp 0x401ec9
lea eax, [ebp - 0x28]
push eax
push 0x44739c
call fcn.00406b40
pop ecx
pop ecx
push 0x2e
lea ecx, [ebp - 0x28]
call fcn.00403800
test al, al
je 0x401d1d
lea ecx, [ebp - 0x28]
call fcn.00404200
cmp al, 0x2e
push 1
lea ecx, [ebp - 0x28]
je 0x401d18
call fcn.00404280
jmp 0x401d00
call fcn.00404280
cmp dword [0x457dd0], ebx
je 0x401d41
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
push str.temp_unzipDir____s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
push ebx
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
call fcn.00407480
pop ecx
cmp al, bl
pop ecx
jne 0x401de7
cmp dword [0x457dd0], ebx
je 0x401d7e
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
push str.failed_to_ensure_dir_exists:___s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
lea ecx, [ebp - 0xdc]
call fcn.00402800
push str.Failed_to_ensure_dir_exists:
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 3
call fcn.00403110
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
lea ecx, [ebp - 0xdc]
call fcn.00403110
push ebx
push 0x4473a0
lea ecx, [ebp - 0xdc]
call fcn.00402b10
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push ebx
push edi
call dword [sym.imp.USER32.dll_EndDialog]
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov byte [ebp - 4], bl
lea ecx, [ebp - 0xdc]
jmp 0x401ec9
lea ecx, [ebp - 0x28]
call fcn.00403540
test eax, eax
je 0x401ee1
lea ecx, [ebp - 0x138]
call fcn.00402800
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 4
call fcn.004070f0
push eax
lea ecx, [ebp - 0x138]
call fcn.00403110
lea eax, [ebp - 0x138]
push eax
call fcn.00406370
movzx eax, al
cmp eax, ebx
pop ecx
jne 0x401ed3
cmp dword [0x457dd0], ebx
je 0x401e56
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
push str.failed_to_set_current_dir:___s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
lea ecx, [ebp - 0xdc]
call fcn.00402800
push str.Failed_to_set_current_dir:
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 5
call fcn.00403110
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
lea ecx, [ebp - 0xdc]
call fcn.00403110
push ebx
push 0x4473a0
lea ecx, [ebp - 0xdc]
call fcn.00402b10
push eax
push edi
call dword [sym.imp.USER32.dll_MessageBoxW]
push ebx
push edi
call dword [sym.imp.USER32.dll_EndDialog]
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
lea ecx, [ebp - 0xdc]
mov byte [ebp - 4], 4
call fcn.004028c0
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x138]
call fcn.004028c0
jmp 0x40223d
lea ecx, [ebp - 0x138]
mov byte [ebp - 4], bl
call fcn.004028c0
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
push edi
call fcn.00401a40
pop ecx
test al, al
pop ecx
je 0x40223d
mov eax, dword [0x457df4]
cmp eax, ebx
je 0x401f34
push str.Finished_unzipping.
push 0x3f8
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0x3f0
push dword [0x457df4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push ebx
push 0x64
push 0x402
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, 0x457b74
mov ecx, esi
call fcn.00402930
test eax, eax
je 0x40223d
cmp dword [0x457dd0], ebx
je 0x401f6b
mov ecx, esi
call fcn.00403140
push eax
push str.setup_filename:___s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
lea ecx, [ebp - 0x44]
call fcn.00403b60
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.00403140
push eax
lea ecx, [ebp - 0x44]
call fcn.00403830
mov esi, 0x457bd0
xor edi, edi
mov ecx, esi
call fcn.00402930
test eax, eax
je 0x401fba
mov ecx, esi
call fcn.00403140
mov edi, eax
mov eax, dword [0x457dd0]
cmp eax, ebx
je 0x401fba
push edi
push str.setup_params:___s__n
push eax
call fcn.0041ace4
add esp, 0xc
push 0x2f
push 0x5c
lea ecx, [ebp - 0x44]
call fcn.00403620
push 0x447408
push 0x447404
lea ecx, [ebp - 0x44]
call fcn.00403dc0
push 0x5c
push 0x2f
lea ecx, [ebp - 0x44]
call fcn.00403620
cmp dword [0x457dd0], ebx
je 0x402024
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
push str.working_dir:___s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
lea ecx, [ebp - 0x44]
call fcn.004070f0
push eax
push str.running_exe:___s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
lea ecx, [ebp - 0x2a8]
call fcn.00402800
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 7
call fcn.00402800
lea ecx, [ebp - 0x1f0]
mov byte [ebp - 4], 8
call fcn.00402800
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 9
call fcn.004070f0
push eax
lea ecx, [ebp - 0x2a8]
call fcn.00403110
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
lea ecx, [ebp - 0x24c]
call fcn.00403110
push edi
lea ecx, [ebp - 0x1f0]
call fcn.00403110
push 0x3c
lea eax, [ebp - 0x80]
pop esi
push esi
push ebx
push eax
call fcn.0041a6e0
add esp, 0xc
lea ecx, [ebp - 0x2a8]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x7c], 0x40
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
call fcn.00402b10
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x70], eax
call fcn.00402b10
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x6c], eax
call fcn.00402b10
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x80]
push eax
mov dword [ebp - 0x64], 5
mov dword [ebp - 0x60], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
cmp eax, ebx
je 0x402150
cmp byte [0x457ce7], bl
mov eax, dword [0x457dd0]
je 0x402136
cmp eax, ebx
je 0x402106
push str.waiting_for_setup_EXE_to_complete..._n
push eax
call fcn.0041ace4
pop ecx
pop ecx
push 0xffffffffffffffff
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp + 8]
mov dword [ebp + 8], ebx
push eax
push dword [ebp - 0x48]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x402205
mov eax, dword [ebp + 8]
mov dword [0x457dd8], eax
jmp 0x402205
cmp eax, ebx
je 0x402205
push str.NOT_waiting_for_setup_EXE_to_complete..._n
push eax
call fcn.0041ace4
pop ecx
pop ecx
jmp 0x402205
cmp dword [0x457dd0], ebx
je 0x402174
lea ecx, [ebp - 0x44]
call fcn.004070f0
push eax
push str.failed_to_run:___s__n
push dword [0x457dd0]
call fcn.0041ace4
add esp, 0xc
lea ecx, [ebp - 0x194]
call fcn.00402800
push str.Failed_to_run
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 0xa
call fcn.00403110
lea ecx, [ebp - 0x44]
call fcn.004070f0
push eax
lea ecx, [ebp - 0x194]
call fcn.00403110
push str.__working_dir_
lea ecx, [ebp - 0x194]
call fcn.00403110
lea ecx, [ebp - 0x28]
call fcn.004070f0
push eax
lea ecx, [ebp - 0x194]
call fcn.00403110
push str.__check_to_see_if_this_file_is_in_the_EXE_
lea ecx, [ebp - 0x194]
call fcn.00403110
push ebx
push 0x4473a0
lea ecx, [ebp - 0x194]
call fcn.00402b10
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [ebp - 0x194]
mov byte [ebp - 4], 9
call fcn.004028c0
lea ecx, [ebp - 0x1f0]
mov byte [ebp - 4], 8
call fcn.004028c0
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 7
call fcn.004028c0
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 6
call fcn.004028c0
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], bl
call fcn.00403bd0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00403bd0
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret