Function at 0x407520
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, 0x228
push esi
push 0x407500
call dword [sym.imp.msvcrt.dll_int____cdecl___unsigned_int____cdecl__set_new_handler_int____cdecl___unsigned_int__]
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x1a2890
je 0x407568
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x7a33
je 0x407568
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0xf4240
jne 0x40757e
mov eax, dword [ebp - 0x18]
shl eax, 7
and eax, 0x56
jne 0x40757e
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
jmp 0x407568
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x44], 0xffffffff
lea ecx, [ebp - 0x68]
call fcn.004010d0
lea ecx, [ebp - 0x2c]
call fcn.004010d0
lea ecx, [ebp - 0x5c]
call fcn.004010d0
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [ebp - 0x48], eax
push str.FreeConsole
mov edx, dword [ebp - 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 8], eax
call dword [ebp - 8]
call fcn.00406670
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.004038e0
add esp, 8
push eax
lea ecx, [ebp - 0x5c]
call fcn.00401d50
lea ecx, [ebp - 0x5c]
push ecx
call fcn.00404310
add esp, 4
lea ecx, [ebp - 0x5c]
call fcn.004012d0
mov dword [ebp - 0x74], eax
push str.sfxversion
mov edx, dword [ebp - 0x74]
push edx
call fcn.00406cf0
add esp, 8
test eax, eax
je 0x40764d
call fcn.00407300
mov dword [ebp - 0x1b4], 0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1b4]
jmp 0x4083d7
push 0x208
push 0x208
mov ecx, 0x42d4fc
call fcn.004035a0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x4076a7
push 6
push 1
call fcn.0040b2d0
add esp, 8
mov dword [ebp - 0x1b8], 1
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1b8]
jmp 0x4083d7
mov ecx, 0x42d4fc
call fcn.00403570
push str.sfxtest
mov eax, dword [ebp - 0x74]
push eax
call fcn.00406cf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x4076f8
mov dword [ebp - 0x1bc], 0x64
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1bc]
jmp 0x4083d7
push 0x42d4fc
mov ecx, 0x42d4a0
call fcn.00402370
push 0x42d4fc
mov ecx, 0x42d4ac
call fcn.00402370
push 0x42d4fc
call fcn.00405bd0
add esp, 4
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jl 0x4077db
mov ecx, dword [ebp - 0x70]
push ecx
mov ecx, 0x42d4a0
call fcn.004016c0
mov ecx, 0x42d4fc
call fcn.004012d0
mov edx, dword [ebp - 0x70]
lea eax, [eax + edx*2 + 2]
push eax
mov ecx, 0x42d4ac
call fcn.00401d50
mov ecx, 0x42d4fc
call fcn.004012d0
mov ecx, dword [ebp - 0x70]
lea edx, [eax + ecx*2 + 2]
push edx
mov ecx, 0x42d4c4
call fcn.00401d50
push 0x2e
mov ecx, 0x42d4c4
call fcn.004195d0
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jle 0x407799
mov eax, dword [ebp - 0x70]
push eax
mov ecx, 0x42d4c4
call fcn.004016c0
push 0x42d4c4
mov ecx, 0x42d4b8
call fcn.00402370
push 4
call fcn.00405e60
add esp, 4
push eax
mov ecx, 0x42d4b8
call fcn.00419420
mov ecx, 0x42d4c4
call fcn.004012d0
mov dword [0x42d478], eax
mov ecx, 0x42d4b8
call fcn.004012d0
mov dword [0x42d47c], eax
call fcn.004061b0
push eax
mov ecx, 0x42d4d0
call fcn.00401d50
mov ecx, 0x42d4fc
call fcn.004012d0
push eax
mov ecx, 0x42d4dc
call fcn.004011c0
movzx ecx, al
test ecx, ecx
jne 0x40784b
mov ecx, 0x42d4fc
call fcn.004012d0
push eax
push 7
push 1
call fcn.0040b2d0
add esp, 0xc
mov dword [ebp - 0x1c0], 2
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1c0]
jmp 0x4083d7
lea ecx, [ebp - 0x14]
call fcn.00403b00
mov ecx, 0x42d508
call fcn.00408770
lea edx, [ebp - 0x14]
push edx
push 0
mov ecx, 0x42d4dc
call fcn.00408460
push eax
call fcn.004061e0
add esp, 0xc
mov dword [ebp - 0x50], eax
cmp dword [ebp - 0x50], 0
je 0x4078b3
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x1c4], eax
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1c4]
jmp 0x4083d7
push str.sfxconfig
mov ecx, dword [ebp - 0x74]
push ecx
call fcn.00406cf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x40799c
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx]
cmp eax, 0x3a
jne 0x4078e5
mov ecx, dword [ebp - 0x1c]
add ecx, 2
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx]
test eax, eax
je 0x407905
mov ecx, dword [ebp - 0x1c]
movzx edx, word [ecx]
cmp edx, 0x20
ja 0x407905
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
jmp 0x4078e5
mov ecx, dword [ebp - 0x1c]
movzx edx, word [ecx]
test edx, edx
je 0x407967
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00406aa0
add esp, 8
movzx edx, al
test edx, edx
jne 0x407967
push 0xa
push 0
call fcn.0040b2d0
add esp, 8
mov dword [ebp - 0x1c8], 4
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1c8]
jmp 0x4083d7
mov dword [ebp - 0x1cc], 0
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1cc]
jmp 0x4083d7
mov dword [ebp - 0x4c], 0x42d090
mov eax, dword [ebp - 0x4c]
cmp dword [eax], 0
je 0x4079f1
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ecx]
push edx
push 0x4298e4
lea eax, [ebp - 0xd0]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ecx]
push edx
call fcn.00405e60
add esp, 4
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.004036b0
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
add ecx, 0x10
mov dword [ebp - 0x4c], ecx
jmp 0x4079a3
mov edx, dword [ebp - 0x74]
push edx
mov ecx, 0x42d4dc
call fcn.00408520
call fcn.00401760
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
jne 0x407a42
mov dword [ebp - 0x1d0], 0x20
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1d0]
jmp 0x4083d7
call fcn.00406db0
mov ecx, 0x42d4dc
call fcn.00401230
mov dword [ebp - 0x6c], 0
lea eax, [ebp - 0x6c]
push eax
push str.SetEnvironment
call fcn.00404bf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x407aed
mov ecx, dword [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0xdc]
call fcn.004016a0
push 0x3d
lea ecx, [ebp - 0xdc]
call fcn.00404a10
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jg 0x407aa4
lea ecx, [ebp - 0xdc]
call fcn.00414ca0
jmp 0x407aed
mov edx, dword [ebp - 0x70]
push edx
lea ecx, [ebp - 0xdc]
call fcn.004016c0
push 0
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x1c]
lea edx, [ecx + eax*2 + 2]
push edx
lea ecx, [ebp - 0xdc]
call fcn.004012d0
push eax
call fcn.004036b0
add esp, 0xc
mov eax, dword [ebp - 0x6c]
add eax, 1
mov dword [ebp - 0x6c], eax
lea ecx, [ebp - 0xdc]
call fcn.00414ca0
jmp 0x407a58
call fcn.00406870
cmp dword [0x42d300], 0xffffffff
jne 0x407b05
mov dword [0x42d300], 0
mov ecx, 0x42d4dc
call fcn.00408500
movzx ecx, al
test ecx, ecx
je 0x407ba3
push 0
push str.HelpText
call fcn.00404bf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jne 0x407b3f
push 0x18
call fcn.00405e60
add esp, 4
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x138]
call fcn.00408410
push 0
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [0x42d478]
push eax
push 0x11
lea ecx, [ebp - 0x138]
call fcn.004097d0
mov dword [ebp - 0x1d4], 0
lea ecx, [ebp - 0x138]
call fcn.00408440
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1d4]
jmp 0x4083d7
mov ecx, 0x42d4dc
call fcn.004084c0
movzx ecx, al
test ecx, ecx
je 0x407bc6
mov edx, dword [0x42d300]
and edx, 0xfffffeff
mov dword [0x42d300], edx
push 6
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0
push str.InstallPath
call fcn.00404bf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x407bfd
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, 0x42d494
call fcn.00401d50
mov byte [0x42d45c], 1
push 0x42d494
call fcn.004067f0
add esp, 4
push 0
push str.BeginPrompt
call fcn.00404bf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x407cad
mov ecx, 0x42d4dc
call fcn.004084c0
movzx ecx, al
test ecx, ecx
jne 0x407cad
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [0x42d478]
push eax
call fcn.0040b040
add esp, 8
test eax, eax
jne 0x407c82
mov dword [ebp - 0x1d8], 5
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1d8]
jmp 0x4083d7
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
movsx ecx, ax
and ecx, 0x8000
je 0x407cad
push 1
mov ecx, 0x42d4dc
call fcn.00401b80
push 1
mov ecx, 0x42d4dc
call fcn.00401ba0
lea ecx, [ebp - 0x38]
call fcn.004010d0
mov ecx, 0x42d4dc
call fcn.004084a0
movzx edx, al
test edx, edx
je 0x407dde
mov ecx, 0x42d4dc
call fcn.00408480
mov dword [ebp - 0x13c], eax
push str.AutoInstall
lea ecx, [ebp - 0x38]
call fcn.00401d50
mov eax, dword [ebp - 0x13c]
movzx ecx, word [eax]
push ecx
lea ecx, [ebp - 0x38]
call fcn.00401c50
push 0
lea ecx, [ebp - 0x38]
call fcn.004012d0
push eax
call fcn.00404bf0
add esp, 8
test eax, eax
jne 0x407d62
lea ecx, [ebp - 0x38]
call fcn.004012d0
push eax
push 0xe
push 0
call fcn.0040b2d0
add esp, 0xc
mov dword [ebp - 0x1dc], 6
lea ecx, [ebp - 0x38]
call fcn.00414ca0
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1dc]
jmp 0x4083d7
mov edx, dword [ebp - 0x13c]
add edx, 2
mov dword [ebp - 0x13c], edx
mov eax, dword [ebp - 0x13c]
movzx ecx, word [eax]
cmp ecx, 0x30
jl 0x407d91
mov edx, dword [ebp - 0x13c]
movzx eax, word [edx]
cmp eax, 0x39
jle 0x407cda
mov ecx, dword [ebp - 0x13c]
movzx edx, word [ecx]
cmp edx, 0x61
jl 0x407db1
mov eax, dword [ebp - 0x13c]
movzx ecx, word [eax]
cmp ecx, 0x7a
jle 0x407cda
mov edx, dword [ebp - 0x13c]
movzx eax, word [edx]
cmp eax, 0x41
jl 0x407dd1
mov ecx, dword [ebp - 0x13c]
movzx edx, word [ecx]
cmp edx, 0x5a
jle 0x407cda
push str.AutoInstall
lea ecx, [ebp - 0x38]
call fcn.00401d50
mov byte [ebp - 0x39], 0
lea ecx, [ebp - 0x38]
call fcn.004038c0
movzx eax, al
test eax, eax
je 0x407e15
push 0
push str.ExecuteFile
call fcn.00404bf0
add esp, 8
test eax, eax
je 0x407e15
push str.ExecuteFile
lea ecx, [ebp - 0x38]
call fcn.00401d50
mov byte [ebp - 0x39], 1
lea ecx, [ebp - 0x38]
call fcn.004038c0
movzx ecx, al
test ecx, ecx
je 0x407e44
push 0
push str.RunProgram
call fcn.00404bf0
add esp, 8
test eax, eax
je 0x407e44
push str.RunProgram
lea ecx, [ebp - 0x38]
call fcn.00401d50
mov ecx, 0x42d4dc
call fcn.004084a0
movzx edx, al
test edx, edx
jne 0x407ef0
mov ecx, 0x42d4dc
call fcn.004084c0
movzx eax, al
test eax, eax
jne 0x407ef0
mov ecx, dword [0x42d300]
and ecx, 0xc0
cmp ecx, 0x80
jne 0x407ef0
mov edx, dword [0x42d46c]
push edx
mov eax, dword [0x42d470]
push eax
call fcn.0040b1d0
add esp, 8
test eax, eax
jne 0x407ef0
movzx ecx, byte [0x42d490]
test ecx, ecx
je 0x407eb3
lea ecx, [ebp - 0x38]
call fcn.00414ca0
jmp 0x407c0a
mov dword [ebp - 0x1e0], 5
lea ecx, [ebp - 0x38]
call fcn.00414ca0
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1e0]
jmp 0x4083d7
mov ecx, 0x42d494
call fcn.004038c0
movzx edx, al
test edx, edx
je 0x407f34
push str.7ZipSfx._03x
lea eax, [ebp - 0x1ec]
push eax
call fcn.00403780
add esp, 8
push eax
mov ecx, 0x42d494
call fcn.00402370
lea ecx, [ebp - 0x1ec]
call fcn.00414ca0
mov byte [0x42d45c], 0
jmp 0x407f88
push 0x42d494
lea ecx, [ebp - 0x148]
call fcn.00402c60
lea ecx, [ebp - 0x148]
push ecx
call fcn.004067f0
add esp, 4
lea ecx, [ebp - 0x148]
call fcn.004038c0
movzx edx, al
test edx, edx
jne 0x407f76
lea eax, [ebp - 0x148]
push eax
mov ecx, 0x42d494
call fcn.00402370
mov byte [0x42d45c], 1
lea ecx, [ebp - 0x148]
call fcn.00414ca0
mov ecx, 0x42d494
call fcn.004012d0
mov esi, eax
mov ecx, 0x42d494
call fcn.0040d8e0
movzx ecx, word [esi + eax*2 - 2]
cmp ecx, 0x5c
je 0x407fc8
mov ecx, 0x42d494
call fcn.004012d0
mov esi, eax
mov ecx, 0x42d494
call fcn.0040d8e0
movzx edx, word [esi + eax*2 - 2]
cmp edx, 0x2f
jne 0x407fe0
mov ecx, 0x42d494
call fcn.0040d8e0
sub eax, 1
push eax
mov ecx, 0x42d494
call fcn.004016c0
mov ecx, 0x42d4dc
call fcn.004084c0
movzx eax, al
test eax, eax
je 0x408000
mov ecx, dword [0x42d484]
or ecx, 3
mov dword [0x42d484], ecx
push 0x42d494
call fcn.00403040
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x408058
call fcn.004074d0
mov dword [ebp - 0x1f0], 8
lea ecx, [ebp - 0x38]
call fcn.00414ca0
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x1f0]
jmp 0x4083d7
call fcn.00406870
mov ecx, 0x42d4dc
call fcn.004084e0
movzx edx, al
test edx, edx
je 0x40807d
movzx eax, byte [0x42d45c]
test eax, eax
jne 0x408292
lea ecx, [ebp - 0x160]
call fcn.004010d0
lea ecx, [ebp - 0x154]
call fcn.004010d0
mov ecx, 0x42d4dc
call fcn.004084a0
movzx ecx, al
test ecx, ecx
jne 0x4080b3
lea edx, [ebp - 0x160]
push edx
call fcn.00401cc0
add esp, 4
lea ecx, [ebp - 0x38]
call fcn.004038c0
movzx eax, al
test eax, eax
je 0x4081ed
movzx ecx, byte [0x42d45c]
test ecx, ecx
jne 0x4081eb
mov dword [ebp - 0x1c], str.setup.exe
mov edx, dword [ebp - 0x1c]
push edx
push 0x42988c
push 0x42d494
lea eax, [ebp - 0x1fc]
push eax
call fcn.00419170
add esp, 0xc
push eax
lea ecx, [ebp - 0x208]
push ecx
call fcn.00419170
add esp, 0xc
mov ecx, eax
call fcn.004012d0
push eax
lea ecx, [ebp - 0x154]
call fcn.00401d50
lea ecx, [ebp - 0x208]
call fcn.004104c0
lea ecx, [ebp - 0x1fc]
call fcn.004104c0
lea ecx, [ebp - 0x154]
call fcn.004012d0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4081ad
call fcn.004074d0
push 0xf
push 0
call fcn.0040b2d0
add esp, 8
mov dword [ebp - 0x20c], 7
lea ecx, [ebp - 0x154]
call fcn.00414ca0
lea ecx, [ebp - 0x160]
call fcn.00414ca0
lea ecx, [ebp - 0x38]
call fcn.00414ca0
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x20c]
jmp 0x4083d7
mov edx, dword [ebp - 0x74]
push edx
lea eax, [ebp - 0x160]
push eax
movzx ecx, byte [ebp - 0x39]
push ecx
mov ecx, 0x42d494
call fcn.004012d0
push eax
mov edx, dword [ebp - 0x1c]
push edx
lea ecx, [ebp - 0x218]
call fcn.004016a0
push eax
call fcn.00401f80
add esp, 0x14
lea ecx, [ebp - 0x218]
call fcn.00414ca0
jmp 0x40821f
mov eax, dword [ebp - 0x74]
push eax
lea ecx, [ebp - 0x160]
push ecx
mov ecx, 0x42d4dc
call fcn.00408480
push eax
mov ecx, 0x42d494
call fcn.004012d0
push eax
lea ecx, [ebp - 0x38]
call fcn.004012d0
push eax
call fcn.00402390
add esp, 0x14
call fcn.00406870
mov edx, dword [ebp - 0x40]
push edx
mov ecx, 0x42d4dc
call fcn.00408480
push eax
push str.Shortcut
push 0x407040
call fcn.004071b0
add esp, 0x10
mov ecx, 0x42d4a0
call fcn.004012d0
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0x20]
push eax
mov ecx, 0x42d4dc
call fcn.00408480
push eax
push str.Delete
push 0x407170
call fcn.004071b0
add esp, 0x10
call fcn.004074d0
lea ecx, [ebp - 0x154]
call fcn.00414ca0
lea ecx, [ebp - 0x160]
call fcn.00414ca0
cmp dword [0x42d30c], 0xffffffff
jne 0x4082b6
mov ecx, 0x42d4dc
call fcn.004084c0
movzx ecx, al
test ecx, ecx
jne 0x4082b6
mov dword [0x42d30c], 1
cmp dword [0x42d30c], 0
jle 0x40831c
push 0
push str.FinishMessage
call fcn.00404bf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x40831c
cmp dword [0x42d30c], 0x3e7
jle 0x4082ed
mov dword [0x42d30c], 0x3e7
lea ecx, [ebp - 0x1b0]
call fcn.004083e0
push 0
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [0x42d478]
push eax
push 0x11
lea ecx, [ebp - 0x1b0]
call fcn.004097d0
lea ecx, [ebp - 0x1b0]
call fcn.00408440
mov ecx, 0x42d4dc
call fcn.004084e0
movzx ecx, al
test ecx, ecx
jne 0x40839f
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x228], edx
cmp dword [ebp - 0x228], 0
je 0x40834a
cmp dword [ebp - 0x228], 1
je 0x40834c
jmp 0x408365
jmp 0x40839f
sub esp, 0xc
mov ecx, esp
push 0x42d4fc
call fcn.00402c60
call fcn.00408550
add esp, 0xc
jmp 0x40839f
push 0
push str.SelfDelete
call fcn.00404bf0
add esp, 8
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x40839f
mov eax, dword [ebp - 0x1c]
movzx ecx, word [eax]
cmp ecx, 0x31
jne 0x40839f
sub esp, 0xc
mov ecx, esp
push 0x42d4fc
call fcn.00402c60
call fcn.00408550
add esp, 0xc
mov dword [ebp - 0x224], 0
lea ecx, [ebp - 0x38]
call fcn.00414ca0
lea ecx, [ebp - 0x14]
call fcn.00414ca0
lea ecx, [ebp - 0x5c]
call fcn.00414ca0
lea ecx, [ebp - 0x2c]
call fcn.00414ca0
lea ecx, [ebp - 0x68]
call fcn.00414ca0
mov eax, dword [ebp - 0x224]
pop esi
mov esp, ebp
pop ebp
ret