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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
call esi
cmp eax, 0xf4240
je 0x407640
call esi
cmp eax, 0x1a2890
je 0x407640
push 0x4066b8
call fcn.0041b5b8
pop ecx
call fcn.004036c9
lea eax, [ebp - 0x224]
mov dword [ebp - 0x224], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x407627
cmp dword [ebp - 0x214], 2
jne 0x407627
cmp dword [ebp - 0x220], 5
jb 0x407627
lea ecx, [ebp - 0x38]
mov byte [str.___InstallEnd__], 0x3b
mov byte [str.___Install__UTF_8_], 0x3b
call fcn.00411486
lea ecx, [ebp - 0xb8]
call fcn.00411486
lea ecx, [ebp - 0x64]
call fcn.00411486
call fcn.00406390
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea eax, [ebp - 0x38]
push eax
call esi
push eax
call fcn.00404cf6
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x64]
call fcn.004115b8
lea eax, [ebp - 0x64]
push eax
call fcn.00405174
mov edi, dword [ebp - 0x64]
xor ebx, ebx
inc ebx
push ebx
push 0x426d40
push str.SfxVarModulePlatform
call fcn.0040575f
add esp, 0x10
push ebx
call fcn.00404435
push eax
push str.SfxVarSystemPlatform
call fcn.0040575f
add esp, 0xc
push ebx
call esi
push eax
push str.SfxVarCmdLine0
call fcn.0040575f
movzx eax, word [0x430e68]
lea ecx, [ebp - 0x38]
add esp, 0xc
push eax
push 0x427b50
push 0x20
pop eax
push eax
call fcn.00404031
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov esi, dword [ebp - 0x38]
push esi
call fcn.00404eab
xor ecx, ecx
mov dword [ebp - 0x34], eax
push ebx
mov word [esi + eax*2], cx
push dword [ebp - 0x38]
push str.SfxVarSystemLanguage
call fcn.0040575f
push str.sfxlang
push edi
call fcn.00405c24
add esp, 0x24
push 0x3a
pop ecx
test eax, eax
je 0x406862
cmp word [eax], cx
jne 0x406862
add eax, 2
push eax
call fcn.0041b100
pop ecx
test eax, eax
jle 0x406857
movzx edx, word [0x430e68]
cmp eax, 0xffff
movzx ecx, ax
cmovle edx, ecx
mov word [0x430e68], dx
push 0x20
pop eax
add edi, 2
cmp word [edi], ax
ja 0x40685a
push str.sfxversion
push edi
call fcn.00405c24
pop ecx
pop ecx
test eax, eax
je 0x40687f
call fcn.0040648f
xor ebx, ebx
jmp 0x407605
push str.sfxwaitall
push edi
call fcn.00405c24
pop ecx
pop ecx
test eax, eax
je 0x40689d
push eax
call fcn.00401e60
mov ebx, eax
jmp 0x407604
push str.sfxelevation
xor ebx, ebx
push edi
mov byte [ebp - 1], bl
call fcn.00405c24
pop ecx
pop ecx
test eax, eax
je 0x4068b9
mov byte [ebp - 1], 1
mov edi, eax
mov eax, 0x208
mov ecx, 0x430fbc
push eax
push eax
call fcn.00404031
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x4068e7
xor ebx, ebx
inc ebx
push 6
push ebx
call fcn.00409ae1
pop ecx
jmp 0x407604
mov esi, dword [0x430fbc]
push esi
call fcn.00404eab
xor ecx, ecx
mov dword [0x430fc0], eax
mov dword [esp], str.sfxtest
push edi
mov word [esi + eax*2], cx
call fcn.00405c24
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x406acf
push 0x3a
pop edx
cmp word [esi], dx
jne 0x4069f9
movzx ecx, word [esi + 2]
push 0x20
mov eax, ecx
pop edi
or eax, edi
sub eax, 0x61
je 0x406a46
dec eax
sub eax, 1
je 0x406a37
sub eax, 1
je 0x4069b3
sub eax, 0xb
je 0x40695e
sub eax, 7
jne 0x4069f9
mov ebx, 0x4f3c
jmp 0x407605
cmp word [esi + 4], dx
jne 0x407605
movzx eax, word [esi + 6]
sub eax, 0x31
je 0x4069ab
sub eax, 1
je 0x4069a1
sub eax, 1
je 0x40699a
sub eax, 1
je 0x406990
sub eax, 1
jne 0x407605
push 7
jmp 0x406bd1
mov ebx, 0x3eff
jmp 0x407605
push 0x1f
jmp 0x406bd1
mov ebx, 0xc0
jmp 0x407605
xor ebx, ebx
inc ebx
jmp 0x407605
cmp ecx, 0x44
jne 0x406a00
cmp word [esi + 4], dx
jne 0x4069f9
add esi, 6
movzx eax, word [esi]
cmp ax, di
jbe 0x4069f0
push 0x3a
mov ecx, eax
pop ebx
cmp cx, bx
je 0x4069eb
push ecx
mov ecx, 0x431014
call fcn.004018e1
add esi, 2
movzx eax, word [esi]
mov ecx, eax
cmp ax, di
ja 0x4069ce
push 0x3a
xor ebx, ebx
pop edx
cmp dword [0x431018], 0
jne 0x406a03
push 0x64
jmp 0x406bd1
add esi, 4
mov dword [0x43100c], ebx
cmp word [esi], dx
jne 0x406a28
lea eax, [esi + 2]
push eax
call fcn.0041b100
mov dword [0x43100c], eax
pop ecx
cmp eax, 0xe10
ja 0x406a28
test eax, eax
jne 0x406a32
mov dword [0x43100c], 0xa
xor eax, eax
inc eax
jmp 0x406a49
xor eax, eax
cmp word [esi + 4], 0x63
sete al
add eax, 3
jmp 0x406a49
push 2
pop eax
mov dword [0x431010], eax
jmp 0x406a53
add esi, 2
cmp word [esi], di
ja 0x406a50
push str.sfxconfig
push esi
mov edi, esi
call fcn.00405c24
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x406acf
movzx ecx, word [edx]
push 0x3a
pop esi
mov eax, ecx
cmp cx, si
jne 0x406a80
add edx, 2
movzx eax, word [edx]
test ax, ax
je 0x406a9f
push 0x20
movzx ecx, ax
pop ebx
cmp cx, bx
ja 0x406a9d
add edx, 2
movzx eax, word [edx]
mov ecx, eax
test ax, ax
jne 0x406a8b
xor ebx, ebx
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov dword [ebp - 0x34], ebx
mov word [eax], cx
lea eax, [ebp - 0x38]
push eax
push edx
call fcn.00404cf6
cmp dword [0x431010], 2
mov edi, eax
pop ecx
pop ecx
je 0x406acf
lea eax, [ebp - 0x38]
mov ecx, 0x430fbc
push eax
call fcn.00411551
push 0x430fbc
mov ecx, 0x430ed8
call fcn.00411551
push 0x430fbc
mov ecx, 0x430ee4
call fcn.00411551
push 0x430fbc
call fcn.004040ff
mov esi, eax
pop ecx
test esi, esi
js 0x406b99
mov edx, dword [0x430ed8]
xor eax, eax
mov dword [0x430edc], esi
mov ecx, 0x430ee4
mov word [edx + esi*2], ax
mov eax, dword [0x430fbc]
lea eax, [eax + esi*2]
add eax, 2
push eax
call fcn.004115b8
mov eax, dword [0x430fbc]
lea eax, [eax + esi*2]
mov esi, 0x430efc
add eax, 2
mov ecx, esi
push eax
call fcn.004115b8
push 0x2e
mov ecx, esi
call fcn.00411bc2
test eax, eax
jle 0x406b60
mov ecx, dword [0x430efc]
xor edx, edx
mov dword [0x430f00], eax
mov word [ecx + eax*2], dx
push esi
mov esi, 0x430ef0
mov ecx, esi
call fcn.00411551
push 4
call fcn.004041e0
pop ecx
push eax
mov ecx, esi
call fcn.00411756
mov ecx, dword [0x430efc]
mov eax, dword [0x430ef0]
mov dword [0x430e78], ecx
mov dword [0x430e7c], eax
mov dword [0x430ea8], ecx
call fcn.00404435
push eax
mov ecx, 0x430f08
call fcn.004115b8
push dword [0x430fbc]
mov ecx, 0x430f30
call fcn.00401468
test al, al
jne 0x406bd7
push dword [0x430fbc]
push 7
push 1
call fcn.00409ae1
add esp, 0xc
push 2
pop ebx
jmp 0x407605
lea ecx, [ebp - 0x7c]
call fcn.00411331
mov ecx, 0x430fc8
call fcn.00405a56
lea eax, [ebp - 0x7c]
push eax
push ebx
push dword [0x430f34]
call fcn.004049cf
add esp, 0xc
test eax, eax
jne 0x406cfc
mov eax, dword [0x431010]
test eax, eax
jne 0x406c93
push str.sfxconfig
push edi
call fcn.00405c24
mov edx, eax
pop ecx
pop ecx
test edx, edx
je 0x406c8e
movzx ecx, word [edx]
push 0x3a
pop esi
mov eax, ecx
cmp cx, si
jne 0x406c37
add edx, 2
movzx eax, word [edx]
test ax, ax
je 0x4075fc
push 0x20
movzx ecx, ax
pop ebx
movzx esi, cx
cmp cx, bx
ja 0x406c5d
add edx, 2
movzx eax, word [edx]
mov ecx, eax
mov esi, eax
test ax, ax
jne 0x406c46
push 0
pop ebx
test si, si
je 0x4075fc
lea eax, [ebp - 0x7c]
push eax
push edx
call fcn.00405f70
pop ecx
pop ecx
test al, al
jne 0x4075fc
push 0xa
push ebx
call fcn.00409ae1
pop ecx
pop ecx
push 4
jmp 0x407206
mov eax, dword [0x431010]
cmp eax, 4
je 0x4075fc
mov eax, dword [0x4300c0]
mov esi, 0x4300c0
jmp 0x406cdc
push eax
lea eax, [ebp - 0x110]
push str.SfxString_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push ebx
push dword [esi]
call fcn.004041e0
pop ecx
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.0040575f
lea esi, [esi + 0x10]
add esp, 0xc
mov eax, dword [esi]
test eax, eax
jne 0x406ca8
mov esi, 0x430f30
push edi
mov ecx, esi
call fcn.00406080
call fcn.0040197d
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x406d03
push 0x20
pop eax
mov ebx, eax
jmp 0x4075fc
call fcn.004060a2
mov ecx, esi
call fcn.004015a9
mov ecx, 0x430fc8
call fcn.00405a56
push ebx
push ebx
push dword [0x430f34]
call fcn.004049cf
add esp, 0xc
call fcn.004060a2
mov ecx, esi
call fcn.0040149d
call fcn.0040197d
call fcn.004060a2
cmp byte [ebp - 1], 0
jne 0x406e7d
test byte [0x430e9c], 4
je 0x406e7d
call fcn.0040493f
test eax, eax
jne 0x406e7d
lea ecx, [ebp - 0x10]
call fcn.00411486
lea ecx, [ebp - 0x4c]
call fcn.00411486
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00404cf6
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.0041144f
push str.sfxelevation
push 0x426a30
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x58]
push 0x42699c
push eax
call fcn.00411688
add esp, 0xc
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.00411663
add esp, 0xc
push eax
lea eax, [ebp - 0xac]
push eax
call fcn.00411663
add esp, 0xc
lea ecx, [ebp - 0x94]
push 0x20
push eax
call fcn.00411353
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00411643
add esp, 0xc
lea ecx, [ebp - 0x4c]
push dword [eax]
call fcn.004115b8
push dword [ebp - 0xa0]
call fcn.00419919
push dword [ebp - 0x94]
call fcn.00419919
push dword [ebp - 0xac]
call fcn.00419919
push dword [ebp - 0x88]
call fcn.00419919
push dword [ebp - 0x58]
call fcn.00419919
add esp, 0x14
or edi, 0xffffffff
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
push ebx
push 2
push dword [ebp - 0x4c]
call fcn.004025a9
push dword [ebp - 0x2c]
neg eax
sbb ebx, ebx
and ebx, 0xfffffff5
add ebx, 0xb
call fcn.00419919
push dword [ebp - 0x4c]
call fcn.00419919
push dword [ebp - 0x10]
call fcn.00419919
add esp, 0x18
jmp 0x4075fc
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
push eax
mov edi, str.SetEnvironment
push edi
call fcn.0040476f
pop ecx
pop ecx
jmp 0x406ee0
push esi
lea ecx, [ebp - 0x10]
call fcn.0041144f
push 0x3d
push dword [ebp - 0x10]
call fcn.00411840
pop ecx
pop ecx
test eax, eax
jle 0x406ee8
mov ecx, dword [ebp - 0x10]
add esi, 2
mov dword [ebp - 0xc], eax
xor edx, edx
push ebx
mov word [ecx + eax*2], dx
lea eax, [esi + eax*2]
push eax
push dword [ebp - 0x10]
call fcn.0040575f
push dword [ebp - 0x10]
inc dword [ebp - 0x14]
call fcn.00419919
lea eax, [ebp - 0x14]
push eax
push edi
call fcn.0040476f
add esp, 0x18
mov esi, eax
test esi, esi
jne 0x406e93
jmp 0x406ef1
push dword [ebp - 0x10]
call fcn.00419919
pop ecx
call fcn.00406323
mov eax, dword [0x4303b4]
xor ecx, ecx
or edi, 0xffffffff
cmp eax, edi
cmove eax, ecx
mov dword [0x4303b4], eax
cmp byte [0x430f43], cl
je 0x406f73
push ebx
push str.HelpText
call fcn.0040476f
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x406f2f
push 0x18
call fcn.004041e0
pop ecx
mov esi, eax
lea ecx, [ebp - 0x10c]
call fcn.00407c30
push ebx
push esi
push dword [0x430e78]
lea ecx, [ebp - 0x10c]
mov dword [ebp - 0x10c], 0x4279bc
push 0x11
mov dword [ebp - 0xd4], 0x7d6
call fcn.00409c2c
lea ecx, [ebp - 0x10c]
call fcn.00407c91
jmp 0x4075fc
cmp byte [0x430f41], cl
je 0x406f85
and eax, 0xfffffeff
mov dword [0x4303b4], eax
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
push ebx
push str.InstallPath
call fcn.0040476f
mov esi, 0x430ecc
pop ecx
pop ecx
test eax, eax
je 0x406fb1
push eax
mov ecx, esi
call fcn.004115b8
mov byte [0x430ea1], 1
push esi
call fcn.00405f17
push ebx
push str.BeginPromptTimeout
call fcn.0040476f
add esp, 0xc
test eax, eax
je 0x406fd5
push eax
call fcn.0041b100
pop ecx
mov dword [0x430ea4], eax
cmp dword [0x431018], 0
je 0x406fe8
call fcn.00409fc9
jmp 0x406cfc
cmp dword [0x431010], 3
jne 0x406ffb
call fcn.0040a282
jmp 0x406cfc
push ebx
push 0x426a08
push str.SfxVarApiPath
call fcn.0040575f
call fcn.00406323
push ebx
mov esi, str.ExecuteOnLoad
push esi
call fcn.0040476f
add esp, 0x14
test eax, eax
je 0x407088
cmp byte [0x430f42], 0
jne 0x407088
mov ecx, 0x430f14
call fcn.00407983
push ebx
push dword [0x430f18]
push str.SfxVarApiPath
call fcn.0040575f
add esp, 0xc
call fcn.00406323
push 0x426a08
lea ecx, [ebp - 0x2c]
call fcn.0041144f
mov ecx, 0x430f14
call fcn.00407983
mov ecx, 0x426a08
lea eax, [ebp - 0x2c]
push ecx
push eax
push ecx
push dword [0x430f18]
push esi
call fcn.00401edc
push dword [ebp - 0x2c]
call fcn.00419919
add esp, 0x18
mov ecx, 0x430f68
call fcn.00408462
push ebx
push str.BeginPrompt
call fcn.0040476f
pop ecx
pop ecx
test eax, eax
je 0x4070f4
cmp byte [0x430f41], 0
jne 0x4070f4
push eax
push dword [0x430e78]
call fcn.004099f0
pop ecx
pop ecx
test eax, eax
je 0x407204
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x4070e1
xor eax, eax
inc eax
mov byte [0x430f40], al
mov byte [0x430f41], al
cmp dword [0x430fe4], 0
je 0x4070f4
and dword [0x4303b4], 0xffffff7f
lea ecx, [ebp - 0x20]
call fcn.00411486
cmp byte [0x430f40], 0
je 0x40716b
mov esi, dword [0x430f3c]
push str.AutoInstall
lea ecx, [ebp - 0x20]
call fcn.004115b8
movzx eax, word [esi]
lea ecx, [ebp - 0x20]
push eax
call fcn.004018e1
push ebx
push dword [ebp - 0x20]
call fcn.0040476f
pop ecx
pop ecx
test eax, eax
je 0x40720c
add esi, 2
movzx eax, word [esi]
cmp eax, 0x30
jb 0x407147
cmp eax, 0x39
jbe 0x40710b
push 0x61
pop ecx
cmp ax, cx
jb 0x407154
cmp eax, 0x7a
jbe 0x40710b
cmp eax, 0x41
jb 0x40715e
cmp eax, 0x5a
jbe 0x40710b
push str.AutoInstall
lea ecx, [ebp - 0x20]
call fcn.004115b8
cmp dword [ebp - 0x1c], 0
mov byte [ebp - 0x3c], bl
jne 0x4071ba
push ebx
push str.ExecuteFile
call fcn.0040476f
pop ecx
pop ecx
test eax, eax
je 0x407196
push str.ExecuteFile
lea ecx, [ebp - 0x20]
call fcn.004115b8
mov byte [ebp - 0x3c], 1
cmp dword [ebp - 0x1c], 0
jne 0x4071ba
push ebx
push str.RunProgram
call fcn.0040476f
pop ecx
pop ecx
test eax, eax
je 0x4071ba
push str.RunProgram
lea ecx, [ebp - 0x20]
call fcn.004115b8
cmp byte [0x430f40], 0
jne 0x407226
cmp byte [0x430f41], 0
jne 0x407226
mov eax, dword [0x4303b4]
and al, 0xc0
cmp al, 0x80
jne 0x407226
push dword [0x430e8c]
push dword [0x430e88]
call fcn.00409bda
pop ecx
pop ecx
test eax, eax
jne 0x407226
cmp byte [0x430ea0], al
je 0x40721e
push dword [ebp - 0x20]
call fcn.00419919
pop ecx
jmp 0x407092
push 5
pop ebx
jmp 0x4075fc
push dword [ebp - 0x20]
push 0xe
push ebx
call fcn.00409ae1
add esp, 0xc
push 6
jmp 0x407220
push 5
pop ebx
jmp 0x4075f3
cmp dword [0x430ed0], 0
jne 0x40725a
lea eax, [ebp - 0x58]
push str.7ZipSfx._03x
push eax
call fcn.00403be2
pop ecx
pop ecx
push eax
mov ecx, 0x430ecc
call fcn.00411551
push dword [ebp - 0x58]
call fcn.00419919
mov byte [0x430ea1], bl
jmp 0x407292
mov esi, 0x430ecc
lea ecx, [ebp - 0x10]
push esi
call fcn.0041141e
lea eax, [ebp - 0x10]
push eax
call fcn.00405f17
cmp dword [ebp - 0xc], 0
pop ecx
je 0x407283
lea eax, [ebp - 0x10]
mov ecx, esi
push eax
call fcn.00411551
push dword [ebp - 0x10]
mov byte [0x430ea1], 1
call fcn.00419919
mov edx, dword [0x430ed0]
pop ecx
mov ecx, dword [0x430ecc]
movzx eax, word [ecx + edx*2 - 2]
cmp eax, 0x5c
je 0x4072ae
cmp eax, 0x2f
jne 0x4072bc
lea eax, [edx - 1]
xor edx, edx
mov dword [0x430ed0], eax
mov word [ecx + eax*2], dx
cmp byte [0x430f41], 0
je 0x4072cc
or dword [0x430e9c], 3
push str.PreExtract
lea ecx, [ebp - 0x70]
call fcn.0041144f
mov eax, dword [0x430f3c]
lea ecx, [ebp - 0x70]
movzx eax, word [eax]
push eax
call fcn.004018e1
push ebx
push dword [ebp - 0x70]
call fcn.0040476f
pop ecx
pop ecx
test eax, eax
je 0x407367
cmp byte [0x430f42], 0
jne 0x407367
mov ecx, 0x430f14
call fcn.00407983
push ebx
push dword [0x430f18]
push str.SfxVarApiPath
call fcn.0040575f
add esp, 0xc
call fcn.00406323
push 0x426a08
lea ecx, [ebp - 0x2c]
call fcn.0041144f
mov esi, dword [0x430f3c]
mov ecx, 0x430f14
call fcn.00407983
push 0x426a08
lea eax, [ebp - 0x2c]
push eax
push esi
push dword [0x430f18]
push str.PreExtract
call fcn.00401edc
push dword [ebp - 0x2c]
call fcn.00419919
add esp, 0x18
cmp dword [0x43100c], 0
jne 0x40737d
push 0x430ecc
call fcn.00402a11
pop ecx
jmp 0x40738b
call fcn.004083b9
test eax, eax
jne 0x40739b
mov eax, 0x80004005
test eax, eax
je 0x40739b
call fcn.0040637a
push 8
jmp 0x407469
call fcn.00406323
cmp byte [0x430f42], 0
je 0x4073b6
cmp byte [0x430ea1], 0
jne 0x407524
lea ecx, [ebp - 0x10]
call fcn.00411486
lea ecx, [ebp - 0x4c]
call fcn.00411486
cmp byte [0x430f40], 0
jne 0x4073d9
lea eax, [ebp - 0x10]
push eax
call fcn.004022b6
pop ecx
cmp dword [ebp - 0x1c], 0
jne 0x4074a3
cmp byte [0x430ea1], 0
jne 0x4074c1
push str.setup.exe
push 0x426bc8
lea eax, [ebp - 0x88]
push 0x430ecc
push eax
call fcn.00411663
add esp, 0xc
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.00411663
add esp, 0xc
lea ecx, [ebp - 0x4c]
push dword [eax]
call fcn.004115b8
push dword [ebp - 0x58]
call fcn.00419919
push dword [ebp - 0x88]
call fcn.00419919
pop ecx
pop ecx
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, edi
jne 0x40746f
call fcn.0040637a
push 0xf
push ebx
call fcn.00409ae1
push dword [ebp - 0x4c]
call fcn.00419919
push dword [ebp - 0x10]
call fcn.00419919
add esp, 0x10
push 7
pop ebx
jmp 0x4075ea
mov esi, dword [0x430ecc]
lea ecx, [ebp - 0x2c]
push str.setup.exe
call fcn.0041144f
push dword [ebp - 0x40]
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x3c]
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.00401fa8
push dword [ebp - 0x2c]
call fcn.00419919
add esp, 0x18
jmp 0x4074c1
push dword [ebp - 0x40]
lea eax, [ebp - 0x10]
push eax
push dword [0x430f3c]
push dword [0x430ecc]
push dword [ebp - 0x20]
call fcn.00401edc
add esp, 0x14
cmp dword [0x431010], 0
jne 0x407512
call fcn.00406323
push edi
push dword [0x430f3c]
push str.Shortcut
push 0x405cea
call fcn.00405dc7
add esp, 0x10
push dword [0x430ed8]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push edi
push dword [0x430f3c]
push str.Delete
push 0x405cbb
call fcn.00405dc7
add esp, 0x10
call fcn.0040637a
push dword [ebp - 0x4c]
call fcn.00419919
push dword [ebp - 0x10]
call fcn.00419919
pop ecx
pop ecx
mov eax, dword [0x4303c0]
cmp eax, edi
jne 0x40753e
cmp byte [0x430f41], 0
jne 0x4075aa
xor eax, eax
inc eax
mov dword [0x4303c0], eax
test eax, eax
jle 0x4075aa
push ebx
push str.FinishMessage
call fcn.0040476f
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4075aa
mov ecx, dword [0x4303c0]
mov eax, 0x3e7
cmp ecx, eax
cmovg ecx, eax
mov dword [0x4303c0], ecx
lea ecx, [ebp - 0x108]
call fcn.00407c30
push ebx
push esi
push dword [0x430e78]
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x108], 0x42798c
push 0x11
mov dword [ebp - 0xd0], 0x7d5
call fcn.00409c2c
lea ecx, [ebp - 0x108]
call fcn.00407c91
cmp byte [0x430f42], 0
jne 0x4075ea
cmp dword [0x431010], 0
jne 0x4075ea
push ebx
push str.SelfDelete
call fcn.0040476f
pop ecx
pop ecx
test eax, eax
je 0x4075ea
cmp word [eax], 0x31
jne 0x4075ea
sub esp, 0xc
mov ecx, esp
push 0x430fbc
call fcn.0041141e
call fcn.00405a7a
add esp, 0xc
push dword [ebp - 0x70]
call fcn.00419919
pop ecx
push dword [ebp - 0x20]
call fcn.00419919
pop ecx
push dword [ebp - 0x7c]
call fcn.00419919
pop ecx
push dword [ebp - 0x64]
call fcn.00419919
push dword [ebp - 0xb8]
call fcn.00419919
push dword [ebp - 0x38]
call fcn.00419919
add esp, 0xc
mov eax, ebx
jmp 0x407643
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
jmp 0x407643
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
leave
ret 0x10