Function at 0x4090b0
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
mov ebp, esp
sub esp, 0x240
push 0x409090
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 - 0x4c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x1a2890
je 0x4090f6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x7a33
je 0x4090f6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0xf4240
jne 0x409111
mov eax, dword [ebp - 0x4c]
neg eax
xor eax, dword [ebp - 0x4c]
and eax, 1
jne 0x409111
mov ecx, dword [ebp - 0x4c]
add ecx, 0x221e
mov dword [ebp - 0x4c], ecx
jmp 0x4090f6
mov dword [ebp - 0xc4], 0xffffffff
mov dword [ebp - 0xc8], 0xffffffff
mov dword [ebp - 0xcc], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00401310
lea ecx, [ebp - 0x48]
call fcn.00401310
lea ecx, [ebp - 0x20]
call fcn.00401310
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0xd4], eax
push str.FreeConsole
mov edx, dword [ebp - 0xd4]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xd8], eax
call dword [ebp - 0xd8]
call fcn.00408c90
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00406150
add esp, 8
push eax
lea ecx, [ebp - 0x20]
call fcn.004021b0
lea ecx, [ebp - 0x20]
push ecx
call fcn.00406690
add esp, 4
lea ecx, [ebp - 0x20]
call fcn.004013a0
mov dword [ebp - 0x14], eax
push str.sfxversion
mov edx, dword [ebp - 0x14]
push edx
call fcn.00408260
add esp, 8
test eax, eax
je 0x4091f5
call fcn.00408dd0
mov dword [ebp - 0xdc], 0
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0xdc]
jmp 0x40a050
push 0x208
push 0x208
mov ecx, 0x4355b8
call fcn.00405190
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x40924f
push 6
push 1
call fcn.0040c770
add esp, 8
mov dword [ebp - 0xe0], 1
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0xe0]
jmp 0x40a050
mov ecx, 0x4355b8
call fcn.00406660
push str.sfxtest
mov eax, dword [ebp - 0x14]
push eax
call fcn.00408260
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4092a0
mov dword [ebp - 0xe4], 0x64
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0xe4]
jmp 0x40a050
push str.sfxcreate
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00408260
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409332
mov edx, dword [ebp - 4]
push edx
mov ecx, 0x4355b8
call fcn.004013a0
push eax
call fcn.00407300
add esp, 8
movzx eax, al
test eax, eax
jne 0x40930b
push 0xa
push 0
call fcn.0040c770
add esp, 8
mov dword [ebp - 0x68], 4
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x68]
jmp 0x40a050
mov dword [ebp - 0x6c], 0
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x6c]
jmp 0x40a050
push 0x4355b8
mov ecx, 0x43555c
call fcn.00402190
push 0x4355b8
mov ecx, 0x435568
call fcn.00402190
push 0x4355b8
call fcn.004052f0
add esp, 4
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jl 0x409415
mov ecx, dword [ebp - 0xc]
push ecx
mov ecx, 0x43555c
call fcn.004020d0
mov ecx, 0x4355b8
call fcn.004013a0
mov edx, dword [ebp - 0xc]
lea eax, [eax + edx*2 + 2]
push eax
mov ecx, 0x435568
call fcn.004021b0
mov ecx, 0x4355b8
call fcn.004013a0
mov ecx, dword [ebp - 0xc]
lea edx, [eax + ecx*2 + 2]
push edx
mov ecx, 0x435580
call fcn.004021b0
push 0x2e
mov ecx, 0x435580
call fcn.0041b660
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jle 0x4093d3
mov eax, dword [ebp - 0xc]
push eax
mov ecx, 0x435580
call fcn.004020d0
push 0x435580
mov ecx, 0x435574
call fcn.00402190
push 4
call fcn.00405480
add esp, 4
push eax
mov ecx, 0x435574
call fcn.0041aed0
mov ecx, 0x435580
call fcn.004013a0
mov dword [0x435518], eax
mov ecx, 0x435574
call fcn.004013a0
mov dword [0x43551c], eax
call fcn.00405810
push eax
mov ecx, 0x43558c
call fcn.004021b0
mov ecx, 0x4355b8
call fcn.004013a0
push eax
mov ecx, 0x435598
call fcn.004014c0
movzx ecx, al
test ecx, ecx
jne 0x40947f
mov ecx, 0x4355b8
call fcn.004013a0
push eax
push 7
push 1
call fcn.0040c770
add esp, 0xc
mov dword [ebp - 0x70], 2
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x70]
jmp 0x40a050
lea ecx, [ebp - 0x58]
call fcn.00403cd0
mov ecx, 0x4355c4
call fcn.00407270
lea edx, [ebp - 0x58]
push edx
push 0
mov ecx, 0x435598
call fcn.00408240
push eax
call fcn.00406080
add esp, 0xc
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x4094e1
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x74], eax
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x74]
jmp 0x40a050
push 0x431518
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00408260
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4095be
mov edx, dword [ebp - 4]
movzx eax, word [edx]
cmp eax, 0x3a
jne 0x409513
mov ecx, dword [ebp - 4]
add ecx, 2
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
movzx eax, word [edx]
test eax, eax
je 0x409533
mov ecx, dword [ebp - 4]
movzx edx, word [ecx]
cmp edx, 0x20
ja 0x409533
mov eax, dword [ebp - 4]
add eax, 2
mov dword [ebp - 4], eax
jmp 0x409513
mov ecx, dword [ebp - 4]
movzx edx, word [ecx]
test edx, edx
je 0x40958f
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [ebp - 4]
push ecx
call fcn.00408790
add esp, 8
movzx edx, al
test edx, edx
jne 0x40958f
push 0xa
push 0
call fcn.0040c770
add esp, 8
mov dword [ebp - 0x78], 4
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x78]
jmp 0x40a050
mov dword [ebp - 0x7c], 0
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x7c]
jmp 0x40a050
mov dword [ebp - 0x30], 0x435090
mov eax, dword [ebp - 0x30]
cmp dword [eax], 0
je 0x409613
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx]
push edx
push str.SfxString_d
lea eax, [ebp - 0x240]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx]
push edx
call fcn.00405480
add esp, 4
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.00406cb0
add esp, 0xc
mov ecx, dword [ebp - 0x30]
add ecx, 0x10
mov dword [ebp - 0x30], ecx
jmp 0x4095c5
mov edx, dword [ebp - 0x14]
push edx
mov ecx, 0x435598
call fcn.00408900
call fcn.004019b0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x40965e
mov dword [ebp - 0x80], 0x20
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x80]
jmp 0x40a050
call fcn.00408930
mov ecx, 0x435598
call fcn.00401560
mov dword [ebp - 0x5c], 0
lea eax, [ebp - 0x5c]
push eax
push str.SetEnvironment
call fcn.00405db0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409709
mov ecx, dword [ebp - 4]
push ecx
lea ecx, [ebp - 0xf0]
call fcn.00401830
push 0x3d
lea ecx, [ebp - 0xf0]
call fcn.00405050
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jg 0x4096c0
lea ecx, [ebp - 0xf0]
call fcn.00401880
jmp 0x409709
mov edx, dword [ebp - 0xc]
push edx
lea ecx, [ebp - 0xf0]
call fcn.004020d0
push 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*2 + 2]
push edx
lea ecx, [ebp - 0xf0]
call fcn.004013a0
push eax
call fcn.00406cb0
add esp, 0xc
mov eax, dword [ebp - 0x5c]
add eax, 1
mov dword [ebp - 0x5c], eax
lea ecx, [ebp - 0xf0]
call fcn.00401880
jmp 0x409674
call fcn.00408bd0
cmp dword [0x435300], 0xffffffff
jne 0x409721
mov dword [0x435300], 0
mov ecx, 0x435598
call fcn.00408220
movzx ecx, al
test ecx, ecx
je 0x4097bf
push 0
push str.HelpText
call fcn.00405db0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x40975b
push 0x18
call fcn.00405480
add esp, 4
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x1e8]
call fcn.00407070
push 0
mov edx, dword [ebp - 4]
push edx
mov eax, dword [0x435518]
push eax
push 0x11
lea ecx, [ebp - 0x1e8]
call fcn.0040c920
mov dword [ebp - 0x84], 0
lea ecx, [ebp - 0x1e8]
call fcn.00407180
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x84]
jmp 0x40a050
mov ecx, 0x435598
call fcn.004081a0
movzx ecx, al
test ecx, ecx
je 0x4097e2
mov edx, dword [0x435300]
and edx, 0xfffffeff
mov dword [0x435300], edx
push 6
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0
push str.InstallPath
call fcn.00405db0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409819
mov eax, dword [ebp - 4]
push eax
mov ecx, 0x435550
call fcn.004021b0
mov byte [0x435541], 1
push 0x435550
call fcn.00408710
add esp, 4
push 0
push str.BeginPrompt
call fcn.00405db0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4098c9
mov ecx, 0x435598
call fcn.004081a0
movzx ecx, al
test ecx, ecx
jne 0x4098c9
mov edx, dword [ebp - 4]
push edx
mov eax, dword [0x435518]
push eax
call fcn.0040c600
add esp, 8
test eax, eax
jne 0x40989e
mov dword [ebp - 0x88], 5
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x88]
jmp 0x40a050
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
and ecx, 0x8000
je 0x4098c9
push 1
mov ecx, 0x435598
call fcn.00402110
push 1
mov ecx, 0x435598
call fcn.004020f0
lea ecx, [ebp - 0x3c]
call fcn.00401310
mov ecx, 0x435598
call fcn.004081c0
movzx edx, al
test edx, edx
je 0x4099dc
mov ecx, 0x435598
call fcn.004081e0
mov dword [ebp - 0x10], eax
push str.AutoInstall
lea ecx, [ebp - 0x3c]
call fcn.004021b0
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax]
push ecx
lea ecx, [ebp - 0x3c]
call fcn.004018a0
push 0
lea ecx, [ebp - 0x3c]
call fcn.004013a0
push eax
call fcn.00405db0
add esp, 8
test eax, eax
jne 0x409978
lea ecx, [ebp - 0x3c]
call fcn.004013a0
push eax
push 0xe
push 0
call fcn.0040c770
add esp, 0xc
mov dword [ebp - 0x8c], 6
lea ecx, [ebp - 0x3c]
call fcn.00401880
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x8c]
jmp 0x40a050
mov edx, dword [ebp - 0x10]
add edx, 2
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax]
cmp ecx, 0x30
jl 0x40999b
mov edx, dword [ebp - 0x10]
movzx eax, word [edx]
cmp eax, 0x39
jle 0x4098f3
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx]
cmp edx, 0x61
jl 0x4099b5
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax]
cmp ecx, 0x7a
jle 0x4098f3
mov edx, dword [ebp - 0x10]
movzx eax, word [edx]
cmp eax, 0x41
jl 0x4099cf
mov ecx, dword [ebp - 0x10]
movzx edx, word [ecx]
cmp edx, 0x5a
jle 0x4098f3
push str.AutoInstall
lea ecx, [ebp - 0x3c]
call fcn.004021b0
mov byte [ebp - 5], 0
lea ecx, [ebp - 0x3c]
call fcn.00405f20
movzx eax, al
test eax, eax
je 0x409a13
push 0
push str.ExecuteFile
call fcn.00405db0
add esp, 8
test eax, eax
je 0x409a13
push str.ExecuteFile
lea ecx, [ebp - 0x3c]
call fcn.004021b0
mov byte [ebp - 5], 1
lea ecx, [ebp - 0x3c]
call fcn.00405f20
movzx ecx, al
test ecx, ecx
je 0x409a42
push 0
push str.RunProgram
call fcn.00405db0
add esp, 8
test eax, eax
je 0x409a42
push str.RunProgram
lea ecx, [ebp - 0x3c]
call fcn.004021b0
mov ecx, 0x435598
call fcn.004081c0
movzx edx, al
test edx, edx
jne 0x409aee
mov ecx, 0x435598
call fcn.004081a0
movzx eax, al
test eax, eax
jne 0x409aee
mov ecx, dword [0x435300]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x409aee
mov edx, dword [0x43552c]
push edx
mov eax, dword [0x435528]
push eax
call fcn.0040c8c0
add esp, 8
test eax, eax
jne 0x409aee
movzx ecx, byte [0x435540]
test ecx, ecx
je 0x409ab1
lea ecx, [ebp - 0x3c]
call fcn.00401880
jmp 0x409826
mov dword [ebp - 0x90], 5
lea ecx, [ebp - 0x3c]
call fcn.00401880
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0x90]
jmp 0x40a050
mov ecx, 0x435550
call fcn.00405f20
movzx edx, al
test edx, edx
je 0x409b32
push str.7ZipSfx._03x
lea eax, [ebp - 0x120]
push eax
call fcn.00404a20
add esp, 8
push eax
mov ecx, 0x435550
call fcn.00402190
lea ecx, [ebp - 0x120]
call fcn.00401880
mov byte [0x435541], 0
jmp 0x409b86
push 0x435550
lea ecx, [ebp - 0x108]
call fcn.00402b40
lea ecx, [ebp - 0x108]
push ecx
call fcn.00408710
add esp, 4
lea ecx, [ebp - 0x108]
call fcn.00405f20
movzx edx, al
test edx, edx
jne 0x409b74
lea eax, [ebp - 0x108]
push eax
mov ecx, 0x435550
call fcn.00402190
mov byte [0x435541], 1
lea ecx, [ebp - 0x108]
call fcn.00401880
mov ecx, 0x435550
call fcn.004013a0
mov dword [ebp - 0x94], eax
mov ecx, 0x435550
call fcn.004027b0
lea ecx, [eax + eax - 2]
mov dword [ebp - 0x98], ecx
mov edx, dword [ebp - 0x94]
add edx, dword [ebp - 0x98]
movzx eax, word [edx]
cmp eax, 0x5c
je 0x409bf6
mov ecx, 0x435550
call fcn.004013a0
mov dword [ebp - 0x9c], eax
mov ecx, 0x435550
call fcn.004027b0
lea ecx, [eax + eax - 2]
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0x9c]
add edx, dword [ebp - 0xa0]
movzx eax, word [edx]
cmp eax, 0x2f
jne 0x409c0e
mov ecx, 0x435550
call fcn.004027b0
sub eax, 1
push eax
mov ecx, 0x435550
call fcn.004020d0
mov ecx, 0x435598
call fcn.004081a0
movzx ecx, al
test ecx, ecx
je 0x409c2e
mov edx, dword [0x43553c]
or edx, 3
mov dword [0x43553c], edx
push 0x435550
call fcn.00403010
add esp, 4
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0
je 0x409c8c
call fcn.00408c60
mov dword [ebp - 0xa8], 8
lea ecx, [ebp - 0x3c]
call fcn.00401880
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0xa8]
jmp 0x40a050
call fcn.00408bd0
mov ecx, 0x435598
call fcn.00408200
movzx eax, al
test eax, eax
je 0x409cb1
movzx ecx, byte [0x435541]
test ecx, ecx
jne 0x409f08
lea ecx, [ebp - 0xfc]
call fcn.00401310
lea ecx, [ebp - 0x114]
call fcn.00401310
mov ecx, 0x435598
call fcn.004081c0
movzx edx, al
test edx, edx
jne 0x409ce7
lea eax, [ebp - 0xfc]
push eax
call fcn.00402710
add esp, 4
lea ecx, [ebp - 0x3c]
call fcn.00405f20
movzx ecx, al
test ecx, ecx
je 0x409e39
movzx edx, byte [0x435541]
test edx, edx
jne 0x409e37
mov dword [ebp - 4], str.setup.exe
mov eax, dword [ebp - 4]
push eax
push 0x430904
push 0x435550
lea ecx, [ebp - 0x138]
push ecx
call fcn.0041ad70
add esp, 0xc
push eax
lea edx, [ebp - 0x12c]
push edx
call fcn.0041ad70
add esp, 0xc
mov ecx, eax
call fcn.004013a0
push eax
lea ecx, [ebp - 0x114]
call fcn.004021b0
lea ecx, [ebp - 0x12c]
call fcn.00401850
lea ecx, [ebp - 0x138]
call fcn.00401850
lea ecx, [ebp - 0x114]
call fcn.004013a0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x409de1
call fcn.00408c60
push 0xf
push 0
call fcn.0040c770
add esp, 8
mov dword [ebp - 0xac], 7
lea ecx, [ebp - 0x114]
call fcn.00401880
lea ecx, [ebp - 0xfc]
call fcn.00401880
lea ecx, [ebp - 0x3c]
call fcn.00401880
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0xac]
jmp 0x40a050
mov ecx, 0x435550
call fcn.004013a0
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x144]
call fcn.00401830
mov dword [ebp - 0xb4], eax
mov ecx, dword [ebp - 0x14]
push ecx
lea edx, [ebp - 0xfc]
push edx
movzx eax, byte [ebp - 5]
push eax
mov ecx, dword [ebp - 0xb0]
push ecx
mov edx, dword [ebp - 0xb4]
push edx
call fcn.00402330
add esp, 0x14
lea ecx, [ebp - 0x144]
call fcn.00401880
jmp 0x409e8f
mov ecx, 0x435598
call fcn.004081e0
mov dword [ebp - 0xb8], eax
mov ecx, 0x435550
call fcn.004013a0
mov dword [ebp - 0xbc], eax
lea ecx, [ebp - 0x3c]
call fcn.004013a0
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x14]
push eax
lea ecx, [ebp - 0xfc]
push ecx
mov edx, dword [ebp - 0xb8]
push edx
mov eax, dword [ebp - 0xbc]
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
call fcn.00402200
add esp, 0x14
call fcn.00408bd0
mov edx, dword [ebp - 0xc4]
push edx
mov ecx, 0x435598
call fcn.004081e0
push eax
push str.Shortcut
push 0x4083c0
call fcn.004084f0
add esp, 0x10
mov ecx, 0x43555c
call fcn.004013a0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, 0x435598
call fcn.004081e0
push eax
push str.Delete
push 0x408380
call fcn.004084f0
add esp, 0x10
call fcn.00408c60
lea ecx, [ebp - 0x114]
call fcn.00401880
lea ecx, [ebp - 0xfc]
call fcn.00401880
cmp dword [0x43530c], 0xffffffff
jne 0x409f2c
mov ecx, 0x435598
call fcn.004081a0
movzx ecx, al
test ecx, ecx
jne 0x409f2c
mov dword [0x43530c], 1
cmp dword [0x43530c], 0
jle 0x409f92
push 0
push str.FinishMessage
call fcn.00405db0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x409f92
cmp dword [0x43530c], 0x3e7
jle 0x409f63
mov dword [0x43530c], 0x3e7
lea ecx, [ebp - 0x194]
call fcn.00407040
push 0
mov edx, dword [ebp - 4]
push edx
mov eax, dword [0x435518]
push eax
push 0x11
lea ecx, [ebp - 0x194]
call fcn.0040c920
lea ecx, [ebp - 0x194]
call fcn.00407180
mov ecx, 0x435598
call fcn.00408200
movzx ecx, al
test ecx, ecx
jne 0x40a018
mov edx, dword [ebp - 0xcc]
mov dword [ebp - 0x64], edx
cmp dword [ebp - 0x64], 0
je 0x409fba
cmp dword [ebp - 0x64], 1
je 0x409fbc
jmp 0x409fd5
jmp 0x40a018
sub esp, 0xc
mov ecx, esp
push 0x4355b8
call fcn.00402b40
call fcn.00407f00
add esp, 0xc
jmp 0x40a018
push 0
push str.SelfDelete
call fcn.00405db0
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x40a018
mov eax, 2
imul ecx, eax, 0
mov edx, dword [ebp - 4]
movzx eax, word [edx + ecx]
cmp eax, 0x31
jne 0x40a018
sub esp, 0xc
mov ecx, esp
push 0x4355b8
call fcn.00402b40
call fcn.00407f00
add esp, 0xc
mov dword [ebp - 0xd0], 0
lea ecx, [ebp - 0x3c]
call fcn.00401880
lea ecx, [ebp - 0x58]
call fcn.00401880
lea ecx, [ebp - 0x20]
call fcn.00401880
lea ecx, [ebp - 0x48]
call fcn.00401880
lea ecx, [ebp - 0x2c]
call fcn.00401880
mov eax, dword [ebp - 0xd0]
mov esp, ebp
pop ebp
ret