Function at 0x406566
Capabilities:
Accept command line arguments
Check for time delay via gettickcount
Check if file exists
Check os version
Get file attributes
Log keystrokes via polling
Resolve function by parsing pe exports
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20c
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
cmp eax, 0x1a2890
je 0x40659c
call esi
cmp eax, 0x7a33
je 0x40659c
call esi
cmp eax, 0xf4240
jne 0x40659e
jmp 0x40659c
push 0x40654f
call fcn.0041e072
pop ecx
call fcn.00404b37
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.FreeConsole
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
lea eax, [esp + 0x100]
push eax
mov dword [esp + 0x104], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x407546
cmp dword [esp + 0x110], 2
jne 0x407546
cmp dword [esp + 0x104], 5
jb 0x407546
lea eax, [esp + 0x54]
mov byte [str.___InstallEnd__], 0x3b
mov byte [str.___Install__UTF_8_], 0x3b
call fcn.00401000
lea eax, [esp + 0x84]
call fcn.00401000
lea eax, [esp + 0x6c]
call fcn.00401000
call fcn.00405b94
mov edi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
call edi
mov ecx, eax
lea eax, [esp + 0x54]
call fcn.00403688
push eax
lea eax, [esp + 0x70]
call fcn.0040100c
lea eax, [esp + 0x6c]
push eax
call fcn.00403cb5
pop ecx
lea eax, [esp + 0x6c]
call fcn.0040bba5
xor esi, esi
inc esi
push esi
mov ebx, eax
push 0x427c90
push str.SfxVarModulePlatform
mov dword [esp + 0x1c], ebx
call fcn.00403543
add esp, 0xc
push esi
call fcn.0040544d
push eax
push str.SfxVarSystemPlatform
call fcn.00403543
add esp, 0xc
push esi
call edi
push eax
push str.SfxVarCmdLine0
call fcn.00403543
movzx eax, word [0x430280]
add esp, 0xc
push eax
push 0x428ee8
push 0x20
lea eax, [esp + 0x60]
call fcn.00403465
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [esp + 0x54]
push eax
call fcn.00403447
push esi
lea eax, [esp + 0x58]
call fcn.0040bba5
push eax
push str.SfxVarSystemLanguage
call fcn.00403543
add esp, 0xc
push str.sfxlang
mov eax, ebx
call fcn.00405fcc
pop ecx
test eax, eax
je 0x406737
cmp word [eax], 0x3a
jne 0x406737
add eax, 2
push eax
call fcn.0041d472
pop ecx
lea ecx, [eax - 1]
cmp ecx, 0xfffe
ja 0x40671d
mov word [0x430280], ax
add ebx, 2
cmp word [ebx], 0x20
mov dword [esp + 0x10], ebx
jbe 0x406737
add ebx, 2
cmp word [ebx], 0x20
ja 0x40672a
mov dword [esp + 0x10], ebx
push str.sfxversion
mov eax, ebx
call fcn.00405fcc
pop ecx
test eax, eax
je 0x406774
call fcn.0040644b
xor esi, esi
lea eax, [esp + 0x6c]
call fcn.0040177f
lea eax, [esp + 0x84]
call fcn.0040177f
lea eax, [esp + 0x54]
call fcn.0040177f
mov eax, esi
jmp 0x40755d
push str.sfxwaitall
mov eax, ebx
call fcn.00405fcc
pop ecx
test eax, eax
je 0x40678e
call fcn.00401fdd
mov esi, eax
jmp 0x40674f
push str.sfxelevation
mov eax, ebx
mov byte [esp + 0x13], 0
call fcn.00405fcc
pop ecx
test eax, eax
je 0x4067af
mov ebx, eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x10], ebx
mov eax, 0x208
push eax
push eax
mov edi, 0x4303dc
mov eax, edi
call fcn.00403465
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x4067de
push 6
push esi
call fcn.00409e54
pop ecx
pop ecx
jmp 0x40674f
push edi
call fcn.00403447
push str.sfxtest
mov eax, ebx
call fcn.00405fcc
mov ebx, eax
pop ecx
test ebx, ebx
je 0x406989
cmp word [ebx], 0x3a
je 0x406809
push 0x64
pop esi
jmp 0x40674f
movzx ecx, word [ebx + 2]
mov eax, ecx
or eax, 0x20
sub eax, 0x61
je 0x406918
dec eax
dec eax
je 0x406904
dec eax
je 0x40687e
sub eax, 0xb
je 0x40683a
sub eax, 7
jne 0x406801
mov esi, 0x4f3d
jmp 0x40674f
cmp word [ebx + 4], 0x3a
jne 0x40674d
movzx eax, word [ebx + 6]
sub eax, 0x31
je 0x40674f
dec eax
je 0x406874
dec eax
je 0x406870
dec eax
je 0x406866
dec eax
jne 0x40674d
push 7
jmp 0x406803
mov esi, 0x3eff
jmp 0x40674f
push 0x1f
jmp 0x406803
mov esi, 0x4fe
jmp 0x40674f
cmp ecx, 0x44
jne 0x4068c8
cmp word [ebx + 4], 0x3a
jne 0x406801
add ebx, 6
jmp 0x4068ad
cmp ax, 0x3a
je 0x4068b5
movzx eax, ax
push eax
mov esi, 0x430404
call fcn.00401cb6
xor esi, esi
add ebx, 2
inc esi
movzx eax, word [ebx]
cmp eax, 0x20
ja 0x406893
mov ecx, 0x430404
call fcn.004059b8
test al, al
je 0x4068cb
jmp 0x406801
add ebx, 4
and dword [0x4302c4], 0
cmp word [ebx], 0x3a
jne 0x4068f2
lea eax, [ebx + 2]
push eax
call fcn.0041d472
pop ecx
mov dword [0x4302c4], eax
cmp eax, 0xe10
ja 0x4068f2
test eax, eax
jne 0x4068fc
mov dword [0x4302c4], 0xa
mov dword [0x4302c8], esi
jmp 0x406927
xor eax, eax
cmp word [ebx + 4], 0x63
sete al
add eax, 3
mov dword [0x4302c8], eax
jmp 0x406927
mov dword [0x4302c8], 2
jmp 0x406927
add ebx, 2
cmp word [ebx], 0x20
ja 0x406924
push str.sfxconfig
mov eax, ebx
mov dword [esp + 0x14], ebx
call fcn.00405fcc
mov ebx, eax
pop ecx
test ebx, ebx
je 0x406989
cmp word [ebx], 0x3a
jne 0x406955
jmp 0x406952
cmp ax, 0x20
ja 0x40695d
add ebx, 2
movzx eax, word [ebx]
test ax, ax
jne 0x40694c
lea eax, [esp + 0x54]
call fcn.004025ef
lea eax, [esp + 0x54]
mov ecx, ebx
call fcn.00403688
cmp dword [0x4302c8], 2
mov dword [esp + 0x10], eax
je 0x406989
lea ebx, [esp + 0x54]
mov eax, edi
call fcn.00402502
mov esi, 0x4302f8
mov ebx, edi
mov eax, esi
call fcn.00402502
mov eax, 0x430304
call fcn.00402502
push edi
call fcn.00404b10
mov ebx, eax
pop ecx
test ebx, ebx
js 0x406a3a
mov ecx, esi
call fcn.00401799
mov eax, edi
lea esi, [ebx + ebx]
call fcn.0040bba5
lea eax, [eax + esi + 2]
push eax
mov eax, 0x430304
call fcn.0040100c
mov eax, edi
call fcn.0040bba5
lea eax, [eax + esi + 2]
push eax
mov ebx, 0x43031c
mov eax, ebx
call fcn.0040100c
push 0x2e
pop edx
mov ecx, ebx
call fcn.004127b4
test eax, eax
jle 0x4069ff
mov ecx, ebx
call fcn.00401799
mov esi, 0x430310
mov eax, esi
call fcn.00402502
push 4
call fcn.00405235
pop ecx
push eax
call fcn.00412695
mov eax, ebx
call fcn.0040bba5
mov ebx, eax
mov eax, esi
mov dword [0x42df08], ebx
call fcn.0040bba5
mov dword [0x42df10], eax
mov dword [0x430284], ebx
call fcn.0040544d
push eax
mov eax, 0x430328
call fcn.0040100c
mov eax, edi
call fcn.0040bba5
push eax
call fcn.004013ba
test al, al
jne 0x406a76
mov eax, edi
call fcn.0040bba5
push eax
push 7
push 1
call fcn.00409e54
add esp, 0xc
push 2
jmp 0x406803
lea eax, [esp + 0x24]
call fcn.004033a4
call fcn.00407728
lea eax, [esp + 0x24]
push eax
xor ebx, ebx
push ebx
call fcn.00405b03
mov esi, eax
call fcn.004057d0
mov esi, eax
pop ecx
pop ecx
cmp esi, ebx
je 0x406aae
lea eax, [esp + 0x24]
call fcn.0040177f
jmp 0x40674f
cmp dword [0x4302c8], ebx
jne 0x406b27
mov eax, dword [esp + 0x10]
push str.sfxconfig
call fcn.00405fcc
pop ecx
cmp eax, ebx
je 0x406b27
cmp word [eax], 0x3a
jne 0x406ad2
add eax, 2
movzx ecx, word [eax]
cmp cx, bx
je 0x406d36
cmp cx, 0x20
ja 0x406aef
add eax, 2
movzx ecx, word [eax]
cmp cx, bx
jne 0x406ade
cmp word [eax], bx
je 0x406d36
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.00405e2f
pop ecx
pop ecx
test al, al
jne 0x406d36
push 0xa
push ebx
call fcn.00409e54
pop ecx
pop ecx
lea eax, [esp + 0x24]
call fcn.0040177f
push 4
jmp 0x406803
cmp dword [0x4302c8], 4
je 0x406d36
mov eax, dword [0x42cdd0]
mov esi, 0x42cdd0
jmp 0x406b76
push eax
lea eax, [esp + 0xac]
push str.SfxString_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push ebx
push dword [esi]
call fcn.00405235
pop ecx
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.00403543
add esp, 0xc
add esi, 0x10
mov eax, dword [esi]
cmp eax, ebx
jne 0x406b40
push dword [esp + 0x10]
call fcn.00405b2b
call fcn.00401920
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x406ba0
lea eax, [esp + 0x24]
call fcn.0040177f
push 0x20
jmp 0x406803
call fcn.00406044
call fcn.004013f7
call fcn.00407728
push ebx
push ebx
call fcn.00405b03
mov esi, eax
call fcn.004057d0
pop ecx
pop ecx
call fcn.00406044
call fcn.00401490
call fcn.00401920
call fcn.00406044
cmp byte [esp + 0xf], bl
jne 0x406d44
test byte [0x430290], 4
je 0x406d44
call fcn.004054a7
test eax, eax
jne 0x406d44
lea eax, [esp + 0x48]
call fcn.00401000
lea eax, [esp + 0x30]
call fcn.00401000
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, eax
lea eax, [esp + 0x48]
call fcn.00403688
push eax
lea eax, [esp + 0x64]
push eax
call fcn.00401784
lea eax, [esp + 0x60]
push eax
push 0x20
push str.sfxelevation
push 0x42796c
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.0041254c
pop ecx
pop ecx
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.0041251b
add esp, 0xc
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.0041251b
add esp, 0xc
push eax
lea eax, [esp + 0xa8]
push eax
call fcn.004025d9
add esp, 0xc
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.004124e4
add esp, 0xc
call fcn.0040bba5
push eax
lea eax, [esp + 0x34]
call fcn.0040100c
lea eax, [esp + 0x14]
call fcn.0040bbea
lea eax, [esp + 0x9c]
call fcn.0040bbea
lea eax, [esp + 0x90]
call fcn.0040bbea
lea eax, [esp + 0x78]
call fcn.0040bbea
lea eax, [esp + 0x3c]
call fcn.0040bbea
push 0xffffffffffffffff
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
push ebx
push 2
lea eax, [esp + 0x38]
call fcn.0040bba5
push eax
call fcn.004020c6
add esp, 0xc
test eax, eax
lea eax, [esp + 0x60]
jne 0x406d1f
call fcn.0040177f
lea eax, [esp + 0x30]
call fcn.0040177f
lea eax, [esp + 0x48]
call fcn.0040177f
lea eax, [esp + 0x24]
call fcn.0040177f
push 0xb
jmp 0x406803
call fcn.0040177f
lea eax, [esp + 0x30]
call fcn.0040177f
lea eax, [esp + 0x48]
call fcn.0040177f
lea eax, [esp + 0x24]
call fcn.0040177f
jmp 0x40674d
lea eax, [esp + 0x20]
push eax
mov edi, str.SetEnvironment
push edi
mov dword [esp + 0x28], ebx
call fcn.0040415e
mov esi, eax
pop ecx
pop ecx
cmp esi, ebx
je 0x406dc9
push esi
lea eax, [esp + 0x18]
push eax
call fcn.00401784
lea eax, [esp + 0x14]
call fcn.00405986
mov ebx, eax
test ebx, ebx
jle 0x406dbe
lea ecx, [esp + 0x14]
call fcn.00401799
push 0
lea eax, [esi + ebx*2 + 2]
push eax
lea eax, [esp + 0x1c]
call fcn.0040bba5
push eax
call fcn.00403543
add esp, 0xc
inc dword [esp + 0x20]
lea eax, [esp + 0x14]
call fcn.0040177f
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0040415e
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x406d60
jmp 0x406dc7
lea eax, [esp + 0x14]
call fcn.0040177f
xor ebx, ebx
call fcn.00405cd4
cmp dword [0x42cd98], 0xffffffff
jne 0x406ddd
mov dword [0x42cd98], ebx
call fcn.00405b25
test al, al
je 0x406e2c
push ebx
push str.HelpText
call fcn.0040415e
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
jne 0x406e03
push 0x18
call fcn.00405235
pop ecx
mov edi, eax
lea esi, [esp + 0xa8]
call fcn.00405a6c
push ebx
push edi
push dword [0x42df08]
mov eax, esi
push 0x11
call fcn.00408840
mov ecx, esi
call fcn.0040652d
jmp 0x406d36
call fcn.00405b19
test al, al
je 0x406e3f
and dword [0x42cd98], 0xfffffeff
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push str.InstallPath
call fcn.0040415e
pop ecx
pop ecx
mov esi, 0x4302ec
cmp eax, ebx
je 0x406e6b
push eax
mov eax, esi
call fcn.0040100c
mov byte [0x42deec], 1
call fcn.00405c9a
push ebx
push str.BeginPromptTimeout
call fcn.0040415e
pop ecx
pop ecx
cmp eax, ebx
je 0x406e8d
push eax
call fcn.0041d472
pop ecx
mov dword [0x43029c], eax
mov ecx, 0x430404
call fcn.004059b8
test al, al
jne 0x406ea7
call fcn.0040a188
mov esi, eax
jmp 0x406aa0
cmp dword [0x4302c8], 3
jne 0x406eb7
call fcn.0040a419
jmp 0x406ea0
push 0
mov edi, 0x427944
push edi
mov ebx, str.SfxVarApiPath
push ebx
call fcn.00403543
add esp, 0xc
call fcn.00405cd4
push 0
push str.ExecuteOnLoad
call fcn.0040415e
pop ecx
pop ecx
mov esi, 0x430334
test eax, eax
je 0x406f37
call fcn.00405b1f
test al, al
jne 0x406f37
push 0
mov ecx, esi
call fcn.00405ac7
push eax
push ebx
call fcn.00403543
add esp, 0xc
call fcn.00405cd4
push edi
push edi
lea eax, [esp + 0x44]
push eax
call fcn.00401784
push eax
mov ecx, esi
call fcn.00405ac7
push eax
push str.ExecuteOnLoad
mov eax, edi
call fcn.0040250e
add esp, 0x10
lea eax, [esp + 0x3c]
call fcn.0040177f
call fcn.00405b4d
push 0
push str.BeginPrompt
call fcn.0040415e
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x406f97
call fcn.00405b19
test al, al
jne 0x406f97
push esi
call fcn.00409c7e
pop ecx
test eax, eax
je 0x4070e8
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x406f84
call fcn.004017a4
call fcn.004017ac
call fcn.00405a0f
test eax, eax
je 0x406f97
and dword [0x42cd98], 0xffffff7f
lea eax, [esp + 0x14]
call fcn.00401000
call fcn.00405b13
test al, al
je 0x407016
call fcn.00405b0d
mov ebx, eax
push str.AutoInstall
lea eax, [esp + 0x18]
call fcn.0040100c
movzx eax, word [ebx]
push eax
lea esi, [esp + 0x18]
call fcn.00401cb6
push 0
mov eax, esi
call fcn.0040bba5
push eax
call fcn.0040415e
pop ecx
pop ecx
test eax, eax
je 0x4070b4
add ebx, 2
movzx eax, word [ebx]
cmp eax, 0x30
jb 0x406ff4
cmp eax, 0x39
jbe 0x406fb0
cmp eax, 0x61
jb 0x406ffe
cmp eax, 0x7a
jbe 0x406fb0
cmp eax, 0x41
jb 0x407008
cmp eax, 0x5a
jbe 0x406fb0
push str.AutoInstall
lea eax, [esp + 0x18]
call fcn.0040100c
lea ecx, [esp + 0x14]
mov byte [esp + 0x20], 0
call fcn.004059b8
test al, al
je 0x40704a
push 0
mov esi, str.ExecuteFile
push esi
call fcn.0040415e
pop ecx
pop ecx
test eax, eax
je 0x40704a
push esi
lea eax, [esp + 0x18]
call fcn.0040100c
mov byte [esp + 0x20], 1
lea ecx, [esp + 0x14]
call fcn.004059b8
test al, al
je 0x407074
push 0
mov esi, str.RunProgram
push esi
call fcn.0040415e
pop ecx
pop ecx
test eax, eax
je 0x407074
push esi
lea eax, [esp + 0x18]
call fcn.0040100c
call fcn.00405b13
test al, al
jne 0x4070f8
call fcn.00405b19
test al, al
jne 0x4070f8
mov eax, dword [0x42cd98]
and eax, 0xc0
cmp al, 0x80
jne 0x4070f8
call fcn.00409d09
test eax, eax
jne 0x4070f8
cmp byte [0x430269], 0
lea eax, [esp + 0x14]
je 0x4070e3
call fcn.0040177f
jmp 0x406f3c
lea eax, [esp + 0x14]
call fcn.0040bba5
push eax
push 0xe
push 0
call fcn.00409e54
add esp, 0xc
lea eax, [esp + 0x14]
call fcn.0040177f
lea eax, [esp + 0x24]
call fcn.0040177f
push 6
jmp 0x406803
call fcn.0040177f
lea eax, [esp + 0x24]
call fcn.0040177f
push 5
jmp 0x406803
mov ecx, 0x4302ec
call fcn.004059b8
test al, al
je 0x407136
push str.7ZipSfx._03x
lea esi, [esp + 0x40]
call fcn.004035ba
mov ebx, eax
pop ecx
mov eax, 0x4302ec
call fcn.00402502
mov eax, esi
call fcn.0040177f
mov byte [0x42deec], 0
mov esi, 0x4302ec
jmp 0x407176
lea eax, [esp + 0x30]
push eax
mov ebx, 0x4302ec
call fcn.004025fb
lea esi, [esp + 0x30]
call fcn.00405c9a
mov ecx, esi
call fcn.004059b8
mov esi, ebx
test al, al
jne 0x407166
lea ebx, [esp + 0x30]
mov eax, esi
call fcn.00402502
lea eax, [esp + 0x30]
mov byte [0x42deec], 1
call fcn.0040177f
mov eax, esi
call fcn.0040ba95
mov ebx, eax
mov eax, esi
call fcn.0040bba5
movzx eax, word [eax + ebx*2 - 2]
cmp eax, 0x5c
je 0x407195
cmp eax, 0x2f
jne 0x40719f
lea eax, [ebx - 1]
mov ecx, esi
call fcn.00401799
call fcn.00405b19
test al, al
je 0x4071af
or dword [0x430290], 3
mov ebx, str.PreExtract
push ebx
lea eax, [esp + 0x34]
push eax
call fcn.00401784
call fcn.00405b0d
movzx eax, word [eax]
push eax
lea esi, [esp + 0x34]
call fcn.00401cb6
xor esi, esi
push esi
lea eax, [esp + 0x34]
call fcn.0040bba5
push eax
call fcn.0040415e
pop ecx
pop ecx
test eax, eax
je 0x407244
call fcn.00405b1f
test al, al
jne 0x407244
push esi
mov esi, 0x430334
mov ecx, esi
call fcn.00405ac7
push eax
push str.SfxVarApiPath
call fcn.00403543
add esp, 0xc
call fcn.00405cd4
push edi
push edi
lea eax, [esp + 0x44]
push eax
call fcn.00401784
push eax
call fcn.00405b0d
mov ecx, esi
mov edi, eax
call fcn.00405ac7
push eax
push ebx
mov eax, edi
call fcn.0040250e
add esp, 0x10
lea eax, [esp + 0x3c]
call fcn.0040177f
xor esi, esi
cmp dword [0x4302c4], esi
jne 0x407253
call fcn.00402ea5
jmp 0x407261
call fcn.00409f51
test eax, eax
jne 0x40728c
mov eax, 0x80004005
cmp eax, esi
je 0x40728c
call fcn.00406532
lea eax, [esp + 0x30]
call fcn.0040177f
lea eax, [esp + 0x14]
call fcn.0040177f
lea eax, [esp + 0x24]
call fcn.0040177f
push 8
jmp 0x406803
call fcn.00405cd4
call fcn.00405b1f
test al, al
je 0x4072a7
cmp byte [0x42deec], 0
jne 0x40745b
lea eax, [esp + 0x48]
call fcn.00401000
lea eax, [esp + 0x60]
call fcn.00401000
call fcn.00405b13
test al, al
jne 0x4072cb
lea eax, [esp + 0x48]
call fcn.00401cf1
lea ecx, [esp + 0x14]
call fcn.004059b8
test al, al
je 0x4073c3
cmp byte [0x42deec], 0
jne 0x4073f2
mov edi, str.setup.exe
push edi
push 0x427b18
mov ebx, 0x4302ec
lea eax, [esp + 0x80]
push ebx
push eax
call fcn.0041251b
add esp, 0xc
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0041251b
add esp, 0xc
call fcn.0040bba5
push eax
lea eax, [esp + 0x64]
call fcn.0040100c
lea eax, [esp + 0x3c]
call fcn.0040bbea
lea eax, [esp + 0x78]
call fcn.0040bbea
lea eax, [esp + 0x60]
call fcn.0040bba5
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40738f
call fcn.00406532
push 0xf
push esi
call fcn.00409e54
pop ecx
pop ecx
lea eax, [esp + 0x60]
call fcn.0040177f
lea eax, [esp + 0x48]
call fcn.0040177f
lea eax, [esp + 0x30]
call fcn.0040177f
lea eax, [esp + 0x14]
call fcn.0040177f
lea eax, [esp + 0x24]
call fcn.0040177f
jmp 0x406862
push dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0x28]
mov eax, ebx
call fcn.0040bba5
push eax
push edi
lea eax, [esp + 0x50]
push eax
call fcn.00401784
push eax
call fcn.004021dd
add esp, 0x14
lea eax, [esp + 0x3c]
call fcn.0040177f
jmp 0x4073f2
push dword [esp + 0x10]
lea eax, [esp + 0x4c]
push eax
call fcn.00405b0d
mov edi, eax
mov eax, 0x4302ec
call fcn.0040bba5
push eax
lea eax, [esp + 0x20]
call fcn.0040bba5
push eax
mov eax, edi
call fcn.0040250e
add esp, 0x10
cmp dword [0x4302c8], esi
jne 0x407449
call fcn.00405cd4
push 0xffffffffffffffff
call fcn.00405b0d
push eax
push str.Shortcut
push 0x40627c
call fcn.00406389
add esp, 0x10
mov eax, 0x4302f8
call fcn.0040bba5
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0xffffffffffffffff
call fcn.00405b0d
push eax
push 0x427a94
push 0x406354
call fcn.00406389
add esp, 0x10
call fcn.00406532
lea eax, [esp + 0x60]
call fcn.0040177f
lea eax, [esp + 0x48]
call fcn.0040177f
cmp dword [0x42cda4], 0xffffffff
jne 0x407477
call fcn.00405b19
test al, al
jne 0x4074cb
mov dword [0x42cda4], 1
cmp dword [0x42cda4], esi
jle 0x4074cb
push esi
push str.FinishMessage
call fcn.0040415e
mov edi, eax
pop ecx
pop ecx
cmp edi, esi
je 0x4074cb
mov eax, 0x3e7
cmp dword [0x42cda4], eax
jle 0x4074a4
mov dword [0x42cda4], eax
lea esi, [esp + 0xa8]
call fcn.00405a1f
push 0
push edi
push dword [0x42df08]
mov eax, esi
push 0x11
call fcn.00408840
mov ecx, esi
call fcn.0040652d
xor esi, esi
call fcn.00405b1f
test al, al
jne 0x407509
cmp dword [0x4302c8], esi
jne 0x407509
push esi
push str.SelfDelete
call fcn.0040415e
pop ecx
pop ecx
cmp eax, esi
je 0x407509
cmp word [eax], 0x31
jne 0x407509
sub esp, 0xc
push esp
mov ebx, 0x4303dc
call fcn.004025fb
call fcn.00407564
add esp, 0xc
lea eax, [esp + 0x30]
call fcn.0040177f
lea eax, [esp + 0x14]
call fcn.0040177f
lea eax, [esp + 0x24]
call fcn.0040177f
lea eax, [esp + 0x6c]
call fcn.0040177f
lea eax, [esp + 0x84]
call fcn.0040177f
lea eax, [esp + 0x54]
call fcn.0040177f
xor eax, eax
jmp 0x40755d
push 0x10
push str.7_Zip_SFX
push str.Sorry__this_program_requires_Microsoft_Windows_2000_or_later.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x14
pop eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret