Function at 0x409420
Capabilities:
Accept command line arguments
Check for time delay via gettickcount
Check if file exists
Get file attributes
Log keystrokes via polling
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x3fc
push 0x409400
call sub.api_ms_win_crt_runtime_l1_1_0.dll__set_new_handler
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x1a2890
je 0x409468
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x7a33
je 0x409468
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0xf4240
jne 0x409483
mov eax, dword [ebp + 0x10]
neg eax
xor eax, dword [ebp + 0x10]
and eax, 1
jne 0x409483
mov ecx, dword [ebp + 0x10]
add ecx, 0x221e
mov dword [ebp + 0x10], ecx
jmp 0x409468
mov dword [ebp - 0x1f0], 0xffffffff
mov dword [ebp - 0x1fc], 0xffffffff
mov dword [ebp - 0x20c], 0xffffffff
lea ecx, [ebp + 0x30]
call fcn.0041bc40
lea ecx, [ebp + 0x14]
call fcn.0041bc40
lea ecx, [ebp + 0x3c]
call fcn.0041bc40
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x230], eax
push str.FreeConsole
mov edx, dword [ebp - 0x230]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x234], eax
call dword [ebp - 0x234]
call fcn.00408fe0
lea eax, [ebp + 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00406190
add esp, 8
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x238]
push ecx
lea ecx, [ebp + 0x3c]
call fcn.0041bef0
lea edx, [ebp + 0x3c]
push edx
call fcn.00406740
add esp, 4
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x54], eax
push str.sfxversion
mov ecx, dword [ebp + 0x54]
push ecx
call fcn.00408520
add esp, 8
test eax, eax
je 0x409598
call fcn.00409120
mov dword [ebp - 0x30], 0
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0x23c], edx
mov eax, dword [ebp - 0x23c]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x240], ecx
mov edx, dword [ebp - 0x240]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x244], eax
mov ecx, dword [ebp - 0x244]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x30]
jmp 0x40a9b9
push 0x208
push 0x208
mov ecx, 0x4365b8
call fcn.00404ff0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x40960a
push 6
push 1
call fcn.0040d110
add esp, 8
mov dword [ebp - 0x40], 1
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x34]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x3c]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x40]
jmp 0x40a9b9
mov ecx, 0x4365b8
call fcn.004066f0
push str.sfxtest
mov edx, dword [ebp + 0x54]
push edx
call fcn.00408520
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x409673
mov dword [ebp - 0x50], 0x64
mov eax, dword [ebp + 0x3c]
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x44]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x48], edx
mov eax, dword [ebp - 0x48]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x30]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x4c]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x50]
jmp 0x40a9b9
push str.sfxcreate
mov eax, dword [ebp + 0x54]
push eax
call fcn.00408520
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x409747
mov ecx, dword [0x4365b8]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp + 0x64]
push edx
mov eax, dword [ebp - 0x54]
push eax
call fcn.00407410
add esp, 8
movzx ecx, al
test ecx, ecx
jne 0x409702
push 0xa
push 0
call fcn.0040d110
add esp, 8
mov dword [ebp - 0x64], 4
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x58]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x5c]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x60]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x64]
jmp 0x40a9b9
mov dword [ebp - 0x74], 0
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x68]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x74]
jmp 0x40a9b9
push 0x4365b8
mov ecx, 0x43655c
call fcn.0041be30
push 0x4365b8
mov ecx, 0x436568
call fcn.0041be30
push 0x4365b8
call fcn.00405170
add esp, 4
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0x60], 0
jl 0x409849
mov edx, dword [ebp + 0x60]
mov dword [0x436560], edx
mov eax, dword [0x43655c]
xor ecx, ecx
mov edx, dword [ebp + 0x60]
mov word [eax + edx*2], cx
mov eax, dword [0x4365b8]
mov dword [ebp - 0x78], eax
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp - 0x78]
lea eax, [edx + ecx*2 + 2]
push eax
mov ecx, 0x436568
call fcn.0041bef0
mov ecx, dword [0x4365b8]
mov dword [ebp - 0x7c], ecx
mov edx, dword [ebp + 0x60]
mov eax, dword [ebp - 0x7c]
lea ecx, [eax + edx*2 + 2]
push ecx
mov ecx, 0x436580
call fcn.0041bef0
push 0x2e
mov ecx, 0x436580
call fcn.0041ca00
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0x60], 0
jle 0x4097fd
mov edx, dword [ebp + 0x60]
mov dword [0x436584], edx
mov eax, dword [0x436580]
xor ecx, ecx
mov edx, dword [ebp + 0x60]
mov word [eax + edx*2], cx
push 0x436580
mov ecx, 0x436574
call fcn.0041be30
push 4
call fcn.00405320
add esp, 4
push eax
mov ecx, 0x436574
call fcn.0041c280
mov eax, dword [0x436580]
mov dword [ebp - 0x80], eax
mov ecx, dword [ebp - 0x80]
mov dword [0x436518], ecx
mov edx, dword [0x436574]
mov dword [ebp - 0x84], edx
mov eax, dword [ebp - 0x84]
mov dword [0x43651c], eax
call fcn.004056a0
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x88]
push ecx
mov ecx, 0x43658c
call fcn.0041bef0
mov edx, dword [0x4365b8]
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x8c]
push eax
mov ecx, 0x436598
call fcn.004014a0
movzx ecx, al
test ecx, ecx
jne 0x409905
mov edx, dword [0x4365b8]
mov dword [ebp - 0x90], edx
mov eax, dword [ebp - 0x90]
push eax
push 7
push 1
call fcn.0040d110
add esp, 0xc
mov dword [ebp - 0xa0], 2
mov ecx, dword [ebp + 0x3c]
mov dword [ebp - 0x94], ecx
mov edx, dword [ebp - 0x94]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x98]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x30]
mov dword [ebp - 0x9c], edx
mov eax, dword [ebp - 0x9c]
push eax
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0xa0]
jmp 0x40a9b9
lea ecx, [ebp + 4]
call fcn.0041bab0
mov ecx, 0x4365c4
call fcn.004073b0
mov ecx, dword [0x43659c]
mov dword [ebp - 0xa4], ecx
lea edx, [ebp + 4]
push edx
push 0
mov eax, dword [ebp - 0xa4]
push eax
call fcn.00406090
add esp, 0xc
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x4099b5
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp + 4]
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0xa8]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x3c]
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xac]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xb0]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x30]
mov dword [ebp - 0xb4], edx
mov eax, dword [ebp - 0xb4]
push eax
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0xb8]
jmp 0x40a9b9
push 0x432508
mov ecx, dword [ebp + 0x54]
push ecx
call fcn.00408520
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x409b26
mov edx, dword [ebp + 0x64]
movzx eax, word [edx]
cmp eax, 0x3a
jne 0x4099e7
mov ecx, dword [ebp + 0x64]
add ecx, 2
mov dword [ebp + 0x64], ecx
mov edx, dword [ebp + 0x64]
movzx eax, word [edx]
test eax, eax
je 0x409a07
mov ecx, dword [ebp + 0x64]
movzx edx, word [ecx]
cmp edx, 0x20
ja 0x409a07
mov eax, dword [ebp + 0x64]
add eax, 2
mov dword [ebp + 0x64], eax
jmp 0x4099e7
mov ecx, dword [ebp + 0x64]
movzx edx, word [ecx]
test edx, edx
je 0x409ab1
lea eax, [ebp + 4]
push eax
mov ecx, dword [ebp + 0x64]
push ecx
call fcn.00408aa0
add esp, 8
movzx edx, al
test edx, edx
jne 0x409ab1
push 0xa
push 0
call fcn.0040d110
add esp, 8
mov dword [ebp - 0xcc], 4
mov eax, dword [ebp + 4]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebp - 0xbc]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xc0]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xc4]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0xc8]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0xcc]
jmp 0x40a9b9
mov dword [ebp - 0xe0], 0
mov edx, dword [ebp + 4]
mov dword [ebp - 0xd0], edx
mov eax, dword [ebp - 0xd0]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x3c]
mov dword [ebp - 0xd4], ecx
mov edx, dword [ebp - 0xd4]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xd8], eax
mov ecx, dword [ebp - 0xd8]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x30]
mov dword [ebp - 0xdc], edx
mov eax, dword [ebp - 0xdc]
push eax
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0xe0]
jmp 0x40a9b9
mov dword [ebp + 0x2c], 0x436090
mov ecx, dword [ebp + 0x2c]
cmp dword [ecx], 0
je 0x409b7b
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx]
push eax
push str.SfxString_d
lea ecx, [ebp - 0x394]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx]
push eax
call fcn.00405320
add esp, 4
push eax
lea ecx, [ebp - 0x394]
push ecx
call fcn.00406e60
add esp, 0xc
mov edx, dword [ebp + 0x2c]
add edx, 0x10
mov dword [ebp + 0x2c], edx
jmp 0x409b2d
mov dword [ebp - 0xe4], 0x4365ac
push 0x43174c
mov ecx, dword [ebp - 0xe4]
call fcn.0041bef0
mov eax, dword [ebp + 0x54]
push eax
mov ecx, 0x4365ac
call fcn.0041c280
call fcn.00401950
mov dword [ebp + 0x54], eax
cmp dword [ebp + 0x54], 0
jne 0x409c26
mov dword [ebp - 0xf8], 0x20
mov ecx, dword [ebp + 4]
mov dword [ebp - 0xe8], ecx
mov edx, dword [ebp - 0xe8]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x3c]
mov dword [ebp - 0xec], eax
mov ecx, dword [ebp - 0xec]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0xf0], edx
mov eax, dword [ebp - 0xf0]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x30]
mov dword [ebp - 0xf4], ecx
mov edx, dword [ebp - 0xf4]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0xf8]
jmp 0x40a9b9
call fcn.00408c70
mov ecx, 0x436598
call fcn.00401500
mov dword [ebp], 0
lea eax, [ebp]
push eax
push str.SetEnvironment
call fcn.00405dd0
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x409cf4
mov ecx, dword [ebp + 0x64]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0041bbd0
push 0x3d
mov edx, dword [ebp - 0x2c]
push edx
call fcn.0041c470
add esp, 8
mov dword [ebp + 0x60], eax
cmp dword [ebp + 0x60], 0
jg 0x409c97
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0xfc]
push ecx
call fcn.0042eaf0
add esp, 4
jmp 0x409cf4
mov edx, dword [ebp + 0x60]
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
mov edx, dword [ebp + 0x60]
mov word [eax + edx*2], cx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x100], eax
push 0
mov ecx, dword [ebp + 0x60]
mov edx, dword [ebp + 0x64]
lea eax, [edx + ecx*2 + 2]
push eax
mov ecx, dword [ebp - 0x100]
push ecx
call fcn.00406e60
add esp, 0xc
mov edx, dword [ebp]
add edx, 1
mov dword [ebp], edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x104], eax
mov ecx, dword [ebp - 0x104]
push ecx
call fcn.0042eaf0
add esp, 4
jmp 0x409c3c
call fcn.00408f10
cmp dword [0x436300], 0xffffffff
jne 0x409d0c
mov dword [0x436300], 0
mov dl, byte [0x4365ab]
mov byte [ebp + 0x53], dl
movzx eax, byte [ebp + 0x53]
test eax, eax
je 0x409dff
push 0
push str.HelpText
call fcn.00405dd0
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
jne 0x409d46
push 0x18
call fcn.00405320
add esp, 4
mov dword [ebp + 0x64], eax
lea ecx, [ebp - 0x33c]
call fcn.00407250
mov dword [ebp - 0x33c], 0x432454
mov dword [ebp - 0x304], 0x7d6
push 0
mov ecx, dword [ebp + 0x64]
push ecx
mov edx, dword [0x436518]
push edx
push 0x11
lea ecx, [ebp - 0x33c]
call fcn.0040d2c0
mov dword [ebp - 0x118], 0
lea ecx, [ebp - 0x33c]
call fcn.0040aa60
mov eax, dword [ebp + 4]
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0x10c], edx
mov eax, dword [ebp - 0x10c]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x110], ecx
mov edx, dword [ebp - 0x110]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x118]
jmp 0x40a9b9
mov dl, byte [0x4365a9]
mov byte [ebp + 0x52], dl
movzx eax, byte [ebp + 0x52]
test eax, eax
je 0x409e22
mov ecx, dword [0x436300]
and ecx, 0xfffffeff
mov dword [0x436300], ecx
push 6
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0
push str.InstallPath
call fcn.00405dd0
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x409e59
mov edx, dword [ebp + 0x64]
push edx
mov ecx, 0x436550
call fcn.0041bef0
mov byte [0x436541], 1
push 0x436550
call fcn.00408a20
add esp, 4
push 0
push str.BeginPrompt
call fcn.00405dd0
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x409f3f
mov al, byte [0x4365a9]
mov byte [ebp + 0x51], al
movzx ecx, byte [ebp + 0x51]
test ecx, ecx
jne 0x409f3f
mov edx, dword [ebp + 0x64]
push edx
mov eax, dword [0x436518]
push eax
call fcn.0040cf90
add esp, 8
test eax, eax
jne 0x409f21
mov dword [ebp - 0x12c], 5
mov ecx, dword [ebp + 4]
mov dword [ebp - 0x11c], ecx
mov edx, dword [ebp - 0x11c]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x3c]
mov dword [ebp - 0x120], eax
mov ecx, dword [ebp - 0x120]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x124]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x30]
mov dword [ebp - 0x128], ecx
mov edx, dword [ebp - 0x128]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x12c]
jmp 0x40a9b9
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
je 0x409f3f
mov byte [0x4365a8], 1
mov byte [0x4365a9], 1
lea ecx, [ebp + 0x20]
call fcn.0041bc40
mov cl, byte [0x4365a8]
mov byte [ebp + 0x50], cl
movzx edx, byte [ebp + 0x50]
test edx, edx
je 0x40a0af
mov eax, dword [0x4365a4]
mov dword [ebp + 0x58], eax
push str.AutoInstall
lea ecx, [ebp + 0x20]
call fcn.0041bef0
mov ecx, dword [ebp + 0x58]
movzx edx, word [ecx]
push edx
lea ecx, [ebp + 0x20]
call fcn.00401850
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x130], eax
push 0
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.00405dd0
add esp, 8
test eax, eax
jne 0x40a04b
mov edx, dword [ebp + 0x20]
mov dword [ebp - 0x134], edx
mov eax, dword [ebp - 0x134]
push eax
push 0xe
push 0
call fcn.0040d110
add esp, 0xc
mov dword [ebp - 0x14c], 6
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x138], ecx
mov edx, dword [ebp - 0x138]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 4]
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp - 0x13c]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0x140], edx
mov eax, dword [ebp - 0x140]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x144], ecx
mov edx, dword [ebp - 0x144]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x148]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x14c]
jmp 0x40a9b9
mov edx, dword [ebp + 0x58]
add edx, 2
mov dword [ebp + 0x58], edx
mov eax, dword [ebp + 0x58]
movzx ecx, word [eax]
cmp ecx, 0x30
jl 0x40a06e
mov edx, dword [ebp + 0x58]
movzx eax, word [edx]
cmp eax, 0x39
jle 0x409f64
mov ecx, dword [ebp + 0x58]
movzx edx, word [ecx]
cmp edx, 0x61
jl 0x40a088
mov eax, dword [ebp + 0x58]
movzx ecx, word [eax]
cmp ecx, 0x7a
jle 0x409f64
mov edx, dword [ebp + 0x58]
movzx eax, word [edx]
cmp eax, 0x41
jl 0x40a0a2
mov ecx, dword [ebp + 0x58]
movzx edx, word [ecx]
cmp edx, 0x5a
jle 0x409f64
push str.AutoInstall
lea ecx, [ebp + 0x20]
call fcn.0041bef0
mov byte [ebp + 0x5f], 0
cmp dword [ebp + 0x24], 0
jne 0x40a0c2
mov dword [ebp - 0x20], 1
jmp 0x40a0c9
mov dword [ebp - 0x20], 0
movzx eax, byte [ebp - 0x20]
test eax, eax
je 0x40a0f5
push 0
push str.ExecuteFile
call fcn.00405dd0
add esp, 8
test eax, eax
je 0x40a0f5
push str.ExecuteFile
lea ecx, [ebp + 0x20]
call fcn.0041bef0
mov byte [ebp + 0x5f], 1
cmp dword [ebp + 0x24], 0
jne 0x40a104
mov dword [ebp - 4], 1
jmp 0x40a10b
mov dword [ebp - 4], 0
movzx ecx, byte [ebp - 4]
test ecx, ecx
je 0x40a133
push 0
push str.RunProgram
call fcn.00405dd0
add esp, 8
test eax, eax
je 0x40a133
push str.RunProgram
lea ecx, [ebp + 0x20]
call fcn.0041bef0
mov dl, byte [0x4365a8]
mov byte [ebp + 0x4f], dl
movzx eax, byte [ebp + 0x4f]
test eax, eax
jne 0x40a245
mov cl, byte [0x4365a9]
mov byte [ebp + 0x4e], cl
movzx edx, byte [ebp + 0x4e]
test edx, edx
jne 0x40a245
mov eax, dword [0x436300]
and eax, 0xc0
cmp eax, 0x80
jne 0x40a245
mov ecx, dword [0x43652c]
push ecx
mov edx, dword [0x436528]
push edx
call fcn.0040d260
add esp, 8
test eax, eax
jne 0x40a245
movzx eax, byte [0x436540]
test eax, eax
je 0x40a1b8
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x150], ecx
mov edx, dword [ebp - 0x150]
push edx
call fcn.0042eaf0
add esp, 4
jmp 0x409e66
mov dword [ebp - 0x168], 5
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x154]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 4]
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x158]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x3c]
mov dword [ebp - 0x15c], ecx
mov edx, dword [ebp - 0x15c]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x160]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x30]
mov dword [ebp - 0x164], edx
mov eax, dword [ebp - 0x164]
push eax
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x168]
jmp 0x40a9b9
cmp dword [0x436554], 0
jne 0x40a257
mov dword [ebp - 8], 1
jmp 0x40a25e
mov dword [ebp - 8], 0
movzx ecx, byte [ebp - 8]
test ecx, ecx
je 0x40a2b5
push str.7ZipSfx._03x
lea edx, [ebp - 0x280]
push edx
call fcn.004048b0
add esp, 8
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x16c]
push eax
mov ecx, 0x436550
call fcn.0041be30
mov ecx, dword [ebp - 0x280]
mov dword [ebp - 0x170], ecx
mov edx, dword [ebp - 0x170]
push edx
call fcn.0042eaf0
add esp, 4
mov byte [0x436541], 0
jmp 0x40a328
push 0x436550
lea ecx, [ebp - 0x25c]
call fcn.0041bb70
lea eax, [ebp - 0x25c]
push eax
call fcn.00408a20
add esp, 4
cmp dword [ebp - 0x258], 0
jne 0x40a2e6
mov dword [ebp - 0xc], 1
jmp 0x40a2ed
mov dword [ebp - 0xc], 0
movzx ecx, byte [ebp - 0xc]
test ecx, ecx
jne 0x40a306
lea edx, [ebp - 0x25c]
push edx
mov ecx, 0x436550
call fcn.0041be30
mov byte [0x436541], 1
mov eax, dword [ebp - 0x25c]
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x174]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [0x436550]
mov dword [ebp - 0x17c], edx
mov eax, dword [0x436554]
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x178]
mov edx, dword [ebp - 0x17c]
movzx eax, word [edx + ecx*2 - 2]
cmp eax, 0x5c
je 0x40a383
mov ecx, dword [0x436550]
mov dword [ebp - 0x184], ecx
mov edx, dword [0x436554]
mov dword [ebp - 0x180], edx
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x184]
movzx edx, word [ecx + eax*2 - 2]
cmp edx, 0x2f
jne 0x40a3b1
mov eax, dword [0x436554]
mov dword [ebp - 0x188], eax
mov ecx, dword [ebp - 0x188]
sub ecx, 1
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x10]
mov dword [0x436554], edx
mov eax, dword [0x436550]
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov word [eax + edx*2], cx
mov al, byte [0x4365a9]
mov byte [ebp + 0x4d], al
movzx ecx, byte [ebp + 0x4d]
test ecx, ecx
je 0x40a3d0
mov edx, dword [0x43653c]
or edx, 3
mov dword [0x43653c], edx
push 0x436550
call fcn.00402c90
add esp, 4
mov dword [ebp - 0x18c], eax
cmp dword [ebp - 0x18c], 0
je 0x40a482
call fcn.00408fb0
mov dword [ebp - 0x1a4], 8
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x190]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 4]
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x194]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x3c]
mov dword [ebp - 0x198], ecx
mov edx, dword [ebp - 0x198]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x19c]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x30]
mov dword [ebp - 0x1a0], edx
mov eax, dword [ebp - 0x1a0]
push eax
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x1a4]
jmp 0x40a9b9
call fcn.00408f10
mov cl, byte [0x4365aa]
mov byte [ebp + 0x4c], cl
movzx edx, byte [ebp + 0x4c]
test edx, edx
je 0x40a4a7
movzx eax, byte [0x436541]
test eax, eax
jne 0x40a7ea
lea ecx, [ebp - 0x250]
call fcn.0041bc40
lea ecx, [ebp - 0x268]
call fcn.0041bc40
mov cl, byte [0x4365a8]
mov byte [ebp + 0x4b], cl
movzx edx, byte [ebp + 0x4b]
test edx, edx
jne 0x40a4dd
lea eax, [ebp - 0x250]
push eax
call fcn.00402600
add esp, 4
cmp dword [ebp + 0x24], 0
jne 0x40a4ec
mov dword [ebp - 0x14], 1
jmp 0x40a4f3
mov dword [ebp - 0x14], 0
movzx ecx, byte [ebp - 0x14]
test ecx, ecx
je 0x40a6f2
movzx edx, byte [0x436541]
test edx, edx
jne 0x40a6f0
mov dword [ebp + 0x64], str.setup.exe
mov eax, dword [ebp + 0x64]
push eax
push 0x4318f4
push 0x436550
lea ecx, [ebp - 0x298]
push ecx
call fcn.0041c0b0
add esp, 0xc
push eax
lea edx, [ebp - 0x28c]
push edx
call fcn.0041c0b0
add esp, 0xc
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [eax]
mov dword [ebp - 0x1ac], ecx
mov edx, dword [ebp - 0x1ac]
push edx
lea ecx, [ebp - 0x268]
call fcn.0041bef0
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x1b0], eax
mov ecx, dword [ebp - 0x1b0]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp - 0x298]
mov dword [ebp - 0x1b4], edx
mov eax, dword [ebp - 0x1b4]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp - 0x268]
mov dword [ebp - 0x1b8], ecx
mov edx, dword [ebp - 0x1b8]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40a694
call fcn.00408fb0
push 0xf
push 0
call fcn.0040d110
add esp, 8
mov dword [ebp - 0x1d8], 7
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x1bc], eax
mov ecx, dword [ebp - 0x1bc]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp - 0x250]
mov dword [ebp - 0x1c0], edx
mov eax, dword [ebp - 0x1c0]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x1c4], ecx
mov edx, dword [ebp - 0x1c4]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 4]
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0x1c8]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x3c]
mov dword [ebp - 0x1cc], edx
mov eax, dword [ebp - 0x1cc]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x1d0], ecx
mov edx, dword [ebp - 0x1d0]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x1d4], eax
mov ecx, dword [ebp - 0x1d4]
push ecx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x1d8]
jmp 0x40a9b9
mov edx, dword [0x436550]
mov dword [ebp - 0x1dc], edx
mov eax, dword [ebp + 0x64]
push eax
lea ecx, [ebp - 0x274]
call fcn.0041bbd0
mov ecx, dword [ebp + 0x54]
push ecx
lea edx, [ebp - 0x250]
push edx
movzx eax, byte [ebp + 0x5f]
push eax
mov ecx, dword [ebp - 0x1dc]
push ecx
lea edx, [ebp - 0x274]
push edx
call fcn.004021a0
add esp, 0x14
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x1e0], eax
mov ecx, dword [ebp - 0x1e0]
push ecx
call fcn.0042eaf0
add esp, 4
jmp 0x40a73a
mov edx, dword [0x4365a4]
mov dword [ebp - 0x1e4], edx
mov eax, dword [0x436550]
mov dword [ebp - 0x1e8], eax
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x1ec], ecx
mov edx, dword [ebp + 0x54]
push edx
lea eax, [ebp - 0x250]
push eax
mov ecx, dword [ebp - 0x1e4]
push ecx
mov edx, dword [ebp - 0x1e8]
push edx
mov eax, dword [ebp - 0x1ec]
push eax
call fcn.00402040
add esp, 0x14
call fcn.00408f10
mov ecx, dword [0x4365a4]
mov dword [ebp - 0x1f4], ecx
mov edx, dword [ebp - 0x1f0]
push edx
mov eax, dword [ebp - 0x1f4]
push eax
push str.Shortcut
push 0x4086b0
call fcn.00408800
add esp, 0x10
mov ecx, dword [0x43655c]
mov dword [ebp - 0x1f8], ecx
mov edx, dword [ebp - 0x1f8]
push edx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [0x4365a4]
mov dword [ebp - 0x200], eax
mov ecx, dword [ebp - 0x1fc]
push ecx
mov edx, dword [ebp - 0x200]
push edx
push str.Delete
push 0x408660
call fcn.00408800
add esp, 0x10
call fcn.00408fb0
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x204], eax
mov ecx, dword [ebp - 0x204]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp - 0x250]
mov dword [ebp - 0x208], edx
mov eax, dword [ebp - 0x208]
push eax
call fcn.0042eaf0
add esp, 4
cmp dword [0x43630c], 0xffffffff
jne 0x40a80e
mov cl, byte [0x4365a9]
mov byte [ebp + 0x4a], cl
movzx edx, byte [ebp + 0x4a]
test edx, edx
jne 0x40a80e
mov dword [0x43630c], 1
cmp dword [0x43630c], 0
jle 0x40a893
push 0
push str.FinishMessage
call fcn.00405dd0
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x40a893
cmp dword [0x43630c], 0x3e7
jle 0x40a845
mov dword [0x43630c], 0x3e7
lea ecx, [ebp - 0x2e8]
call fcn.0040a9c0
mov dword [ebp - 0x2e8], 0x4323f4
mov dword [ebp - 0x2e8], 0x432424
mov dword [ebp - 0x2b0], 0x7d5
push 0
mov eax, dword [ebp + 0x64]
push eax
mov ecx, dword [0x436518]
push ecx
push 0x11
lea ecx, [ebp - 0x2e8]
call fcn.0040d2c0
lea ecx, [ebp - 0x2e8]
call fcn.0040aa60
mov dl, byte [0x4365aa]
mov byte [ebp + 0x49], dl
movzx eax, byte [ebp + 0x49]
test eax, eax
jne 0x40a931
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0
je 0x40a8bf
cmp dword [ebp - 0x18], 1
je 0x40a8c1
jmp 0x40a8e4
jmp 0x40a931
sub esp, 0xc
mov dword [ebp - 0x210], esp
push 0x4365b8
mov ecx, dword [ebp - 0x210]
call fcn.0041bb70
call fcn.00408240
add esp, 0xc
jmp 0x40a931
push 0
push str.SelfDelete
call fcn.00405dd0
add esp, 8
mov dword [ebp + 0x64], eax
cmp dword [ebp + 0x64], 0
je 0x40a931
mov edx, 2
imul eax, edx, 0
mov ecx, dword [ebp + 0x64]
movzx edx, word [ecx + eax]
cmp edx, 0x31
jne 0x40a931
sub esp, 0xc
mov dword [ebp - 0x214], esp
push 0x4365b8
mov ecx, dword [ebp - 0x214]
call fcn.0041bb70
call fcn.00408240
add esp, 0xc
mov dword [ebp - 0x22c], 0
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x218], eax
mov ecx, dword [ebp - 0x218]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 4]
mov dword [ebp - 0x21c], edx
mov eax, dword [ebp - 0x21c]
push eax
call fcn.0042eaf0
add esp, 4
mov ecx, dword [ebp + 0x3c]
mov dword [ebp - 0x220], ecx
mov edx, dword [ebp - 0x220]
push edx
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x224], eax
mov ecx, dword [ebp - 0x224]
push ecx
call fcn.0042eaf0
add esp, 4
mov edx, dword [ebp + 0x30]
mov dword [ebp - 0x228], edx
mov eax, dword [ebp - 0x228]
push eax
call fcn.0042eaf0
add esp, 4
mov eax, dword [ebp - 0x22c]
add ebp, 0x68
mov esp, ebp
pop ebp
ret