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

Disassembly:
push 0x3c
mov eax, 0x435c58
call fcn.0043328e
mov edi, ecx
mov eax, dword [edi + 0x24]
xor esi, esi
cmp dword [eax + 0x38], esi
je 0x41c1bb
xorps xmm0, xmm0
mov dword [ebp - 0x38], esi
lea ecx, [ebp - 0x28]
movlpd qword [ebp - 0x40], xmm0
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x48], vtable.CPasswordDlg.0
call fcn.00401723
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], esi
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov esi, eax
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x41c14b
call fcn.0041d331
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x41c14b
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x41c183
xor ebx, ebx
push ebx
push ebx
push eax
call fcn.0041d433
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00419379
push ebx
push 0x41922d
push esi
push 0x83
push dword [0x443068]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
cmp eax, 2
je 0x41c297
mov eax, dword [ebp - 0x28]
cmp dword [eax - 0xc], 0
je 0x41c297
mov ecx, dword [edi + 0x24]
xor esi, esi
push esi
push eax
add ecx, 0x3c
call fcn.00411e4b
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x48], vtable.CPasswordDlg.0
call fcn.00401f41
cmp dword [ebp - 0x34], esi
je 0x41c1bb
push dword [ebp - 0x34]
call fcn.0041d3dd
mov eax, dword [edi + 0x24]
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], esi
mov dword [eax + 0x258], 0x416c6c
mov dword [eax + 0x25c], esi
call fcn.00401723
lea eax, [ebp - 0x18]
mov dword [ebp - 4], esi
push eax
lea ebx, [edi + 4]
push 0x3e8
mov ecx, ebx
call fcn.0041cb5f
push 0x3eb
push dword [ebx]
mov dword [edi + 0x2c], 1
mov dword [edi + 0x34], esi
call dword [sym.imp.USER32.dll_GetDlgItem]
push esi
push esi
push 0xf0
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
mov ecx, edi
mov dword [edi + 0x48], eax
mov dword [edi + 0x78], esi
call fcn.0041c04e
push dword [ebp - 0x18]
mov ecx, dword [edi + 0x24]
call fcn.004066e0
test eax, eax
jne 0x41c2ba
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x26c]
cmp eax, 0xa0000017
je 0x41c250
cmp eax, 0xa0000059
je 0x41c250
test eax, eax
jne 0x41c259
cmp dword [edi + 0x78], esi
je 0x41c323
cmp eax, 0xa0000021
mov esi, 0x43d834
mov eax, str.Bandizip_SFX
mov ecx, str.ERR_INVALID_PASSWORD
je 0x41c274
mov ecx, str.ERR_ERROR_OCCURRED
cmp dword [0x443d08], 0
cmove esi, eax
call fcn.00418bee
push 0x30
push esi
push eax
push dword [edi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
xor esi, esi
jmp 0x41c323
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x48], vtable.CPasswordDlg.0
call fcn.00401f41
cmp dword [ebp - 0x34], 0
je 0x41c337
push dword [ebp - 0x34]
call fcn.0041d3dd
jmp 0x41c337
mov eax, dword [edi + 0x4c]
cmp dword [eax - 0xc], esi
je 0x41c2e0
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 5
push dword [ebp - 0x18]
push esi
push dword [edi + 0x4c]
push 0x43d828
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp dword [edi + 0x50], esi
jne 0x41c317
cmp byte [edi + 0xe0], 0
jne 0x41c317
cmp dword [0x443d08], 0
mov eax, str.Bandizip_SFX
mov esi, 0x43d834
mov ecx, str.MSG_COMPLETED
cmove esi, eax
call fcn.00418bee
push 0x40
push esi
push eax
push dword [ebx]
jmp 0x41c28a
push esi
push esi
push 0x10
push dword [ebx]
call dword [sym.imp.USER32.dll_PostMessageW]
push 1
mov ecx, edi
call fcn.0041c04e
lea ecx, [ebp - 0x18]
mov dword [edi + 0x2c], esi
call fcn.00401f41
xor eax, eax
call fcn.00433238
ret 0x10