Function at 0x4069b1
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:
push ebp
mov ebp, esp
sub esp, 0x228
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 0x4069e4
call esi
cmp eax, 0x7a33
je 0x4069e4
call esi
cmp eax, 0xf4240
jne 0x4069e6
jmp 0x4069e4
push 0x406235
call fcn.0041d348
call fcn.0040396c
mov dword [esp], str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
push str.FreeConsole
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
lea eax, [ebp - 0x228]
push eax
mov dword [ebp - 0x228], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4079b1
cmp dword [ebp - 0x218], 2
jne 0x4079b1
cmp dword [ebp - 0x224], 5
jb 0x4079b1
lea ecx, [ebp - 0x50]
mov byte [str.___InstallEnd__], 0x3b
mov byte [str.___Install__UTF_8_], 0x3b
call fcn.00401245
lea ecx, [ebp - 0xb0]
call fcn.00401245
lea ecx, [ebp - 0x74]
call fcn.00401245
call fcn.00405c3e
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea eax, [ebp - 0x50]
push eax
call esi
push eax
call fcn.0040354d
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.00401000
lea eax, [ebp - 0x74]
push eax
call fcn.00404eb5
pop ecx
lea ecx, [ebp - 0x74]
call fcn.0040a992
xor ebx, ebx
inc ebx
push ebx
mov edi, eax
push 0x424c04
push str.SfxVarModulePlatform
mov dword [ebp - 8], edi
call fcn.0040574d
add esp, 0xc
push ebx
call fcn.00404020
push eax
push str.SfxVarSystemPlatform
call fcn.0040574d
add esp, 0xc
push ebx
call esi
push eax
push str.SfxVarCmdLine0
call fcn.0040574d
movzx eax, word [0x42c24c]
add esp, 0xc
push eax
push 0x425c54
push 0x20
lea ecx, [ebp - 0x50]
call fcn.00404ac5
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea ecx, [ebp - 0x50]
call fcn.00404aac
push ebx
lea ecx, [ebp - 0x50]
call fcn.0040a992
push eax
push str.SfxVarSystemLanguage
call fcn.0040574d
push str.sfxlang
push edi
call fcn.00405f35
add esp, 0x14
test eax, eax
je 0x406b6e
cmp word [eax], 0x3a
jne 0x406b6e
add eax, 2
push eax
call fcn.0041c727
pop ecx
lea ecx, [eax - 1]
cmp ecx, 0xfffe
ja 0x406b56
mov word [0x42c24c], ax
add edi, 2
cmp word [edi], 0x20
mov dword [ebp - 8], edi
jbe 0x406b6e
add edi, 2
cmp word [edi], 0x20
ja 0x406b62
mov dword [ebp - 8], edi
push str.sfxversion
push edi
call fcn.00405f35
pop ecx
pop ecx
test eax, eax
je 0x406ba8
call fcn.004065a0
xor esi, esi
lea ecx, [ebp - 0x74]
call fcn.00401251
lea ecx, [ebp - 0xb0]
call fcn.00401251
lea ecx, [ebp - 0x50]
call fcn.00401251
mov eax, esi
jmp 0x4079c8
push str.sfxwaitall
push edi
call fcn.00405f35
pop ecx
pop ecx
test eax, eax
je 0x406bc4
push eax
call fcn.00402672
pop ecx
mov esi, eax
jmp 0x406b86
push str.sfxelevation
push edi
mov byte [ebp - 1], 0
call fcn.00405f35
pop ecx
pop ecx
test eax, eax
je 0x406be2
mov edi, eax
mov byte [ebp - 1], 1
mov dword [ebp - 8], edi
mov eax, 0x208
push eax
mov ebx, 0x42c3a4
push eax
mov ecx, ebx
call fcn.00404ac5
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x406c14
xor esi, esi
inc esi
push 6
push esi
call fcn.0040a35a
pop ecx
pop ecx
jmp 0x406b86
mov ecx, ebx
call fcn.00404aac
push str.sfxtest
push edi
call fcn.00405f35
mov esi, eax
pop ecx
pop ecx
mov edi, 0x42c3fc
test esi, esi
je 0x406dc2
cmp word [esi], 0x3a
je 0x406c45
push 0x64
pop esi
jmp 0x406b86
movzx ecx, word [esi + 2]
mov eax, ecx
or eax, 0x20
sub eax, 0x61
je 0x406d53
dec eax
dec eax
je 0x406d3f
dec eax
je 0x406cbe
sub eax, 0xb
je 0x406c76
sub eax, 7
jne 0x406c3d
mov esi, 0x4f3d
jmp 0x406b86
cmp word [esi + 4], 0x3a
jne 0x406b84
movzx eax, word [esi + 6]
sub eax, 0x31
je 0x406cb6
dec eax
je 0x406cac
dec eax
je 0x406ca8
dec eax
je 0x406c9e
dec eax
jne 0x406b84
push 7
jmp 0x406c3f
mov esi, 0x3eff
jmp 0x406b86
push 0x1f
jmp 0x406c3f
mov esi, 0x4fe
jmp 0x406b86
xor esi, esi
inc esi
jmp 0x406b86
cmp ecx, 0x44
jne 0x406cff
cmp word [esi + 4], 0x3a
jne 0x406c3d
add esi, 6
jmp 0x406ce7
cmp ax, 0x3a
je 0x406cef
movzx eax, ax
push eax
mov ecx, edi
call fcn.0040180c
add esi, 2
movzx eax, word [esi]
cmp eax, 0x20
ja 0x406cd3
mov ecx, edi
call fcn.004034dc
test al, al
je 0x406d02
jmp 0x406c3d
add esi, 4
and dword [0x42c3f4], 0
cmp word [esi], 0x3a
jne 0x406d29
lea eax, [esi + 2]
push eax
call fcn.0041c727
pop ecx
mov dword [0x42c3f4], eax
cmp eax, 0xe10
ja 0x406d29
test eax, eax
jne 0x406d33
mov dword [0x42c3f4], 0xa
mov dword [0x42c3f8], 1
jmp 0x406d62
xor eax, eax
cmp word [esi + 4], 0x63
sete al
add eax, 3
mov dword [0x42c3f8], eax
jmp 0x406d62
mov dword [0x42c3f8], 2
jmp 0x406d62
add esi, 2
cmp word [esi], 0x20
ja 0x406d5f
push str.sfxconfig
push esi
mov dword [ebp - 8], esi
call fcn.00405f35
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x406dc2
cmp word [esi], 0x3a
jne 0x406d8f
jmp 0x406d8c
cmp ax, 0x20
ja 0x406d97
add esi, 2
movzx eax, word [esi]
test ax, ax
jne 0x406d86
lea ecx, [ebp - 0x50]
call fcn.00401da1
lea eax, [ebp - 0x50]
push eax
push esi
call fcn.0040354d
cmp dword [0x42c3f8], 2
pop ecx
pop ecx
mov dword [ebp - 8], eax
je 0x406dc2
lea eax, [ebp - 0x50]
push eax
mov ecx, ebx
call fcn.00401ea9
push ebx
mov ecx, 0x42c2bc
call fcn.00401ea9
mov edi, 0x42c2c8
push ebx
mov ecx, edi
call fcn.00401ea9
push ebx
call fcn.00403947
mov esi, eax
pop ecx
test esi, esi
js 0x406e76
push esi
mov ecx, 0x42c2bc
call fcn.0040189a
mov ecx, ebx
add esi, esi
call fcn.0040a992
lea eax, [eax + esi + 2]
push eax
mov ecx, edi
call fcn.00401000
mov ecx, ebx
call fcn.0040a992
lea eax, [eax + esi + 2]
mov esi, 0x42c2e0
push eax
mov ecx, esi
call fcn.00401000
push 0x2e
mov ecx, esi
call fcn.004129e3
test eax, eax
jle 0x406e38
push eax
mov ecx, esi
call fcn.0040189a
mov edi, 0x42c2d4
push esi
mov ecx, edi
call fcn.00401ea9
push 4
call fcn.00403e07
pop ecx
push eax
mov ecx, edi
call fcn.00412e0c
mov ecx, esi
call fcn.0040a992
mov esi, eax
mov ecx, edi
mov dword [0x42c278], esi
call fcn.0040a992
mov dword [0x42c280], eax
mov dword [0x42c284], esi
call fcn.00404020
push eax
mov ecx, 0x42c2ec
call fcn.00401000
mov ecx, ebx
call fcn.0040a992
mov esi, 0x42c318
push eax
mov ecx, esi
call fcn.004013d7
test al, al
jne 0x406eb9
mov ecx, ebx
call fcn.0040a992
push eax
push 7
push 1
call fcn.0040a35a
add esp, 0xc
push 2
jmp 0x406c3f
lea ecx, [ebp - 0x18]
call fcn.004042b3
mov ecx, 0x42c3b0
call fcn.00406864
lea eax, [ebp - 0x18]
push eax
xor ebx, ebx
push ebx
mov ecx, esi
call fcn.004062d1
push eax
call fcn.00405b46
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x406ef7
lea ecx, [ebp - 0x18]
call fcn.00401251
mov esi, edi
jmp 0x406b86
cmp dword [0x42c3f8], ebx
jne 0x406f6e
push str.sfxconfig
push dword [ebp - 8]
call fcn.00405f35
pop ecx
pop ecx
cmp eax, ebx
je 0x406f6e
cmp word [eax], 0x3a
jne 0x406f1b
add eax, 2
movzx ecx, word [eax]
cmp cx, bx
je 0x40718a
cmp cx, 0x20
ja 0x406f38
add eax, 2
movzx ecx, word [eax]
cmp cx, bx
jne 0x406f27
cmp word [eax], bx
je 0x40718a
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.00406892
pop ecx
pop ecx
test al, al
jne 0x40718a
push 0xa
push ebx
call fcn.0040a35a
pop ecx
pop ecx
lea ecx, [ebp - 0x18]
call fcn.00401251
push 4
jmp 0x406c3f
cmp dword [0x42c3f8], 4
je 0x40718a
mov eax, dword [0x42b0c0]
mov edi, 0x42b0c0
jmp 0x406fbb
push eax
lea eax, [ebp - 0x114]
push str.SfxString_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push ebx
push dword [edi]
call fcn.00403e07
pop ecx
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.0040574d
add esp, 0xc
add edi, 0x10
mov eax, dword [edi]
cmp eax, ebx
jne 0x406f87
push dword [ebp - 8]
mov ecx, esi
call fcn.00405c14
call fcn.004019f7
mov dword [ebp - 8], eax
cmp eax, ebx
jne 0x406fe4
lea ecx, [ebp - 0x18]
call fcn.00401251
push 0x20
jmp 0x406c3f
call fcn.00405fae
mov ecx, esi
call fcn.0040164e
mov ecx, 0x42c3b0
call fcn.00406864
push ebx
push ebx
mov ecx, esi
call fcn.004062d1
push eax
call fcn.00405b46
add esp, 0xc
call fcn.00405fae
mov ecx, esi
call fcn.004016c0
call fcn.004019f7
call fcn.00405fae
cmp byte [ebp - 1], bl
jne 0x407197
test byte [0x42c290], 4
je 0x407197
call fcn.00404035
test eax, eax
jne 0x407197
lea ecx, [ebp - 0x5c]
call fcn.00401245
lea ecx, [ebp - 0x8c]
call fcn.00401245
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.0040354d
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x98]
call fcn.00401885
lea eax, [ebp - 0x98]
push eax
push 0x20
push str.sfxelevation
push 0x424a24
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x44]
push 0x42496c
push eax
call fcn.00412d52
add esp, 0xc
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.00412d23
add esp, 0xc
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.00412d23
add esp, 0xc
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00401ebe
add esp, 0xc
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.00412cef
add esp, 0xc
mov ecx, eax
call fcn.0040a992
push eax
lea ecx, [ebp - 0x8c]
call fcn.00401000
lea ecx, [ebp - 0x68]
call fcn.0040cb01
lea ecx, [ebp - 0x38]
call fcn.0040cb01
lea ecx, [ebp - 0xbc]
call fcn.0040cb01
lea ecx, [ebp - 0xa4]
call fcn.0040cb01
lea ecx, [ebp - 0x44]
call fcn.0040cb01
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 ecx, [ebp - 0x8c]
call fcn.0040a992
push eax
call fcn.00402160
add esp, 0xc
lea ecx, [ebp - 0x98]
test eax, eax
jne 0x407172
call fcn.00401251
lea ecx, [ebp - 0x8c]
call fcn.00401251
lea ecx, [ebp - 0x5c]
call fcn.00401251
lea ecx, [ebp - 0x18]
call fcn.00401251
push 0xb
jmp 0x406c3f
call fcn.00401251
lea ecx, [ebp - 0x8c]
call fcn.00401251
lea ecx, [ebp - 0x5c]
call fcn.00401251
lea ecx, [ebp - 0x18]
call fcn.00401251
jmp 0x406b84
mov dword [ebp - 0x28], ebx
mov ebx, str.SetEnvironment
jmp 0x4071ea
push edi
lea ecx, [ebp - 0x38]
call fcn.00401885
push 0x3d
lea ecx, [ebp - 0x38]
call fcn.00403500
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x38]
test eax, eax
jle 0x4071fe
push eax
call fcn.0040189a
mov eax, dword [ebp - 0x2c]
push 0
lea eax, [edi + eax*2 + 2]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040a992
push eax
call fcn.0040574d
add esp, 0xc
inc dword [ebp - 0x28]
lea ecx, [ebp - 0x38]
call fcn.00401251
lea eax, [ebp - 0x28]
push eax
push ebx
call fcn.00404439
mov edi, eax
pop ecx
pop ecx
test edi, edi
jne 0x4071a1
jmp 0x407203
call fcn.00401251
call fcn.0040630d
cmp dword [0x42b3b4], 0xffffffff
jne 0x407218
and dword [0x42b3b4], 0
mov ecx, esi
call fcn.00405c10
test al, al
je 0x407272
push 0
push str.HelpText
call fcn.00404439
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x407241
push 0x18
call fcn.00403e07
pop ecx
mov esi, eax
lea ecx, [ebp - 0x110]
call fcn.00405be7
push 0
push esi
push dword [0x42c278]
lea ecx, [ebp - 0x110]
push 0x11
call fcn.00408f2b
lea ecx, [ebp - 0x110]
call fcn.0040963c
jmp 0x40718a
mov ecx, esi
call fcn.00405c08
test al, al
je 0x407287
and dword [0x42b3b4], 0xfffffeff
xor edi, edi
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
push edi
push str.InstallPath
call fcn.00404439
pop ecx
pop ecx
mov ebx, 0x42c2b0
cmp eax, edi
je 0x4072b5
push eax
mov ecx, ebx
call fcn.00401000
mov byte [0x42c25c], 1
push ebx
call fcn.00405d3d
push edi
push str.BeginPromptTimeout
call fcn.00404439
add esp, 0xc
cmp eax, edi
je 0x4072d9
push eax
call fcn.0041c727
pop ecx
mov dword [0x42c29c], eax
mov ecx, 0x42c3fc
call fcn.004034dc
test al, al
jne 0x4072fb
call fcn.0040a547
lea ecx, [ebp - 0x18]
mov esi, eax
call fcn.00401251
jmp 0x406b86
cmp dword [0x42c3f8], 3
jne 0x40730b
call fcn.0040a45e
jmp 0x4072ec
push 0
mov edi, 0x424998
push edi
push str.SfxVarApiPath
call fcn.0040574d
call fcn.0040630d
push 0
push str.ExecuteOnLoad
call fcn.00404439
add esp, 0x14
test eax, eax
je 0x40738b
mov ecx, esi
call fcn.00405c0c
test al, al
jne 0x40738b
push 0
mov ecx, 0x42c2f8
call fcn.004062a1
push eax
push str.SfxVarApiPath
call fcn.0040574d
add esp, 0xc
call fcn.0040630d
push edi
push edi
lea ecx, [ebp - 0x44]
call fcn.00401885
push eax
push edi
mov ecx, 0x42c2f8
call fcn.004062a1
push eax
push str.ExecuteOnLoad
call fcn.004025aa
add esp, 0x14
lea ecx, [ebp - 0x44]
call fcn.00401251
mov ecx, esi
call fcn.00405c36
push 0
push str.BeginPrompt
call fcn.00404439
pop ecx
pop ecx
mov dword [ebp - 0xc], eax
test eax, eax
je 0x407401
mov ecx, esi
call fcn.00405c08
test al, al
jne 0x407401
push dword [ebp - 0xc]
push dword [0x42c278]
call fcn.00409fc3
pop ecx
pop ecx
test eax, eax
je 0x40756c
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x4073ee
push 1
mov ecx, esi
call fcn.004017f2
push 1
mov ecx, esi
call fcn.004017ff
call fcn.00405bc7
test eax, eax
je 0x407401
and dword [0x42b3b4], 0xffffff7f
lea ecx, [ebp - 0x24]
call fcn.00401245
mov ecx, esi
call fcn.00405c04
test al, al
je 0x407489
mov ecx, esi
call fcn.00405c00
mov dword [ebp - 0xc], eax
push str.AutoInstall
lea ecx, [ebp - 0x24]
call fcn.00401000
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
push eax
lea ecx, [ebp - 0x24]
call fcn.0040180c
push 0
lea ecx, [ebp - 0x24]
call fcn.0040a992
push eax
call fcn.00404439
pop ecx
pop ecx
test eax, eax
je 0x40753b
add dword [ebp - 0xc], 2
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
cmp eax, 0x30
jb 0x407468
cmp eax, 0x39
jbe 0x40741e
cmp eax, 0x61
jb 0x407472
cmp eax, 0x7a
jbe 0x40741e
cmp eax, 0x41
jb 0x40747c
cmp eax, 0x5a
jbe 0x40741e
push str.AutoInstall
lea ecx, [ebp - 0x24]
call fcn.00401000
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x2c], 0
call fcn.004034dc
test al, al
je 0x4074bc
push 0
push str.ExecuteFile
call fcn.00404439
pop ecx
pop ecx
test eax, eax
je 0x4074bc
push str.ExecuteFile
lea ecx, [ebp - 0x24]
call fcn.00401000
mov byte [ebp - 0x2c], 1
lea ecx, [ebp - 0x24]
call fcn.004034dc
test al, al
je 0x4074e7
push 0
push str.RunProgram
call fcn.00404439
pop ecx
pop ecx
test eax, eax
je 0x4074e7
push str.RunProgram
lea ecx, [ebp - 0x24]
call fcn.00401000
mov ecx, esi
call fcn.00405c04
test al, al
jne 0x40757b
mov ecx, esi
call fcn.00405c08
test al, al
jne 0x40757b
mov eax, dword [0x42b3b4]
and eax, 0xc0
cmp al, 0x80
jne 0x40757b
push dword [0x42c26c]
push dword [0x42c270]
call fcn.0040a049
pop ecx
pop ecx
test eax, eax
jne 0x40757b
lea ecx, [ebp - 0x24]
cmp byte [0x42c2a0], al
je 0x407567
call fcn.00401251
jmp 0x407392
lea ecx, [ebp - 0x24]
call fcn.0040a992
push eax
push 0xe
push 0
call fcn.0040a35a
add esp, 0xc
lea ecx, [ebp - 0x24]
call fcn.00401251
lea ecx, [ebp - 0x18]
call fcn.00401251
push 6
jmp 0x406c3f
call fcn.00401251
lea ecx, [ebp - 0x18]
call fcn.00401251
push 5
jmp 0x406c3f
mov ecx, ebx
call fcn.004034dc
test al, al
je 0x4075af
lea eax, [ebp - 0x44]
push str.7ZipSfx._03x
push eax
call fcn.00404b7d
pop ecx
pop ecx
push eax
mov ecx, ebx
call fcn.00401ea9
lea ecx, [ebp - 0x44]
call fcn.00401251
mov byte [0x42c25c], 0
jmp 0x4075e8
push ebx
lea ecx, [ebp - 0x5c]
call fcn.004028ff
lea eax, [ebp - 0x5c]
push eax
call fcn.00405d3d
pop ecx
lea ecx, [ebp - 0x5c]
call fcn.004034dc
test al, al
jne 0x4075d9
lea eax, [ebp - 0x5c]
push eax
mov ecx, ebx
call fcn.00401ea9
lea ecx, [ebp - 0x5c]
mov byte [0x42c25c], 1
call fcn.00401251
mov ecx, ebx
call fcn.0040102e
mov ecx, ebx
mov dword [ebp - 0xc], eax
call fcn.0040a992
mov ecx, dword [ebp - 0xc]
movzx eax, word [eax + ecx*2 - 2]
cmp eax, 0x5c
je 0x40760b
cmp eax, 0x2f
jne 0x407617
mov eax, dword [ebp - 0xc]
dec eax
push eax
mov ecx, ebx
call fcn.0040189a
mov ecx, esi
call fcn.00405c08
test al, al
je 0x407629
or dword [0x42c290], 3
push str.PreExtract
lea ecx, [ebp - 0x80]
call fcn.00401885
mov ecx, esi
call fcn.00405c00
movzx eax, word [eax]
push eax
lea ecx, [ebp - 0x80]
call fcn.0040180c
push 0
lea ecx, [ebp - 0x80]
call fcn.0040a992
push eax
call fcn.00404439
pop ecx
pop ecx
test eax, eax
je 0x4076bc
mov ecx, esi
call fcn.00405c0c
test al, al
jne 0x4076bc
push 0
mov ecx, 0x42c2f8
call fcn.004062a1
push eax
push str.SfxVarApiPath
call fcn.0040574d
add esp, 0xc
call fcn.0040630d
push edi
push edi
lea ecx, [ebp - 0x44]
call fcn.00401885
push eax
mov ecx, esi
call fcn.00405c00
push eax
mov ecx, 0x42c2f8
call fcn.004062a1
push eax
push str.PreExtract
call fcn.004025aa
add esp, 0x14
lea ecx, [ebp - 0x44]
call fcn.00401251
xor edi, edi
cmp dword [0x42c3f4], edi
jne 0x4076cf
push ebx
call fcn.00402df8
pop ecx
jmp 0x4076dd
call fcn.0040a0cd
test eax, eax
jne 0x407705
mov eax, 0x80004005
cmp eax, edi
je 0x407705
call fcn.0040621a
lea ecx, [ebp - 0x80]
call fcn.00401251
lea ecx, [ebp - 0x24]
call fcn.00401251
lea ecx, [ebp - 0x18]
call fcn.00401251
push 8
jmp 0x406c3f
call fcn.0040630d
mov ecx, esi
call fcn.00405c0c
test al, al
je 0x407722
cmp byte [0x42c25c], 0
jne 0x4078c3
lea ecx, [ebp - 0x38]
call fcn.00401245
lea ecx, [ebp - 0x68]
call fcn.00401245
mov ecx, esi
call fcn.00405c04
test al, al
jne 0x407747
lea eax, [ebp - 0x38]
push eax
call fcn.00401dad
pop ecx
lea ecx, [ebp - 0x24]
call fcn.004034dc
test al, al
je 0x407830
cmp byte [0x42c25c], 0
jne 0x407858
mov edi, str.setup.exe
push edi
push 0x424c94
lea eax, [ebp - 0xa4]
push ebx
push eax
call fcn.00412d23
add esp, 0xc
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00412d23
add esp, 0xc
mov ecx, eax
call fcn.0040a992
push eax
lea ecx, [ebp - 0x68]
call fcn.00401000
lea ecx, [ebp - 0x44]
call fcn.0040cb01
lea ecx, [ebp - 0xa4]
call fcn.0040cb01
lea ecx, [ebp - 0x68]
call fcn.0040a992
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x407800
call fcn.0040621a
push 0xf
push 0
call fcn.0040a35a
pop ecx
pop ecx
lea ecx, [ebp - 0x68]
call fcn.00401251
lea ecx, [ebp - 0x38]
call fcn.00401251
lea ecx, [ebp - 0x80]
call fcn.00401251
lea ecx, [ebp - 0x24]
call fcn.00401251
lea ecx, [ebp - 0x18]
call fcn.00401251
jmp 0x406c9a
push dword [ebp - 8]
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0x2c]
mov ecx, ebx
call fcn.0040a992
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.00401885
push eax
call fcn.0040227a
add esp, 0x14
lea ecx, [ebp - 0x44]
call fcn.00401251
xor edi, edi
jmp 0x407858
push dword [ebp - 8]
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.00405c00
push eax
mov ecx, ebx
call fcn.0040a992
push eax
lea ecx, [ebp - 0x24]
call fcn.0040a992
push eax
call fcn.004025aa
add esp, 0x14
cmp dword [0x42c3f8], edi
jne 0x4078b3
call fcn.0040630d
push 0xffffffffffffffff
mov ecx, esi
call fcn.00405c00
push eax
push str.Shortcut
push 0x40637c
call fcn.004064b8
add esp, 0x10
mov ecx, 0x42c2bc
call fcn.0040a992
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0xffffffffffffffff
mov ecx, esi
call fcn.00405c00
push eax
push str.Delete
push 0x406484
call fcn.004064b8
add esp, 0x10
call fcn.0040621a
lea ecx, [ebp - 0x68]
call fcn.00401251
lea ecx, [ebp - 0x38]
call fcn.00401251
cmp dword [0x42b3c0], 0xffffffff
jne 0x4078e1
mov ecx, esi
call fcn.00405c08
test al, al
jne 0x407939
mov dword [0x42b3c0], 1
cmp dword [0x42b3c0], edi
jle 0x407939
push edi
push str.FinishMessage
call fcn.00404439
mov ebx, eax
pop ecx
pop ecx
cmp ebx, edi
je 0x407939
mov eax, 0x3e7
cmp dword [0x42b3c0], eax
jle 0x40790e
mov dword [0x42b3c0], eax
lea ecx, [ebp - 0x10c]
call fcn.0040624c
push edi
push ebx
push dword [0x42c278]
lea ecx, [ebp - 0x10c]
push 0x11
call fcn.00408f2b
lea ecx, [ebp - 0x10c]
call fcn.0040963c
mov ecx, esi
call fcn.00405c0c
test al, al
jne 0x40797a
cmp dword [0x42c3f8], edi
jne 0x40797a
push edi
push str.SelfDelete
call fcn.00404439
pop ecx
pop ecx
cmp eax, edi
je 0x40797a
cmp word [eax], 0x31
jne 0x40797a
sub esp, 0xc
mov ecx, esp
push 0x42c3a4
call fcn.004028ff
call fcn.00406672
add esp, 0xc
lea ecx, [ebp - 0x80]
call fcn.00401251
lea ecx, [ebp - 0x24]
call fcn.00401251
lea ecx, [ebp - 0x18]
call fcn.00401251
lea ecx, [ebp - 0x74]
call fcn.00401251
lea ecx, [ebp - 0xb0]
call fcn.00401251
lea ecx, [ebp - 0x50]
call fcn.00401251
xor eax, eax
jmp 0x4079c8
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
leave
ret