Function at 0x407aa0
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
Set current directory

Disassembly:
sub esp, 0x1ec
push esi
call dword [sym.imp.KERNEL32.dll_FreeConsole]
push 0x407430
call fcn.0041b578
add esp, 4
call fcn.00403ff0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
cmp eax, 0x1a2890
je 0x407ae6
call esi
cmp eax, 0x7a33
je 0x407ae6
call esi
cmp eax, 0xf4240
jne 0x407ae8
jmp 0x407ae6
lea eax, [esp + 0xdc]
push eax
mov dword [esp + 0xe0], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x408e00
cmp dword [esp + 0xec], 2
jne 0x408e00
cmp dword [esp + 0xe0], 5
jb 0x408e00
push ebp
mov al, 0x3b
push edi
lea ecx, [esp + 0xc]
mov byte [str.___InstallEnd__], al
mov byte [str.___Install__UTF_8_], al
call fcn.004159a0
lea ecx, [esp + 0x24]
call fcn.004159a0
lea ecx, [esp + 0x18]
call fcn.004159a0
call fcn.00406d80
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea ecx, [esp + 0xc]
push ecx
call esi
push eax
call fcn.00403960
add esp, 8
push eax
lea ecx, [esp + 0x1c]
call fcn.00415f20
lea edx, [esp + 0x18]
push edx
call fcn.00405930
mov edi, dword [esp + 0x1c]
push 1
push 0x422b9c
push str.SfxVarModulePlatform
call fcn.004064a0
add esp, 0x10
push 1
call fcn.00404770
push eax
push str.SfxVarSystemPlatform
call fcn.004064a0
add esp, 0xc
push 1
call esi
push eax
push str.SfxVarCmdLine0
call fcn.004064a0
movzx eax, word [0x42920c]
add esp, 0xc
push eax
push 0x423b34
push 0x20
lea ecx, [esp + 0x18]
call fcn.004052a0
mov ebp, dword [sym.imp.USER32.dll_wsprintfW]
push eax
call ebp
mov ecx, dword [esp + 0x18]
xor eax, eax
add esp, 0xc
cmp word [ecx], ax
je 0x407bf8
jmp 0x407bf0
inc eax
cmp word [ecx + eax*2], 0
jne 0x407bf0
push ebx
mov dword [esp + 0x14], eax
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [esp + 0x10]
push 1
push eax
push str.SfxVarSystemLanguage
call fcn.004064a0
push str.sfxlang
push edi
call fcn.004070d0
add esp, 0x14
mov ebx, 0x3a
test eax, eax
je 0x407c5f
cmp word [eax], bx
jne 0x407c5f
add eax, 2
push eax
call fcn.0041a958
lea ecx, [eax - 1]
add esp, 4
cmp ecx, 0xfffe
ja 0x407c4d
mov word [0x42920c], ax
add edi, 2
cmp word [edi], 0x20
jbe 0x407c5f
add edi, 2
cmp word [edi], 0x20
ja 0x407c56
push str.sfxversion
push edi
call fcn.004070d0
add esp, 8
test eax, eax
je 0x407ca4
call fcn.004077b0
mov edx, dword [esp + 0x1c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x2c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
xor eax, eax
pop esi
add esp, 0x1ec
ret
push str.sfxwaitall
push edi
call fcn.004070d0
add esp, 8
test eax, eax
je 0x407cc3
push eax
call fcn.00402930
mov esi, eax
jmp 0x4085c5
push str.sfxelevation
push edi
call fcn.004070d0
add esp, 8
test eax, eax
je 0x407cd7
mov edi, eax
push 0x208
push 0x208
mov ecx, 0x429344
call fcn.004052a0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x407d32
push 6
push 1
call fcn.0040bda0
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x34]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041a71a
add esp, 0x14
pop ebx
pop edi
pop ebp
mov eax, 1
pop esi
add esp, 0x1ec
ret
mov ecx, 0x429344
call fcn.00405270
push str.sfxtest
push edi
call fcn.004070d0
mov esi, eax
add esp, 8
test esi, esi
je 0x407efe
cmp word [esi], bx
je 0x407d8a
mov edx, dword [esp + 0x1c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x2c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 0x64
pop esi
add esp, 0x1ec
ret
movzx ecx, word [esi + 2]
mov eax, ecx
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x407da6.98
movzx edx, byte [eax + 0x408e3c]
jmp dword [edx*4 + 0x408e24]
cmp ecx, 0x44
jne 0x407e1d
cmp word [esi + 4], bx
jne 0x407dec
movzx eax, word [esi + 6]
add esi, 6
cmp eax, 0x20
jbe 0x407de3
cmp ax, bx
je 0x407de3
movzx eax, ax
push eax
mov ecx, 0x42939c
call fcn.00401850
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x20
ja 0x407dc4
cmp dword [0x4293a0], 0
jne 0x407e20
mov eax, dword [esp + 0x1c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x18]
push edx
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 0x64
pop esi
add esp, 0x1ec
ret
add esi, 4
mov dword [0x429394], 0
cmp word [esi], bx
jne 0x407e4b
lea eax, [esi + 2]
push eax
call fcn.0041a958
add esp, 4
mov dword [0x429394], eax
cmp eax, 0xe10
ja 0x407e4b
test eax, eax
jne 0x407e55
mov dword [0x429394], 0xa
mov dword [0x429398], 1
jmp 0x407e80
mov dword [0x429398], 2
jmp 0x407e80
xor ecx, ecx
cmp word [esi + 4], 0x63
sete cl
add ecx, 3
mov dword [0x429398], ecx
cmp word [esi], 0x20
jbe 0x407e8f
add esi, 2
cmp word [esi], 0x20
ja 0x407e86
push str.sfxconfig
push esi
mov edi, esi
call fcn.004070d0
add esp, 8
test eax, eax
je 0x407efe
cmp word [eax], bx
jne 0x407eab
add eax, 2
movzx ecx, word [eax]
test cx, cx
je 0x407ec5
cmp cx, 0x20
ja 0x407ec5
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x407eb3
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x14], 0
mov word [ecx], dx
lea edx, [esp + 0x10]
push edx
push eax
call fcn.00403960
add esp, 8
cmp dword [0x429398], 2
mov edi, eax
je 0x407efe
lea eax, [esp + 0x10]
push eax
mov ecx, 0x429344
call fcn.00415a00
push 0x429344
mov ecx, 0x42927c
call fcn.00415a00
push 0x429344
mov ecx, 0x429288
call fcn.00415a00
push 0x429344
call fcn.00403fc0
mov esi, eax
add esp, 4
test esi, esi
js 0x407fce
mov edx, dword [0x42927c]
xor ecx, ecx
mov dword [0x429280], esi
mov word [edx + esi*2], cx
mov eax, dword [0x429344]
lea ecx, [eax + esi*2 + 2]
push ecx
mov ecx, 0x429288
call fcn.00415f20
mov edx, dword [0x429344]
lea eax, [edx + esi*2 + 2]
push eax
mov ecx, 0x4292a0
call fcn.00415f20
push 0x2e
mov ecx, 0x4292a0
call fcn.00415ae0
test eax, eax
jle 0x407f8f
mov edx, dword [0x4292a0]
xor ecx, ecx
mov dword [0x4292a4], eax
mov word [edx + eax*2], cx
push 0x4292a0
mov ecx, 0x429294
call fcn.00415a00
push 4
call fcn.00404530
add esp, 4
push eax
mov ecx, 0x429294
call fcn.00415f90
mov eax, dword [0x4292a0]
mov ecx, dword [0x429294]
mov dword [0x429238], eax
mov dword [0x429240], ecx
mov dword [0x429244], eax
call fcn.00404770
push eax
mov ecx, 0x4292ac
call fcn.00415f20
mov edx, dword [0x429344]
push edx
mov ecx, 0x4292b8
call fcn.00401470
test al, al
jne 0x4081dd
mov eax, dword [0x429344]
push eax
push 7
push 1
call fcn.0040bda0
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x38]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a71a
add esp, 0x18
pop ebx
pop edi
pop ebp
mov eax, 2
pop esi
add esp, 0x1ec
ret
cmp word [esi + 4], bx
jne case.default.0x408051
movzx eax, word [esi + 6]
add eax, 0xffffffcf
cmp eax, 4
ja case.default.0x408051
jmp dword [eax*4 + 0x408e54]
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 1
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 0xc0
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 0x1f
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 0x3eff
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 7
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
xor eax, eax
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 0x4f3c
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x2c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x18]
push eax
call fcn.0041a71a
add esp, 0xc
pop ebx
pop edi
pop ebp
mov eax, 0x64
pop esi
add esp, 0x1ec
ret
lea ecx, [esp + 0x4c]
call fcn.00415760
mov ecx, 0x429350
call fcn.004078f0
mov edx, dword [0x4292bc]
lea ecx, [esp + 0x4c]
push ecx
push 0
push edx
call fcn.00406c80
mov esi, eax
add esp, 0xc
test esi, esi
je 0x408244
mov eax, dword [esp + 0x4c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x30]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x1c]
push eax
call fcn.0041a71a
add esp, 0x10
pop ebx
pop edi
pop ebp
mov eax, esi
pop esi
add esp, 0x1ec
ret
cmp dword [0x429398], 0
jne 0x4082fb
push str.sfxconfig
push edi
call fcn.004070d0
add esp, 8
test eax, eax
je 0x4082fb
cmp word [eax], bx
jne 0x40826f
add eax, 2
movzx ecx, word [eax]
test cx, cx
je 0x40851c
jmp 0x408280
cmp cx, 0x20
ja 0x408297
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x408280
jmp 0x40851c
cmp word [eax], 0
je 0x40851c
lea ecx, [esp + 0x4c]
push ecx
push eax
call fcn.00407940
add esp, 8
test al, al
jne 0x40851c
push 0xa
push 0
call fcn.0040bda0
mov edx, dword [esp + 0x54]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x28]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a71a
add esp, 0x18
pop ebx
pop edi
pop ebp
mov eax, 4
pop esi
add esp, 0x1ec
ret
cmp dword [0x429398], 4
jne 0x40833c
mov ecx, dword [esp + 0x4c]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x20]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x30]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
add esp, 0x10
pop ebx
pop edi
pop ebp
xor eax, eax
pop esi
add esp, 0x1ec
ret
mov eax, dword [0x4280c0]
mov esi, 0x4280c0
test eax, eax
je 0x40838b
lea ebx, [ebx]
push eax
lea edx, [esp + 0x94]
push str.SfxString_d
push edx
call ebp
mov eax, dword [esi]
add esp, 0xc
push 0
push eax
call fcn.00404530
add esp, 4
push eax
lea ecx, [esp + 0x98]
push ecx
call fcn.004064a0
mov eax, dword [esi + 0x10]
add esi, 0x10
add esp, 0xc
test eax, eax
jne 0x408350
push edi
mov ecx, 0x4292b8
call fcn.00406d60
call fcn.00401a30
mov ebx, eax
xor ebp, ebp
cmp ebx, ebp
jne 0x4083dc
mov edx, dword [esp + 0x4c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x20]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x1c]
push edx
call fcn.0041a71a
add esp, 0x10
pop ebx
pop edi
lea eax, [ebp + 0x20]
pop ebp
pop esi
add esp, 0x1ec
ret
call fcn.00407160
mov ecx, 0x4292b8
call fcn.004016b0
mov ecx, 0x429350
call fcn.004078f0
mov eax, dword [0x4292bc]
push ebp
push ebp
push eax
call fcn.00406c80
add esp, 0xc
call fcn.00407160
mov ecx, 0x4292b8
call fcn.00401720
call fcn.00401a30
call fcn.00407160
lea ecx, [esp + 0x58]
push ecx
push str.SetEnvironment
mov dword [esp + 0x60], ebp
call fcn.00404b50
mov esi, eax
add esp, 8
cmp esi, ebp
je 0x4084b0
mov edi, 1
nop
push esi
lea ecx, [esp + 0x38]
call fcn.00415ee0
mov edx, dword [esp + 0x34]
push 0x3d
push edx
call fcn.004155c0
add esp, 8
cmp eax, ebp
jle 0x4084a3
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov word [edx + eax*2], cx
mov ecx, dword [esp + 0x34]
push ebp
lea eax, [esi + eax*2 + 2]
push eax
push ecx
call fcn.004064a0
mov edx, dword [esp + 0x40]
add dword [esp + 0x64], edi
push edx
call fcn.0041a71a
lea eax, [esp + 0x68]
push eax
push str.SetEnvironment
call fcn.00404b50
mov esi, eax
add esp, 0x18
cmp esi, ebp
jne 0x408440
jmp 0x4084b0
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0041a71a
add esp, 4
call fcn.004074b0
cmp dword [0x4283b4], 0xffffffff
jne 0x4084c4
mov dword [0x4283b4], ebp
cmp byte [0x4292cb], 0
je 0x408544
push ebp
push str.HelpText
call fcn.00404b50
mov esi, eax
add esp, 8
cmp esi, ebp
jne 0x4084ed
push 0x18
call fcn.00404530
add esp, 4
mov esi, eax
lea ecx, [esp + 0x90]
call fcn.00406d40
mov edx, dword [0x429238]
push ebp
push esi
push edx
push 0x11
lea ecx, [esp + 0xa0]
call fcn.0040a560
lea ecx, [esp + 0x90]
call fcn.0040a300
mov eax, dword [esp + 0x4c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x30]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x1c]
push eax
jmp 0x408327
cmp byte [0x4292c9], 0
je 0x408557
and dword [0x4283b4], 0xfffffeff
push ebp
call dword [sym.imp.ole32.dll_CoInitialize]
push ebp
push str.InstallPath
call fcn.00404b50
add esp, 8
cmp eax, ebp
je 0x408582
push eax
mov ecx, 0x429270
call fcn.00415f20
mov byte [0x42921c], 1
push 0x429270
call fcn.00406e90
push ebp
push str.BeginPromptTimeout
call fcn.00404b50
add esp, 0xc
cmp eax, ebp
je 0x4085ac
push eax
call fcn.0041a958
add esp, 4
mov dword [0x42925c], eax
cmp dword [0x4293a0], ebp
je 0x4085f3
call fcn.0040bfd0
mov ecx, dword [esp + 0x4c]
push ecx
mov esi, eax
call fcn.0041a71a
mov edx, dword [esp + 0x20]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x30]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x1c]
push ecx
call fcn.0041a71a
add esp, 0x10
pop ebx
pop edi
pop ebp
mov eax, esi
pop esi
add esp, 0x1ec
ret
mov ebp, 3
cmp dword [0x429398], ebp
jne 0x40863f
call fcn.0040bec0
mov edx, dword [esp + 0x4c]
push edx
mov esi, eax
call fcn.0041a71a
mov eax, dword [esp + 0x20]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x1c]
push edx
call fcn.0041a71a
add esp, 0x10
pop ebx
pop edi
pop ebp
mov eax, esi
pop esi
add esp, 0x1ec
ret
push 0
push 0x422948
push str.SfxVarApiPath
call fcn.004064a0
call fcn.004074b0
push 0
push str.ExecuteOnLoad
call fcn.00404b50
add esp, 0x14
test eax, eax
je 0x4086da
cmp byte [0x4292ca], 0
jne 0x4086da
mov ecx, 0x4283ec
call fcn.004091b0
mov eax, dword [0x4283f0]
push 0
push eax
push str.SfxVarApiPath
call fcn.004064a0
add esp, 0xc
call fcn.004074b0
push 0x422948
lea ecx, [esp + 0x60]
call fcn.00415ee0
mov ecx, 0x4283ec
call fcn.004091b0
mov edx, dword [0x4283f0]
push 0x422948
lea ecx, [esp + 0x60]
push ecx
push 0x422948
push edx
push str.ExecuteOnLoad
call fcn.004027f0
mov eax, dword [esp + 0x70]
push eax
call fcn.0041a71a
add esp, 0x18
mov ecx, 0x4292f0
call fcn.0040a230
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
lea ebx, [ebx]
push 0
push str.BeginPrompt
call fcn.00404b50
add esp, 8
test eax, eax
je 0x40874e
cmp byte [0x4292c9], 0
jne 0x40874e
mov ecx, dword [0x429238]
push eax
push ecx
call fcn.0040b980
add esp, 8
test eax, eax
je 0x408899
push 0x10
call edi
mov edx, 0x8000
test dx, ax
je 0x40873b
mov word [0x4292c8], 0x101
cmp dword [0x429380], 0
je 0x40874e
and dword [0x4283b4], 0xffffff7f
lea ecx, [esp + 0x40]
call fcn.004159a0
cmp byte [0x4292c8], 0
je 0x4087d5
mov esi, dword [0x4292c4]
jmp 0x408770
push str.AutoInstall
lea ecx, [esp + 0x44]
call fcn.00415f20
movzx eax, word [esi]
push eax
lea ecx, [esp + 0x44]
call fcn.00401850
mov ecx, dword [esp + 0x40]
push 0
push ecx
call fcn.00404b50
add esp, 8
test eax, eax
je 0x4088d4
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x30
jb 0x4087b3
cmp eax, 0x39
jbe 0x408770
cmp eax, 0x61
jb 0x4087bd
cmp eax, 0x7a
jbe 0x408770
cmp eax, 0x41
jb 0x4087c7
cmp eax, 0x5a
jbe 0x408770
push str.AutoInstall
lea ecx, [esp + 0x44]
call fcn.00415f20
cmp dword [esp + 0x44], 0
mov byte [esp + 0x68], 0
jne 0x40882f
push 0
push str.ExecuteFile
call fcn.00404b50
add esp, 8
test eax, eax
je 0x408807
push str.ExecuteFile
lea ecx, [esp + 0x44]
call fcn.00415f20
mov byte [esp + 0x68], 1
cmp dword [esp + 0x44], 0
jne 0x40882f
push 0
push str.RunProgram
call fcn.00404b50
add esp, 8
test eax, eax
je 0x40882f
push str.RunProgram
lea ecx, [esp + 0x44]
call fcn.00415f20
cmp byte [0x4292c8], 0
jne 0x40896c
cmp byte [0x4292c9], 0
jne 0x40896c
mov edx, dword [0x4283b4]
and edx, 0xc0
cmp dl, 0x80
jne 0x40896c
mov eax, dword [0x42922c]
mov ecx, dword [0x429230]
push eax
push ecx
call fcn.0040ba40
add esp, 8
test eax, eax
jne 0x40896c
cmp byte [0x429260], al
je 0x408927
mov edx, dword [esp + 0x40]
push edx
call fcn.0041a71a
add esp, 4
jmp 0x4086f0
mov eax, dword [esp + 0x4c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x20]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x30]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x1c]
push eax
call fcn.0041a71a
add esp, 0x10
pop ebx
pop edi
pop ebp
mov eax, 5
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x40]
push ecx
push 0xe
push 0
call fcn.0040bda0
mov edx, dword [esp + 0x4c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x5c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x30]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x40]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x2c]
push eax
call fcn.0041a71a
add esp, 0x20
pop ebx
pop edi
pop ebp
mov eax, 6
pop esi
add esp, 0x1ec
ret
mov ecx, dword [esp + 0x40]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x50]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x20]
push edx
call fcn.0041a71a
add esp, 0x14
pop ebx
pop edi
pop ebp
mov eax, 5
pop esi
add esp, 0x1ec
ret
cmp dword [0x429274], 0
jne 0x4089a5
lea eax, [esp + 0x6c]
push str.7ZipSfx._03x
push eax
call fcn.004053b0
add esp, 8
push eax
mov ecx, 0x429270
call fcn.00415a00
mov ecx, dword [esp + 0x6c]
push ecx
call fcn.0041a71a
mov byte [0x42921c], 0
jmp 0x4089e7
push 0x429270
lea ecx, [esp + 0x38]
call fcn.004159d0
lea edx, [esp + 0x34]
push edx
call fcn.00406e90
add esp, 4
cmp dword [esp + 0x38], 0
je 0x4089d6
lea eax, [esp + 0x34]
push eax
mov ecx, 0x429270
call fcn.00415a00
mov ecx, dword [esp + 0x34]
push ecx
mov byte [0x42921c], 1
call fcn.0041a71a
mov ecx, dword [0x429270]
mov edx, dword [0x429274]
movzx eax, word [ecx + edx*2 - 2]
add esp, 4
cmp eax, 0x5c
je 0x408a05
cmp eax, 0x2f
jne 0x408a13
lea eax, [edx - 1]
xor edx, edx
mov dword [0x429274], eax
mov word [ecx + eax*2], dx
cmp byte [0x4292c9], 0
je 0x408a22
or dword [0x429250], ebp
push str.PreExtract
lea ecx, [esp + 0x7c]
call fcn.00415ee0
mov eax, dword [0x4292c4]
movzx ecx, word [eax]
push ecx
lea ecx, [esp + 0x7c]
call fcn.00401850
mov edx, dword [esp + 0x78]
push 0
push edx
call fcn.00404b50
add esp, 8
test eax, eax
je 0x408ac9
cmp byte [0x4292ca], 0
jne 0x408ac9
mov ecx, 0x4283ec
call fcn.004091b0
mov eax, dword [0x4283f0]
push 0
push eax
push str.SfxVarApiPath
call fcn.004064a0
add esp, 0xc
call fcn.004074b0
push 0x422948
lea ecx, [esp + 0x60]
call fcn.00415ee0
mov esi, dword [0x4292c4]
mov ecx, 0x4283ec
call fcn.004091b0
mov edx, dword [0x4283f0]
push 0x422948
lea ecx, [esp + 0x60]
push ecx
push esi
push edx
push str.PreExtract
call fcn.004027f0
mov eax, dword [esp + 0x70]
push eax
call fcn.0041a71a
add esp, 0x18
cmp dword [0x429394], 0
jne 0x408b37
push 0x429270
call fcn.00403150
add esp, 4
test eax, eax
je 0x408b40
call fcn.00407410
mov ecx, dword [esp + 0x78]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x44]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x54]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x28]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x38]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x24]
push eax
call fcn.0041a71a
add esp, 0x18
pop ebx
pop edi
pop ebp
mov eax, 8
pop esi
add esp, 0x1ec
ret
call fcn.0040bac0
test eax, eax
je 0x408ae3
call fcn.004074b0
cmp byte [0x4292ca], 0
je 0x408b5b
cmp byte [0x42921c], 0
jne 0x408d3a
lea ecx, [esp + 0x34]
call fcn.004159a0
lea ecx, [esp + 0x5c]
call fcn.004159a0
cmp byte [0x4292c8], 0
jne 0x408b83
lea ecx, [esp + 0x34]
push ecx
call fcn.00401e70
add esp, 4
cmp dword [esp + 0x44], 0
jne 0x408cae
cmp byte [0x42921c], 0
jne 0x408cce
push str.setup.exe
push 0x422c2c
lea edx, [esp + 0x8c]
push 0x429270
push edx
call fcn.00415e70
add esp, 0xc
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00415e70
mov ecx, dword [eax]
add esp, 0xc
push ecx
lea ecx, [esp + 0x60]
call fcn.00415f20
mov edx, dword [esp + 0x6c]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x88]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x64]
add esp, 8
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x408c72
call fcn.00407410
push 0xf
push 0
call fcn.0040bda0
mov edx, dword [esp + 0x64]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x40]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x88]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x54]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x64]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x48]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x34]
push eax
call fcn.0041a71a
add esp, 0x28
pop ebx
pop edi
pop ebp
mov eax, 7
pop esi
add esp, 0x1ec
ret
mov esi, dword [0x429270]
push str.setup.exe
lea ecx, [esp + 0x70]
call fcn.00415ee0
mov edx, dword [esp + 0x68]
push ebx
lea ecx, [esp + 0x38]
push ecx
push edx
lea eax, [esp + 0x78]
push esi
push eax
call fcn.00402420
mov ecx, dword [esp + 0x80]
push ecx
call fcn.0041a71a
add esp, 0x18
jmp 0x408cce
mov eax, dword [0x4292c4]
mov ecx, dword [0x429270]
push ebx
lea edx, [esp + 0x38]
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
call fcn.004027f0
add esp, 0x14
cmp dword [0x429398], 0
jne 0x408d23
call fcn.004074b0
mov eax, dword [0x4292c4]
push 0xffffffffffffffff
push eax
push str.Shortcut
push 0x407520
call fcn.00407670
mov ecx, dword [0x42927c]
add esp, 0x10
push ecx
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [0x4292c4]
push 0xffffffffffffffff
push edx
push str.Delete
push 0x407630
call fcn.00407670
add esp, 0x10
call fcn.00407410
mov eax, dword [esp + 0x5c]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041a71a
add esp, 8
mov eax, dword [0x4283c0]
cmp eax, 0xffffffff
jne 0x408d59
cmp byte [0x4292c9], 0
jne 0x408db4
mov dword [0x4283c0], 1
jmp 0x408d5d
test eax, eax
jle 0x408db4
push 0
push str.FinishMessage
call fcn.00404b50
mov esi, eax
add esp, 8
test esi, esi
je 0x408db4
mov eax, 0x3e7
cmp dword [0x4283c0], eax
jle 0x408d84
mov dword [0x4283c0], eax
lea ecx, [esp + 0x90]
call fcn.00407450
mov edx, dword [0x429238]
push 0
push esi
push edx
push 0x11
lea ecx, [esp + 0xa0]
call fcn.0040a560
lea ecx, [esp + 0x90]
call fcn.0040a300
mov eax, dword [esp + 0x78]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x54]
push edx
call fcn.0041a71a
mov eax, dword [esp + 0x28]
push eax
call fcn.0041a71a
mov ecx, dword [esp + 0x38]
push ecx
call fcn.0041a71a
mov edx, dword [esp + 0x24]
push edx
call fcn.0041a71a
add esp, 0x18
pop ebx
pop edi
pop ebp
xor eax, eax
pop esi
add esp, 0x1ec
ret
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]
mov eax, 0x14
pop esi
add esp, 0x1ec
ret