Function at 0x407c10
Capabilities:
Accept command line arguments
Check if file exists
Check os version
Get common file path
Get file attributes
Log keystrokes via polling
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x408
push ebx
push esi
push edi
push 0x407bf0
call fcn.0041ffb8
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0xf4240
jne 0x407c44
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
call fcn.00403e80
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1fc], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x408dd0
cmp dword [ebp - 0x1ec], 2
jne 0x408dd0
cmp dword [ebp - 0x1f8], 5
jb 0x408dd0
lea ecx, [ebp - 0x38]
mov byte [str.___InstallEnd__], 0x3b
mov byte [str.___Install__UTF_8_], 0x3b
call fcn.00416190
lea ecx, [ebp - 0xe8]
call fcn.00416190
lea ecx, [ebp - 0x68]
call fcn.00416190
push 0x42b9dc
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x434f58], eax
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.0040c890
call fcn.00405660
push 3
call fcn.00404c70
push 0x28
mov dword [0x434f1c], eax
call fcn.00404c70
push 2
mov dword [0x434f5c], eax
call fcn.00404c70
push 5
mov dword [0x434f18], eax
call fcn.00404c70
push 0x15
mov dword [0x434f24], eax
call fcn.00404c70
push 0x16
mov dword [0x434f28], eax
call fcn.00404c70
push 0x17
mov dword [0x434f2c], eax
call fcn.00404c70
mov ebx, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
add esp, 0x1c
mov dword [0x434f34], eax
xor edi, edi
mov dword [0x434f30], 0
mov dword [0x434f20], 0
nop
push 0
push edi
lea eax, [ebp - 0x408]
push eax
push 0
call ebx
test eax, eax
je 0x407da7
push edi
lea eax, [ebp - 0xdc]
push str.SfxFolder_02d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
push 1
lea eax, [ebp - 0x408]
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00406d30
add esp, 0x18
xor esi, esi
nop
cmp dword [esi + 0x4343c4], edi
jne 0x407d9f
push 0
lea eax, [ebp - 0x408]
push eax
push dword [esi + 0x4343c8]
call fcn.00406d30
add esp, 0xc
add esi, 8
cmp esi, 0x28
jb 0x407d80
inc edi
cmp edi, 0x40
jl 0x407d40
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea eax, [ebp - 0x38]
push eax
call esi
push eax
call fcn.00405da0
add esp, 8
lea ecx, [ebp - 0x68]
push eax
call fcn.00416300
lea eax, [ebp - 0x68]
push eax
call fcn.004064e0
mov edi, dword [ebp - 0x68]
push 1
push 0x42ad30
push str.SfxVarModulePlatform
call fcn.00406d30
add esp, 0x10
push 1
call fcn.00404f70
push eax
push str.SfxVarSystemPlatform
call fcn.00406d30
add esp, 0xc
push 1
call esi
push eax
push str.SfxVarCmdLine0
call fcn.00406d30
movzx eax, word [0x434f08]
lea ecx, [ebp - 0x38]
add esp, 0xc
push eax
push 0x42bb68
push 0x20
call fcn.004072a0
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push eax
call ebx
add esp, 0xc
lea ecx, [ebp - 0x38]
call fcn.00407680
push 1
push dword [ebp - 0x38]
push str.SfxVarSystemLanguage
call fcn.00406d30
push str.sfxlang
push edi
call fcn.004072f0
add esp, 0x14
test eax, eax
je 0x407e9f
cmp word [eax], 0x3a
jne 0x407e9f
add eax, 2
push eax
call fcn.0041faf5
add esp, 4
test eax, eax
jle 0x407e8d
movzx edx, word [0x434f08]
cmp eax, 0xffff
movzx ecx, ax
cmovle edx, ecx
mov word [0x434f08], dx
add edi, 2
cmp word [edi], 0x20
jbe 0x407e9f
add edi, 2
cmp word [edi], 0x20
ja 0x407e96
push str.sfxversion
push edi
call fcn.004072f0
add esp, 8
test eax, eax
je 0x407f8f
lea ecx, [ebp - 0xd4]
mov dword [0x4343b4], 8
call fcn.00409690
push 1
mov dword [ebp - 0xd4], 0x42b9ac
call fcn.00404c70
add esp, 4
lea ecx, [ebp - 0xc]
push eax
call fcn.00416130
xor esi, esi
cmp dword [0x4350a8], esi
jbe 0x407f1d
test esi, esi
je 0x407f02
push 0x42ba0c
lea ecx, [ebp - 0xc]
call fcn.00416640
mov eax, dword [esi*4 + 0x4350b0]
lea ecx, [ebp - 0xc]
push dword [eax + 0x10]
call fcn.004166b0
inc esi
cmp esi, dword [0x4350a8]
jb 0x407ef1
push 7
push 0x3eff
push 0x1f
push 0x88
push 1
lea eax, [ebp - 0x300]
push str.__n_t_X____03X____03X____03X____03X
push eax
call ebx
add esp, 0x1c
lea eax, [ebp - 0x300]
lea ecx, [ebp - 0xc]
push eax
call fcn.00416640
push 0x42ba5c
lea ecx, [ebp - 0xc]
call fcn.00416640
push 0
push dword [ebp - 0xc]
lea ecx, [ebp - 0xd4]
push dword [0x434f18]
push 0x11
call fcn.0040bfd0
push dword [ebp - 0xc]
call fcn.0041e329
add esp, 4
lea ecx, [ebp - 0xd4]
call fcn.00409710
xor esi, esi
jmp 0x408da7
push str.sfxwaitall
push edi
call fcn.004072f0
add esp, 8
test eax, eax
je 0x407fae
push eax
call fcn.00402240
mov esi, eax
jmp 0x408da4
push str.sfxelevation
push edi
call fcn.004072f0
add esp, 8
mov ecx, 0x434fb4
test eax, eax
cmovne edi, eax
push 0x208
push 0x208
call fcn.004072a0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x407ff8
push 6
push 1
call fcn.0040be50
add esp, 8
mov esi, 1
jmp 0x408da7
mov ecx, 0x434fb4
call fcn.00407680
push str.sfxtest
push edi
call fcn.004072f0
mov esi, eax
add esp, 8
test esi, esi
je 0x408181
cmp word [esi], 0x3a
jne case.0x408038.98
movzx ecx, word [esi + 2]
mov eax, ecx
or eax, 0x20
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x408038.98
movzx eax, byte [eax + 0x408e0c]
jmp dword [eax*4 + 0x408df4]
cmp ecx, 0x44
jne 0x408092
cmp word [esi + 4], 0x3a
jne case.0x408038.98
movzx eax, word [esi + 6]
add esi, 6
cmp eax, 0x20
jbe 0x40807f
mov ecx, eax
nop dword [eax]
cmp cx, 0x3a
je 0x40807f
push ecx
mov ecx, 0x435098
call fcn.00403ad0
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
cmp eax, 0x20
ja 0x408060
cmp dword [0x43509c], 0
jne 0x408095
mov esi, 0x64
jmp 0x408da7
add esi, 4
mov dword [0x435090], 0
cmp word [esi], 0x3a
jne 0x4080c1
lea eax, [esi + 2]
push eax
call fcn.0041faf5
add esp, 4
mov dword [0x435090], eax
cmp eax, 0xe10
ja 0x4080c1
test eax, eax
jne 0x4080cb
mov dword [0x435090], 0xa
mov dword [0x435094], 1
jmp 0x4080f5
mov dword [0x435094], 2
jmp 0x4080f5
xor eax, eax
cmp word [esi + 4], 0x63
sete al
add eax, 3
mov dword [0x435094], eax
cmp word [esi], 0x20
jbe 0x408109
nop dword [eax + eax]
add esi, 2
cmp word [esi], 0x20
ja 0x408100
push str.sfxconfig
push esi
mov edi, esi
call fcn.004072f0
mov edx, eax
add esp, 8
test edx, edx
je 0x408181
movzx ecx, word [edx]
mov eax, ecx
cmp ecx, 0x3a
jne 0x408130
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
je 0x40814c
movzx ecx, ax
cmp cx, 0x20
ja 0x40814c
movzx eax, word [edx + 2]
add edx, 2
mov ecx, eax
test ax, ax
jne 0x408138
mov eax, dword [ebp - 0x38]
xor ecx, ecx
mov dword [ebp - 0x34], 0
mov word [eax], cx
lea eax, [ebp - 0x38]
push eax
push edx
call fcn.00405da0
add esp, 8
mov edi, eax
cmp dword [0x435094], 2
je 0x408181
lea eax, [ebp - 0x38]
mov ecx, 0x434fb4
push eax
call fcn.00416290
push 0x434fb4
mov ecx, 0x434f78
call fcn.00416290
push 0x434fb4
mov ecx, 0x434f84
call fcn.00416290
push 0x434fb4
call fcn.00404bc0
mov esi, eax
add esp, 4
test esi, esi
js 0x408254
mov eax, dword [0x434f78]
xor edx, edx
mov dword [0x434f7c], esi
mov ecx, 0x434f84
mov word [eax + esi*2], dx
mov eax, dword [0x434fb4]
lea eax, [eax + esi*2]
add eax, 2
push eax
call fcn.00416300
mov eax, dword [0x434fb4]
mov ecx, 0x434f9c
lea eax, [eax + esi*2]
add eax, 2
push eax
call fcn.00416300
push 0x2e
mov ecx, 0x434f9c
call fcn.00416d00
test eax, eax
jle 0x408214
mov ecx, dword [0x434f9c]
xor edx, edx
mov dword [0x434fa0], eax
mov word [ecx + eax*2], dx
push 0x434f9c
mov ecx, 0x434f90
call fcn.00416290
push 4
call fcn.00404c70
add esp, 4
mov ecx, 0x434f90
push eax
call fcn.00416640
mov ecx, dword [0x434f9c]
mov eax, dword [0x434f90]
mov dword [0x434f18], ecx
mov dword [0x434f1c], eax
mov dword [0x434f48], ecx
call fcn.00404f70
push eax
mov ecx, 0x434fa8
call fcn.00416300
push dword [0x434fb4]
mov ecx, 0x434fc0
call fcn.004015a0
test al, al
jne 0x4082f2
push dword [0x434fb4]
push 7
push 1
call fcn.0040be50
add esp, 0xc
mov esi, 2
jmp 0x408da7
cmp word [esi + 4], 0x3a
jne case.default.0x4082af
movzx eax, word [esi + 6]
add eax, 0xffffffcf
cmp eax, 4
ja case.default.0x4082af
jmp dword [eax*4 + 0x408e24]
mov esi, 1
jmp 0x408da7
mov esi, 0x88
jmp 0x408da7
mov esi, 0x1f
jmp 0x408da7
mov esi, 0x3eff
jmp 0x408da7
mov esi, 7
jmp 0x408da7
mov esi, 0x4f3c
jmp 0x408da7
lea ecx, [ebp - 0x80]
call fcn.00415fd0
mov ecx, 0x43504c
call fcn.00407080
lea eax, [ebp - 0x80]
push eax
push 0
push dword [0x434fc4]
call fcn.004059a0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x408d9c
mov eax, dword [0x435094]
test eax, eax
jne 0x4084b9
push str.sfxconfig
push edi
call fcn.004072f0
mov esi, eax
add esp, 8
test esi, esi
je 0x4084b4
movzx ecx, word [esi]
mov eax, ecx
cmp ecx, 0x3a
jne 0x408358
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
je 0x40867b
movzx ecx, ax
movzx edx, cx
cmp cx, 0x20
ja 0x40837d
movzx eax, word [esi + 2]
add esi, 2
mov ecx, eax
mov edx, eax
test ax, ax
jne 0x408364
test dx, dx
je 0x40867b
push 1
xorps xmm0, xmm0
mov dword [ebp - 0x4c], 0
push esi
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x50], 0x42aadc
mov dword [ebp - 0x48], 0xffffffff
movlpd qword [ebp - 0x40], xmm0
call fcn.00414680
test al, al
jne 0x408412
push esi
lea ecx, [ebp - 0xc]
call fcn.00416130
lea eax, [ebp - 0xc]
push eax
call fcn.00404bc0
mov ecx, eax
add esp, 4
test ecx, ecx
jns 0x4083d5
push dword [ebp - 0xc]
jmp 0x40847d
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 8], ecx
mov word [eax + ecx*2], dx
push dword [ebp - 0xc]
call fcn.00403f30
add esp, 4
test eax, eax
je 0x4083cd
push 1
xorps xmm0, xmm0
lea ecx, [ebp - 0x48]
push esi
movlpd qword [ebp - 0x40], xmm0
call fcn.00414680
test al, al
je 0x4083cd
push dword [ebp - 0xc]
call fcn.0041e329
add esp, 4
lea ecx, [ebp - 0x20]
call fcn.00415fd0
push 0x434408
lea ecx, [ebp - 0x20]
call fcn.00416220
push str.___Install__UTF_8_
lea ecx, [ebp - 0x20]
call fcn.00416580
push dword [ebp - 0x80]
lea ecx, [ebp - 0x20]
call fcn.00416580
push str.___InstallEnd__
lea ecx, [ebp - 0x20]
call fcn.00416580
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x50]
push dword [ebp - 0x20]
push eax
call fcn.00414dd0
test eax, eax
jne 0x40847a
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jne 0x40847a
push dword [ebp - 0x20]
call fcn.0041e329
add esp, 4
mov bl, 1
jmp 0x408487
push dword [ebp - 0x20]
call fcn.0041e329
add esp, 4
xor bl, bl
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x50], 0x42aadc
call fcn.00414650
test bl, bl
jne 0x40867b
push 0xa
push 0
call fcn.0040be50
add esp, 8
mov esi, 4
jmp 0x408d9c
mov eax, dword [0x435094]
cmp eax, 4
je 0x40867b
mov eax, dword [0x4340c0]
mov esi, 0x4340c0
test eax, eax
je 0x408508
push eax
lea eax, [ebp - 0xd8]
push str.SfxString_d
push eax
call ebx
add esp, 0xc
push 0
push dword [esi]
call fcn.00404c70
add esp, 4
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.00406d30
mov eax, dword [esi + 0x10]
lea esi, [esi + 0x10]
add esp, 0xc
test eax, eax
jne 0x4084d0
push 0x42a9fc
mov ecx, 0x434fd4
call fcn.00416300
push edi
mov ecx, 0x434fd4
call fcn.00416640
call fcn.00401d00
mov ebx, eax
test ebx, ebx
jne 0x408535
lea esi, [eax + 0x20]
jmp 0x408d9c
call fcn.00407740
mov ecx, 0x434fc0
call fcn.004017f0
mov ecx, 0x43504c
call fcn.00407080
push 0
push 0
push dword [0x434fc4]
call fcn.004059a0
add esp, 0xc
call fcn.00407740
mov ecx, 0x434fc0
call fcn.00401600
call fcn.00401d00
call fcn.00407740
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push eax
push str.SetEnvironment
call fcn.00405640
mov esi, eax
add esp, 8
test esi, esi
je 0x4085fc
push esi
lea ecx, [ebp - 0xc]
call fcn.00416130
push 0x3d
push dword [ebp - 0xc]
call fcn.004167f0
mov ecx, eax
add esp, 8
test ecx, ecx
jle 0x4085f1
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 8], ecx
push edx
mov word [eax + ecx*2], dx
inc ecx
lea eax, [esi + ecx*2]
push eax
push dword [ebp - 0xc]
call fcn.00406d30
push dword [ebp - 0xc]
inc dword [ebp - 0x10]
call fcn.0041e329
lea eax, [ebp - 0x10]
push eax
push str.SetEnvironment
call fcn.00405640
mov esi, eax
add esp, 0x18
test esi, esi
jne 0x408597
jmp 0x4085fc
push dword [ebp - 0xc]
call fcn.0041e329
add esp, 4
call fcn.00407a90
mov eax, dword [0x4343b4]
xor ecx, ecx
cmp eax, 0xffffffff
cmove eax, ecx
mov dword [0x4343b4], eax
cmp byte [0x434fd3], cl
je 0x408682
push ecx
push str.HelpText
call fcn.00405640
mov esi, eax
add esp, 8
test esi, esi
jne 0x40863b
push 0x18
call fcn.00404c70
add esp, 4
mov esi, eax
lea ecx, [ebp - 0xd4]
call fcn.00409690
push 0
push esi
push dword [0x434f18]
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd4], 0x42b9ac
push 0x11
mov dword [ebp - 0x9c], 0x7d6
call fcn.0040bfd0
lea ecx, [ebp - 0xd4]
call fcn.00409710
xor esi, esi
jmp 0x408d9c
cmp byte [0x434fd1], cl
je 0x408694
and eax, 0xfffffeff
mov dword [0x4343b4], eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push str.InstallPath
call fcn.00405640
add esp, 8
test eax, eax
je 0x4086c1
push eax
mov ecx, 0x434f6c
call fcn.00416300
mov byte [0x434f41], 1
push 0x434f6c
call fcn.004076b0
push 0
push str.BeginPromptTimeout
call fcn.00405640
add esp, 0xc
test eax, eax
je 0x4086ec
push eax
call fcn.0041faf5
add esp, 4
mov dword [0x434f44], eax
cmp dword [0x43509c], 0
je 0x408701
call fcn.0040c410
mov esi, eax
jmp 0x408d9c
cmp dword [0x435094], 3
jne 0x408716
call fcn.0040c760
mov esi, eax
jmp 0x408d9c
push 0
push 0x42a9f8
push str.SfxVarApiPath
call fcn.00406d30
call fcn.00407a90
push 0
push str.ExecuteOnLoad
call fcn.00405640
add esp, 0x14
test eax, eax
je 0x4087ac
cmp byte [0x434fd2], 0
jne 0x4087ac
mov ecx, 0x4343ec
call fcn.004092f0
push 0
push dword [0x4343f0]
push str.SfxVarApiPath
call fcn.00406d30
add esp, 0xc
call fcn.00407a90
push 0x42a9f8
lea ecx, [ebp - 0xc]
call fcn.00416130
mov ecx, 0x4343ec
call fcn.004092f0
push 0x42a9f8
lea eax, [ebp - 0xc]
push eax
push 0x42a9f8
push dword [0x4343f0]
push str.ExecuteOnLoad
call fcn.004022d0
push dword [ebp - 0xc]
call fcn.0041e329
add esp, 0x18
mov ecx, 0x434ff8
call fcn.0040a0a0
mov edi, dword [sym.imp.USER32.dll_GetKeyState]
mov esi, 0x8000
push 0
push str.BeginPrompt
call fcn.00405640
add esp, 8
test eax, eax
je 0x408819
cmp byte [0x434fd1], 0
jne 0x408819
push eax
push dword [0x434f18]
call fcn.0040bd20
add esp, 8
test eax, eax
je 0x408936
push 0x10
call edi
test si, ax
je 0x408806
mov word [0x434fd0], 0x101
cmp dword [0x435068], 0
je 0x408819
and dword [0x4343b4], 0xffffff7f
lea ecx, [ebp - 0x2c]
call fcn.00416190
cmp byte [0x434fd0], 0
je 0x408895
mov esi, dword [0x434fcc]
push str.AutoInstall
lea ecx, [ebp - 0x2c]
call fcn.00416300
movzx eax, word [esi]
lea ecx, [ebp - 0x2c]
push eax
call fcn.00403ad0
push 0
push dword [ebp - 0x2c]
call fcn.00405640
add esp, 8
test eax, eax
je 0x408940
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x30
jb 0x40886f
cmp eax, 0x39
jbe 0x408830
cmp eax, 0x61
jb 0x408879
cmp eax, 0x7a
jbe 0x408830
cmp eax, 0x41
jb 0x408883
cmp eax, 0x5a
jbe 0x408830
push str.AutoInstall
lea ecx, [ebp - 0x2c]
call fcn.00416300
mov esi, 0x8000
cmp dword [ebp - 0x28], 0
mov byte [ebp - 0x14], 0
jne 0x4088e9
push 0
push str.ExecuteFile
call fcn.00405640
add esp, 8
test eax, eax
je 0x4088c3
push str.ExecuteFile
lea ecx, [ebp - 0x2c]
call fcn.00416300
mov byte [ebp - 0x14], 1
cmp dword [ebp - 0x28], 0
jne 0x4088e9
push 0
push str.RunProgram
call fcn.00405640
add esp, 8
test eax, eax
je 0x4088e9
push str.RunProgram
lea ecx, [ebp - 0x2c]
call fcn.00416300
cmp byte [0x434fd0], 0
jne 0x408963
cmp byte [0x434fd1], 0
jne 0x408963
mov eax, dword [0x4343b4]
and al, 0xc0
cmp al, 0x80
jne 0x408963
push dword [0x434f2c]
push dword [0x434f28]
call fcn.0040bf60
add esp, 8
test eax, eax
jne 0x408963
cmp byte [0x434f40], al
je 0x408959
push dword [ebp - 0x2c]
call fcn.0041e329
add esp, 4
jmp 0x4087c1
mov esi, 5
jmp 0x408d9c
push dword [ebp - 0x2c]
push 0xe
push 0
call fcn.0040be50
add esp, 0xc
mov esi, 6
jmp 0x408d91
mov esi, 5
jmp 0x408d91
cmp dword [0x434f70], 0
jne 0x408999
lea eax, [ebp - 0x5c]
push str.7ZipSfx._03x
push eax
call fcn.00404580
add esp, 8
mov ecx, 0x434f6c
push eax
call fcn.00416290
push dword [ebp - 0x5c]
call fcn.0041e329
mov byte [0x434f41], 0
jmp 0x4089d5
push 0x434f6c
lea ecx, [ebp - 0xc]
call fcn.004160d0
lea eax, [ebp - 0xc]
push eax
call fcn.004076b0
add esp, 4
cmp dword [ebp - 8], 0
je 0x4089c6
lea eax, [ebp - 0xc]
mov ecx, 0x434f6c
push eax
call fcn.00416290
push dword [ebp - 0xc]
mov byte [0x434f41], 1
call fcn.0041e329
mov ecx, dword [0x434f6c]
add esp, 4
mov edx, dword [0x434f70]
movzx eax, word [ecx + edx*2 - 2]
cmp eax, 0x5c
je 0x4089f3
cmp eax, 0x2f
jne 0x408a01
lea eax, [edx - 1]
xor edx, edx
mov dword [0x434f70], eax
mov word [ecx + eax*2], dx
cmp byte [0x434fd1], 0
je 0x408a11
or dword [0x434f3c], 3
push str.PreExtract
lea ecx, [ebp - 0x74]
call fcn.00416130
mov eax, dword [0x434fcc]
lea ecx, [ebp - 0x74]
movzx eax, word [eax]
push eax
call fcn.00403ad0
push 0
push dword [ebp - 0x74]
call fcn.00405640
add esp, 8
test eax, eax
je 0x408ab3
cmp byte [0x434fd2], 0
jne 0x408ab3
mov ecx, 0x4343ec
call fcn.004092f0
push 0
push dword [0x4343f0]
push str.SfxVarApiPath
call fcn.00406d30
add esp, 0xc
call fcn.00407a90
push 0x42a9f8
lea ecx, [ebp - 0xc]
call fcn.00416130
mov esi, dword [0x434fcc]
mov ecx, 0x4343ec
call fcn.004092f0
push 0x42a9f8
lea eax, [ebp - 0xc]
push eax
push esi
push dword [0x4343f0]
push str.PreExtract
call fcn.004022d0
push dword [ebp - 0xc]
call fcn.0041e329
add esp, 0x18
cmp dword [0x435090], 0
jne 0x408bbc
push 0x434f6c
call fcn.00402de0
add esp, 4
test eax, eax
jne 0x408bc9
call fcn.00407a90
cmp byte [0x434fd2], 0
je 0x408af0
cmp byte [0x434f41], 0
jne 0x408cb0
lea ecx, [ebp - 0xc]
call fcn.00416190
lea ecx, [ebp - 0x20]
call fcn.00416190
cmp byte [0x434fd0], 0
jne 0x408b15
lea eax, [ebp - 0xc]
push eax
call fcn.00402730
add esp, 4
cmp dword [ebp - 0x28], 0
jne 0x408c1c
cmp byte [0x434f41], 0
jne 0x408c38
push str.setup.exe
push 0x42abb8
lea eax, [ebp - 0x44]
push 0x434f6c
push eax
call fcn.00416400
add esp, 0xc
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.00416400
add esp, 0xc
lea ecx, [ebp - 0x20]
push dword [eax]
call fcn.00416300
push dword [ebp - 0x5c]
call fcn.0041e329
push dword [ebp - 0x44]
call fcn.0041e329
add esp, 8
push dword [ebp - 0x20]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x408bea
cmp byte [0x434f41], 0
jne 0x408b96
push dword [0x434f6c]
call fcn.00404830
add esp, 4
push 0xf
push 0
call fcn.0040be50
push dword [ebp - 0x20]
call fcn.0041e329
push dword [ebp - 0xc]
call fcn.0041e329
add esp, 0x10
mov esi, 7
jmp 0x408d86
call fcn.00409ff0
test eax, eax
jne 0x408ad5
cmp byte [0x434f41], 0
jne 0x408be0
push dword [0x434f6c]
call fcn.00404830
add esp, 4
mov esi, 8
jmp 0x408d86
mov esi, dword [0x434f6c]
lea ecx, [ebp - 0x5c]
push str.setup.exe
call fcn.00416130
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x14]
lea eax, [ebp - 0x5c]
push esi
push eax
call fcn.004023f0
push dword [ebp - 0x5c]
call fcn.0041e329
add esp, 0x18
jmp 0x408c38
push ebx
lea eax, [ebp - 0xc]
push eax
push dword [0x434fcc]
push dword [0x434f6c]
push dword [ebp - 0x2c]
call fcn.004022d0
add esp, 0x14
cmp dword [0x435094], 0
jne 0x408c9d
call fcn.00407a90
push 0xffffffffffffffff
push dword [0x434fcc]
push str.Shortcut
push 0x407410
call fcn.00407570
add esp, 0x10
push dword [0x434f78]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0xffffffffffffffff
push dword [0x434fcc]
push str.Delete
push 0x407390
call fcn.00407570
add esp, 0x10
cmp byte [0x434f41], 0
jne 0x408c9d
push dword [0x434f6c]
call fcn.00404830
add esp, 4
push dword [ebp - 0x20]
call fcn.0041e329
push dword [ebp - 0xc]
call fcn.0041e329
add esp, 8
mov eax, dword [0x4343c0]
cmp eax, 0xffffffff
jne 0x408cd3
cmp byte [0x434fd1], 0
jne 0x408d42
mov dword [0x4343c0], 1
jmp 0x408cd7
test eax, eax
jle 0x408d42
push 0
push str.FinishMessage
call fcn.00405640
mov esi, eax
add esp, 8
test esi, esi
je 0x408d42
mov ecx, dword [0x4343c0]
mov eax, 0x3e7
cmp ecx, eax
cmovg ecx, eax
mov dword [0x4343c0], ecx
lea ecx, [ebp - 0xd0]
call fcn.00409690
push 0
push esi
push dword [0x434f18]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xd0], 0x42b97c
push 0x11
mov dword [ebp - 0x98], 0x7d5
call fcn.0040bfd0
lea ecx, [ebp - 0xd0]
call fcn.00409710
cmp byte [0x434fd2], 0
jne 0x408d84
cmp dword [0x435094], 0
jne 0x408d84
push 0
push str.SelfDelete
call fcn.00405640
add esp, 8
test eax, eax
je 0x408d84
cmp word [eax], 0x31
jne 0x408d84
sub esp, 0xc
mov ecx, esp
push 0x434fb4
call fcn.004160d0
call fcn.004070d0
add esp, 0xc
xor esi, esi
push dword [ebp - 0x74]
call fcn.0041e329
add esp, 4
push dword [ebp - 0x2c]
call fcn.0041e329
add esp, 4
push dword [ebp - 0x80]
call fcn.0041e329
add esp, 4
push dword [ebp - 0x68]
call fcn.0041e329
push dword [ebp - 0xe8]
call fcn.0041e329
push dword [ebp - 0x38]
call fcn.0041e329
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
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]
pop edi
pop esi
mov eax, 0x14
pop ebx
mov esp, ebp
pop ebp
ret 0x10