Function at 0x405433
Capabilities:
Accept command line arguments
Check if file exists
Check os version
Encode data using xor
Get file attributes
Log keystrokes via polling
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x31c
push ebx
push esi
push edi
push 0x40478a
call dword [sym.imp.MSVCRT.dll_int____cdecl___unsigned_int____cdecl__set_new_handler_int____cdecl___unsigned_int__]
pop ecx
call fcn.00402138
lea eax, [ebp - 0x2b4]
push eax
mov dword [ebp - 0x2b4], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x406d25
cmp dword [ebp - 0x2a4], 2
jne 0x406d25
cmp dword [ebp - 0x2b0], 5
jb 0x406d25
or dword [ebp - 0x48], 0xffffffff
or dword [ebp - 0x44], 0xffffffff
lea ecx, [ebp + 0x14]
mov byte [str.___InstallEnd__], 0x3b
mov byte [str.___Install__UTF_8_], 0x3b
mov dword [ebp + 0x38], 0x41e8d4
xor esi, esi
mov byte [ebp + 0x66], 0
mov byte [ebp + 0x67], 0
mov byte [ebp + 0x5f], 0
mov byte [ebp + 0x64], 0
call fcn.00413e8c
lea ecx, [ebp - 0x6c]
call fcn.00413e8c
mov dword [ebp + 0x4c], esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x54], esi
call fcn.00404000
push 0x41ecc0
lea ecx, [ebp - 0x60]
call fcn.004142c1
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea eax, [ebp + 0x14]
push eax
call esi
push eax
call fcn.00404372
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.00414348
lea eax, [ebp - 0x60]
push eax
call fcn.00403394
mov ebx, dword [ebp - 0x60]
pop ecx
push ebx
mov dword [ebp + 0x48], ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
xor edi, edi
inc edi
push edi
lea eax, [ebx + eax*2]
push 0x41d6f4
push str.SfxVarModulePlatform
mov dword [ebp - 0x18], eax
call fcn.00403bf7
add esp, 0xc
push edi
call fcn.004027e9
push eax
push str.SfxVarSystemPlatform
call fcn.00403bf7
add esp, 0xc
push edi
call esi
push eax
push str.SfxVarCmdLine0
call fcn.00403bf7
movzx eax, word [0x422764]
add esp, 0xc
push eax
push 0x41ec40
push 0x20
lea ecx, [ebp + 0x14]
call fcn.004030a9
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
mov esi, dword [ebp + 0x14]
push esi
call fcn.00401d34
xor ecx, ecx
mov dword [ebp + 0x18], eax
push edi
mov word [esi + eax*2], cx
push dword [ebp + 0x14]
push str.SfxVarSystemLanguage
call fcn.00403bf7
push str.sfxlang
push ebx
call fcn.00404454
add esp, 0x24
test eax, eax
je 0x4055e8
cmp word [eax], 0x3a
jne 0x4055e8
add eax, 2
push eax
call dword [sym.imp.MSVCRT.dll__wtol]
pop ecx
lea ecx, [eax - 1]
cmp ecx, 0xfffe
ja 0x4055cc
mov word [0x422764], ax
add ebx, 2
cmp word [ebx], 0x20
ja 0x4055cc
jmp 0x4055e0
cmp ax, 0x20
ja 0x4055e8
add ebx, 2
movzx eax, word [ebx]
test ax, ax
jne 0x4055d7
push str.sfxversion
push ebx
call fcn.00404454
pop ecx
pop ecx
test eax, eax
je 0x40562a
call fcn.00404a0b
xor esi, esi
push dword [ebp - 0x60]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
lea ecx, [ebp + 0x4c]
call fcn.004052ad
push dword [ebp - 0x6c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x14]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
mov eax, esi
jmp 0x406d3c
push str.sfxwaitall
push ebx
call fcn.00404454
pop ecx
pop ecx
test eax, eax
je 0x405646
push eax
call fcn.00404e5f
pop ecx
mov esi, eax
jmp 0x405600
push str.sfxelevation
push ebx
mov byte [ebp + 0x65], 0
call fcn.00404454
pop ecx
pop ecx
test eax, eax
je 0x405674
mov byte [ebp + 0x65], 1
jmp 0x40566a
cmp cx, 0x20
ja 0x405672
add eax, 2
movzx ecx, word [eax]
test cx, cx
jne 0x405661
mov ebx, eax
mov eax, 0x208
push eax
push eax
mov ecx, 0x42281c
call fcn.004030a9
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x4056a3
push 6
push edi
call fcn.00408eab
pop ecx
pop ecx
mov esi, edi
jmp 0x405600
mov esi, dword [0x42281c]
push esi
call fcn.00401d34
xor ecx, ecx
mov dword [0x422820], eax
mov dword [esp], str.sfxtest
push ebx
mov word [esi + eax*2], cx
call fcn.00404454
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x40586a
cmp word [esi], 0x3a
je 0x4056e1
push 0x64
pop esi
jmp 0x405600
movzx ecx, word [esi + 2]
mov eax, ecx
or eax, 0x20
sub eax, 0x61
push 2
pop ebx
je 0x4057eb
sub eax, ebx
je 0x4057d7
dec eax
je 0x405759
sub eax, 0xb
je 0x405715
sub eax, 7
jne 0x4056d9
mov esi, 0x4f30
jmp 0x405600
cmp word [esi + 4], 0x3a
jne 0x4055fe
movzx eax, word [esi + 6]
sub eax, 0x31
je 0x40569c
dec eax
je 0x40574f
dec eax
je 0x40574b
dec eax
je 0x405741
dec eax
jne 0x4055fe
push 7
jmp 0x4056db
mov esi, 0x3ff
jmp 0x405600
push 0x1f
jmp 0x4056db
mov esi, 0x5ff
jmp 0x405600
cmp ecx, 0x44
jne 0x40579a
cmp word [esi + 4], 0x3a
jne 0x4056d9
add esi, 6
jmp 0x405784
cmp ax, 0x3a
je 0x40578c
movzx eax, ax
push eax
mov ecx, 0x422868
call fcn.004011ee
add esi, ebx
movzx eax, word [esi]
cmp eax, 0x20
ja 0x40576e
cmp dword [0x42286c], 0
jne 0x40579d
jmp 0x4056d9
add esi, 4
and dword [0x422860], 0
cmp word [esi], 0x3a
jne 0x4057c5
lea eax, [esi + 2]
push eax
call dword [sym.imp.MSVCRT.dll__wtol]
pop ecx
mov dword [0x422860], eax
cmp eax, 0xe10
ja 0x4057c5
test eax, eax
jne 0x4057cf
mov dword [0x422860], 0xa
mov dword [0x422864], edi
jmp 0x4057f5
xor eax, eax
cmp word [esi + 4], 0x63
sete al
add eax, 3
mov dword [0x422864], eax
jmp 0x4057f5
mov dword [0x422864], ebx
jmp 0x4057f5
add esi, ebx
cmp word [esi], 0x20
ja 0x4057f3
jmp 0x405805
cmp ax, 0x20
ja 0x40580d
add esi, ebx
movzx eax, word [esi]
test ax, ax
jne 0x4057fd
push str.sfxconfig
push esi
mov ebx, esi
call fcn.00404454
pop ecx
pop ecx
test eax, eax
je 0x40586a
cmp word [eax], 0x3a
jne 0x405831
jmp 0x40582e
cmp cx, 0x20
ja 0x405839
add eax, 2
movzx ecx, word [eax]
test cx, cx
jne 0x405828
mov edx, dword [ebp + 0x14]
and dword [ebp + 0x18], 0
xor ecx, ecx
mov word [edx], cx
lea ecx, [ebp + 0x14]
push ecx
push eax
call fcn.00404372
cmp dword [0x422864], 2
pop ecx
pop ecx
mov ebx, eax
je 0x40586a
lea eax, [ebp + 0x14]
push eax
mov ecx, 0x42281c
call fcn.00413ed8
mov esi, 0x42281c
push esi
mov ecx, 0x4227e0
call fcn.00413ed8
mov edi, 0x4227ec
push esi
mov ecx, edi
call fcn.00413ed8
push esi
call fcn.00402115
xor esi, esi
pop ecx
cmp eax, esi
jl 0x40592b
mov ecx, dword [0x4227e0]
mov dword [0x4227e4], eax
lea esi, [eax + eax]
xor eax, eax
mov word [esi + ecx], ax
mov eax, dword [0x42281c]
lea eax, [esi + eax + 2]
push eax
mov ecx, edi
call fcn.004142f0
mov eax, dword [0x42281c]
lea eax, [esi + eax + 2]
mov esi, 0x422804
push eax
mov ecx, esi
call fcn.004142f0
push 0x2e
mov ecx, esi
call fcn.00413fd6
test eax, eax
jle 0x4058f1
mov edx, dword [0x422804]
xor ecx, ecx
mov dword [0x422808], eax
mov word [edx + eax*2], cx
push esi
mov esi, 0x4227f8
mov ecx, esi
call fcn.00413ed8
push 4
call fcn.004025d4
pop ecx
push eax
mov ecx, esi
call fcn.00414348
mov eax, dword [0x422804]
mov ecx, dword [0x4227f8]
mov dword [0x422798], eax
mov dword [0x4227a0], ecx
mov dword [0x4227a4], eax
xor esi, esi
call fcn.004027e9
push eax
mov ecx, 0x422810
call fcn.004142f0
push 0x28
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
pop ecx
cmp eax, esi
je 0x405960
mov dword [eax + 4], esi
mov dword [eax + 0x1c], esi
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], esi
mov dword [eax], 0x41e9f8
mov edi, eax
mov dword [ebp + 0x58], eax
jmp 0x405965
xor edi, edi
mov dword [ebp + 0x58], edi
cmp edi, esi
je 0x40596f
mov eax, dword [edi]
push edi
call dword [eax + 4]
push dword [0x42281c]
mov ecx, edi
call fcn.00409512
test al, al
jne 0x4059a3
push dword [0x42281c]
push 7
push 1
call fcn.00408eab
add esp, 0xc
cmp edi, esi
je 0x40599c
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 2
jmp 0x4056db
lea ecx, [ebp + 0x3c]
call fcn.00413ca0
lea eax, [ebp + 0x3c]
push eax
push edi
call fcn.00402e47
pop ecx
pop ecx
test al, al
jne 0x4059df
push 9
push esi
call fcn.00408eab
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0xc
cmp edi, esi
je 0x4059d8
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 3
jmp 0x4056db
cmp dword [0x422864], esi
jne 0x405a73
push str.sfxconfig
push ebx
call fcn.00404454
pop ecx
pop ecx
cmp eax, esi
je 0x405a73
cmp word [eax], 0x3a
jne 0x405a05
add eax, 2
movzx ecx, word [eax]
cmp cx, si
je 0x405a57
cmp cx, 0x20
ja 0x405a1e
add eax, 2
movzx ecx, word [eax]
cmp cx, si
jne 0x405a0d
cmp word [eax], si
je 0x405a57
lea ecx, [ebp + 0x3c]
push ecx
push eax
call fcn.004052fa
pop ecx
pop ecx
test al, al
jne 0x405a57
push 0xa
push esi
call fcn.00408eab
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0xc
cmp edi, esi
je 0x405a50
mov eax, dword [edi]
push edi
call dword [eax + 8]
push 4
jmp 0x4056db
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
cmp edi, esi
je 0x4055fe
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x4055fe
lea ecx, [ebp + 0x4c]
call fcn.004052d6
cmp dword [ebp + 0x40], esi
je 0x405aa0
push esi
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebp + 0x3c]
push eax
call fcn.00403cb0
add esp, 0xc
test al, al
jne 0x405aa0
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x405a46
cmp dword [0x422864], 4
je 0x405a57
mov eax, dword [0x4220b0]
mov esi, 0x4220b0
jmp 0x405aea
push eax
lea eax, [ebp - 0xc4]
push str.SfxString_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0
push dword [esi]
call fcn.004025d4
pop ecx
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.00403bf7
add esp, 0xc
add esi, 0x10
mov eax, dword [esi]
test eax, eax
jne 0x405ab5
lea eax, [ebp + 0x4c]
push eax
call fcn.004044ca
push 1
push 0x41d650
sub ebx, 2
push str.SfxVarCmdLine2
mov dword [ebp + 0x60], ebx
call fcn.00403bf7
add esp, 0x10
push 0x30
pop edi
cmp word [ebx], 0x20
jbe 0x405b31
add ebx, 2
cmp word [ebx], 0x20
ja 0x405b1a
jmp 0x405b2e
cmp ax, 0x20
ja 0x405b39
add ebx, 2
mov dword [ebp + 0x60], ebx
movzx eax, word [ebx]
test ax, ax
jne 0x405b25
movzx eax, word [ebx]
cmp eax, 0x2f
je 0x405b4a
cmp eax, 0x2d
jne 0x405dc9
lea esi, [ebx + 2]
cmp word [esi], 0x21
je 0x405dbd
push 0x41eb84
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405bae
lea ecx, [ebx + 6]
movzx eax, word [ecx]
cmp ax, di
jb 0x405b78
cmp eax, 0x39
jbe 0x405b8c
cmp eax, 0x61
jb 0x405b82
cmp eax, 0x7a
jbe 0x405b8c
cmp eax, 0x41
jb 0x405b9c
cmp eax, 0x5a
ja 0x405b9c
mov dword [ebp + 0x38], ecx
mov byte [ebp + 0x66], 1
mov byte [ebp + 0x67], 1
jmp 0x405b14
cmp eax, 0x20
ja 0x405dc9
mov dword [ebp + 0x38], 0x41e8d4
jmp 0x405b8f
push 0x41eb7c
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405bd1
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebx + 6]
push eax
push str.OverwriteMode
jmp 0x405d14
push 0x41eb74
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405c14
lea eax, [ebx + 6]
movzx ecx, word [eax]
cmp cx, di
jb 0x405dc9
cmp ecx, 0x32
ja 0x405dc9
cmp word [ebx + 8], 0x20
ja 0x405dc9
lea ecx, [ebp + 0x4c]
push ecx
push eax
push str.GUIMode
jmp 0x405d14
push 0x41eb6c
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405c37
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebx + 6]
push eax
push str.GUIFlags
jmp 0x405d14
push 0x41eb64
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405c5a
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebx + 6]
push eax
push str.MiscFlags
jmp 0x405d14
push 0x41eb5c
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405c96
lea eax, [ebx + 6]
movzx ecx, word [eax]
cmp cx, di
je 0x405c7f
cmp ecx, 0x31
jne 0x405dc9
cmp word [ebx + 8], 0x20
ja 0x405dc9
lea ecx, [ebp + 0x4c]
push ecx
push eax
push str.SelfDelete
jmp 0x405d14
push 0x41eb54
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405cbb
cmp word [ebx + 6], 0x20
ja 0x405dc9
mov byte [ebp + 0x5f], 1
jmp 0x405b14
push 0x41eb4c
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405cf6
lea eax, [ebx + 6]
movzx ecx, word [eax]
cmp cx, di
jb 0x405dc9
cmp ecx, 0x39
ja 0x405dc9
push eax
call dword [sym.imp.MSVCRT.dll__wtol]
pop ecx
mov dword [0x4223b0], eax
jmp 0x405b14
push 0x41eb44
push esi
call fcn.00404156
pop ecx
pop ecx
test eax, eax
je 0x405d21
lea eax, [ebp + 0x4c]
push eax
lea eax, [ebx + 8]
push eax
push str.BeginPromptTimeout
call fcn.0040489b
add esp, 0xc
jmp 0x405b14
movzx eax, word [esi]
cmp eax, 0x70
je 0x405d8a
cmp eax, 0x50
je 0x405d8a
cmp eax, 0x79
je 0x405d38
cmp eax, 0x59
jne 0x405d48
cmp word [ebx + 4], 0x20
ja 0x405d48
mov byte [ebp + 0x66], 1
jmp 0x405b14
cmp eax, 0x3f
je 0x405d57
cmp eax, 0x68
je 0x405d57
cmp eax, 0x48
jne 0x405d67
cmp word [ebx + 4], 0x20
ja 0x405d67
mov byte [ebp + 0x64], 1
jmp 0x405b14
lea eax, [ebp + 0x4c]
push eax
push esi
call fcn.004047a1
pop ecx
pop ecx
test eax, eax
je 0x405dc9
cmp eax, 1
je 0x405e21
mov ebx, eax
mov dword [ebp + 0x60], ebx
jmp 0x405b14
lea ecx, [ebp - 0x54]
call fcn.00413e8c
lea eax, [ebp - 0x54]
push eax
add ebx, 4
push ebx
call fcn.00404372
push dword [ebp - 0x54]
lea ebx, [eax - 2]
mov dword [ebp + 0x60], ebx
call fcn.004010e5
push dword [ebp - 0x54]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x10
jmp 0x405b14
mov esi, ebx
add ebx, 4
mov dword [ebp + 0x60], ebx
test esi, esi
jne 0x405dcb
mov esi, ebx
cmp dword [ebp + 0x48], esi
je 0x405e3e
push dword [ebp + 0x48]
lea ecx, [ebp + 8]
call fcn.004142c1
sub esi, dword [ebp + 0x48]
lea eax, [ebp + 8]
push eax
sar esi, 1
push esi
lea ecx, [ebp - 0x10]
call fcn.00413e14
push dword [ebp - 0x10]
lea ecx, [ebp + 0x14]
call fcn.004142f0
push dword [ebp - 0x10]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 8]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
lea ecx, [ebp + 0x14]
call fcn.00414002
lea ecx, [ebp + 0x14]
call fcn.00414383
push 1
push dword [ebp + 0x14]
jmp 0x405e45
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
pop ecx
test eax, eax
je 0x405e37
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0x20
jmp 0x4056db
push 1
push 0x41d650
push str.SfxVarCmdLine1
call fcn.00403bf7
add esp, 0xc
push ebx
lea ecx, [ebp + 8]
call fcn.004142c1
lea eax, [ebp + 8]
push eax
mov eax, dword [ebp - 0x18]
sub eax, ebx
sar eax, 1
push eax
lea ecx, [ebp - 0x10]
call fcn.00413e14
push dword [ebp - 0x10]
lea ecx, [ebp + 0x14]
call fcn.004142f0
push dword [ebp - 0x10]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 8]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
lea ecx, [ebp + 0x14]
call fcn.00414002
lea ecx, [ebp + 0x14]
call fcn.00414383
push 1
push dword [ebp + 0x14]
push str.SfxVarCmdLine2
call fcn.00403bf7
lea eax, [ebp + 0x4c]
push eax
call fcn.004044ca
add esp, 0x10
cmp byte [ebp + 0x65], 0
jne 0x406025
test byte [0x4227b4], 4
je 0x406025
call fcn.0040288b
test eax, eax
jne 0x406025
lea ecx, [ebp + 8]
call fcn.00413e8c
lea ecx, [ebp - 0x54]
call fcn.00413e8c
lea eax, [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call fcn.00404372
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.004142c1
push str.sfxelevation
push 0x41e950
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x20]
push 0x41e8c8
push eax
call fcn.0041429c
add esp, 0xc
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00414277
add esp, 0xc
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00414277
add esp, 0xc
push 0x20
push eax
lea ecx, [ebp - 4]
call fcn.00414213
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00414257
add esp, 0xc
push dword [eax]
lea ecx, [ebp - 0x54]
call fcn.004142f0
push dword [ebp - 0x40]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 4]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x34]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x20]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x14
push 0xffffffffffffffff
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetProcessWorkingSetSize]
xor esi, esi
push esi
push 2
push dword [ebp - 0x54]
call fcn.00404afc
add esp, 0xc
push dword [ebp - 0x10]
test eax, eax
jne 0x405fef
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x54]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 8]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
add esp, 0x10
cmp eax, esi
je 0x405fe8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 0xb
jmp 0x4056db
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x54]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 8]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
add esp, 0x10
cmp eax, esi
je 0x405600
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x405600
and dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push eax
mov edi, str.SetEnvironment
lea eax, [ebp + 0x4c]
push edi
push eax
call fcn.004034a7
add esp, 0xc
jmp 0x406092
push esi
lea ecx, [ebp - 4]
call fcn.004142c1
push 0x3d
push dword [ebp - 4]
call fcn.00413b3b
pop ecx
pop ecx
test eax, eax
jle 0x40609a
mov edx, dword [ebp - 4]
mov dword [ebp], eax
add eax, eax
xor ecx, ecx
mov word [eax + edx], cx
push ecx
lea eax, [eax + esi + 2]
push eax
push dword [ebp - 4]
call fcn.00403bf7
push dword [ebp - 4]
inc dword [ebp - 0x14]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp + 0x4c]
push edi
push eax
call fcn.004034a7
add esp, 0x1c
mov esi, eax
test esi, esi
jne 0x406041
jmp 0x4060a3
push dword [ebp - 4]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
call fcn.00404f6e
xor edi, edi
cmp dword [0x4223a4], 0xffffffff
jne 0x4060b9
mov dword [0x4223a4], edi
cmp byte [ebp + 0x64], 0
je 0x406143
push edi
lea eax, [ebp + 0x4c]
push str.HelpText
push eax
call fcn.004034a7
mov esi, eax
add esp, 0xc
cmp esi, edi
jne 0x4060e5
push 0x18
call fcn.004025d4
pop ecx
mov esi, eax
lea ecx, [ebp - 0xc0]
call fcn.004079f8
push edi
push esi
push dword [0x422798]
lea ecx, [ebp - 0xc0]
push 0x11
mov dword [ebp - 0xc0], 0x41e77c
mov dword [ebp - 0x88], 0x7d6
call fcn.00407c53
lea ecx, [ebp - 0xc0]
call fcn.00407a59
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
pop ecx
cmp eax, edi
je 0x4055fe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4055fe
cmp byte [ebp + 0x66], 0
je 0x406153
and dword [0x4223a4], 0xfffffeff
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
push edi
lea eax, [ebp + 0x4c]
push str.SfxAuthor
push eax
call fcn.004034a7
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x40625f
lea eax, [ebp - 0x1a0]
push eax
call fcn.0040a830
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, eax
push eax
lea eax, [ebp - 0x1a0]
push esi
push eax
call fcn.0040aa90
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x1a0]
push eax
call fcn.0040ad60
add esp, 0x14
push 8
pop ecx
mov esi, str.123456789ABCDEFGHJKMNPQRSTUVWXYZ
lea edi, [ebp - 0x138]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor ecx, ecx
mov edx, dword [ebp + ecx*4 - 0x104]
lea eax, [ebp + ecx*4 - 0x114]
xor dword [eax], edx
inc ecx
cmp ecx, 4
jl 0x4061c3
xor edi, edi
xor ebx, ebx
mov eax, ebx
cdq
and edx, 7
add eax, edx
sar eax, 3
movzx esi, byte [ebp + eax - 0x114]
mov ecx, ebx
and ecx, 0x80000007
jns 0x4061ff
dec ecx
or ecx, 0xfffffff8
inc ecx
shr esi, cl
and esi, 0x1f
test ebx, ebx
je 0x406220
mov eax, ebx
push 0x19
cdq
pop ecx
idiv ecx
test edx, edx
jne 0x406220
push 0x2d
pop eax
mov word [ebp + edi*2 - 0xac], ax
inc edi
movsx ax, byte [ebp + esi - 0x138]
mov word [ebp + edi*2 - 0xac], ax
add ebx, 5
inc edi
cmp ebx, 0x7d
jl 0x4061dd
xor eax, eax
mov word [ebp + edi*2 - 0xac], ax
lea eax, [ebp - 0xac]
push eax
mov ecx, 0x422754
call fcn.004142f0
mov ebx, dword [ebp + 0x60]
mov byte [0x422750], 1
xor esi, esi
push esi
lea eax, [ebp + 0x4c]
push str.InstallPath
push eax
call fcn.004034a7
add esp, 0xc
mov edi, 0x4227d4
cmp eax, esi
je 0x406284
push eax
mov ecx, edi
call fcn.004142f0
push edi
call fcn.004040ff
push esi
lea eax, [ebp + 0x4c]
push str.BeginPromptTimeout
push eax
call fcn.004034a7
add esp, 0x10
cmp eax, esi
je 0x4062ad
push eax
call dword [sym.imp.MSVCRT.dll__wtol]
pop ecx
mov dword [0x4227c0], eax
cmp dword [0x42286c], esi
je 0x4062d4
lea eax, [ebp + 0x4c]
push eax
call fcn.0040968c
push dword [ebp + 0x3c]
mov esi, eax
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
pop ecx
pop ecx
test eax, eax
jmp 0x406014
cmp dword [0x422864], 3
jne 0x4062e8
lea eax, [ebp + 0x4c]
push eax
call fcn.0040958f
jmp 0x4062be
test byte [0x4227b4], 8
mov esi, dword [ebp + 0x58]
jne 0x406323
push esi
call fcn.004016a1
pop ecx
test eax, eax
jne 0x406323
push 8
push eax
call fcn.00408eab
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0xc
test esi, esi
je 0x40631c
mov eax, dword [esi]
push esi
call dword [eax + 8]
push 5
jmp 0x4056db
push 0
lea eax, [ebp + 0x4c]
push 0x41e804
push eax
call fcn.004034a7
add esp, 0xc
test eax, eax
je 0x406383
cmp byte [ebp + 0x66], 0
jne 0x406383
push eax
push dword [0x422798]
call fcn.00408c21
pop ecx
pop ecx
test eax, eax
je 0x4064b4
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x406370
mov byte [ebp + 0x66], 1
mov byte [ebp + 0x67], 1
cmp dword [0x42284c], 0
je 0x406383
and dword [0x4223a4], 0xffffff7f
lea ecx, [ebp + 0x2c]
call fcn.00413e8c
cmp byte [ebp + 0x67], 0
je 0x406409
mov esi, dword [ebp + 0x38]
push str.AutoInstall
lea ecx, [ebp + 0x2c]
call fcn.004142f0
movzx eax, word [esi]
push eax
lea ecx, [ebp + 0x2c]
call fcn.004011ee
push 0
push dword [ebp + 0x2c]
lea eax, [ebp + 0x4c]
push eax
call fcn.004034a7
add esp, 0xc
test eax, eax
je 0x4064c2
add esi, 2
movzx eax, word [esi]
cmp eax, 0x30
jb 0x4063d6
cmp eax, 0x39
jbe 0x406394
cmp eax, 0x61
jb 0x4063e0
cmp eax, 0x7a
jbe 0x406394
cmp eax, 0x41
jb 0x4063ea
cmp eax, 0x5a
jbe 0x406394
push str.AutoInstall
lea ecx, [ebp + 0x2c]
call fcn.004142f0
mov eax, dword [ebp + 0x38]
movzx eax, word [eax]
push eax
lea ecx, [ebp + 0x2c]
call fcn.004011ee
mov esi, dword [ebp + 0x58]
cmp dword [ebp + 0x30], 0
mov byte [ebp + 0x65], 0
jne 0x406465
push 0
lea eax, [ebp + 0x4c]
push str.ExecuteFile
push eax
call fcn.004034a7
add esp, 0xc
test eax, eax
je 0x40643b
push str.ExecuteFile
lea ecx, [ebp + 0x2c]
call fcn.004142f0
mov byte [ebp + 0x65], 1
cmp dword [ebp + 0x30], 0
jne 0x406465
push 0
lea eax, [ebp + 0x4c]
push str.RunProgram
push eax
call fcn.004034a7
add esp, 0xc
test eax, eax
je 0x406465
push str.RunProgram
lea ecx, [ebp + 0x2c]
call fcn.004142f0
cmp byte [ebp + 0x67], 0
jne 0x406505
cmp byte [ebp + 0x66], 0
jne 0x406505
mov eax, dword [0x4223a4]
and eax, 0xc0
cmp al, 0x80
jne 0x406505
push dword [0x42278c]
push dword [0x422790]
call fcn.00408cbc
pop ecx
pop ecx
test eax, eax
jne 0x406505
push dword [ebp + 0x2c]
cmp byte [0x4227c4], al
je 0x4064f5
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x406323
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x406312
push dword [ebp + 0x2c]
push 0xe
push 0
call fcn.00408eab
push dword [ebp + 0x2c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
add esp, 0x14
test eax, eax
je 0x4064ee
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 6
jmp 0x4056db
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x4064bc
cmp dword [0x4227d8], 0
jne 0x406537
lea eax, [ebp - 0x10]
push str.7ZipSfx._03x
push eax
call fcn.00404ebc
pop ecx
pop ecx
push eax
mov ecx, edi
call fcn.00413ed8
push dword [ebp - 0x10]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov byte [0x42277c], 0
jmp 0x40656a
push edi
lea ecx, [ebp + 8]
call fcn.00413eb0
lea eax, [ebp + 8]
push eax
call fcn.004040ff
cmp dword [ebp + 0xc], 0
pop ecx
je 0x40655b
lea eax, [ebp + 8]
push eax
mov ecx, edi
call fcn.00413ed8
push dword [ebp + 8]
mov byte [0x42277c], 1
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [0x4227d4]
pop ecx
mov ecx, dword [0x4227d8]
movzx edx, word [eax + ecx*2 - 2]
cmp edx, 0x5c
je 0x406585
cmp edx, 0x2f
jne 0x406597
dec ecx
xor edx, edx
mov dword [0x4227d8], ecx
mov word [eax + ecx*2], dx
mov eax, dword [0x4227d4]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp byte [ebp + 0x66], 0
je 0x4065ab
or dword [0x4227b4], 3
cmp dword [0x422860], 0
jne 0x4065bf
push edi
push esi
call fcn.00401c0d
pop ecx
pop ecx
jmp 0x4065cd
call fcn.00408d0b
test eax, eax
jne 0x4065f9
mov eax, 0x80004005
test eax, eax
je 0x4065f9
call fcn.00404774
push dword [ebp + 0x2c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
test esi, esi
je 0x4065f2
mov eax, dword [esi]
push esi
call dword [eax + 8]
push 8
jmp 0x4056db
call fcn.00404f6e
cmp byte [ebp + 0x5f], 0
je 0x406611
cmp byte [0x42277c], 0
jne 0x406c0f
and dword [ebp + 0x48], 0
lea ecx, [ebp - 4]
call fcn.00413e8c
cmp byte [ebp + 0x67], 0
jne 0x406632
lea eax, [ebp - 4]
push eax
lea eax, [ebp + 0x4c]
push eax
call fcn.0040431e
pop ecx
pop ecx
mov eax, dword [ebp + 0x38]
mov byte [ebp + 0x67], 0
mov dword [ebp - 0x18], eax
xor esi, esi
lea ecx, [ebp + 0x20]
mov dword [ebp - 0x28], esi
mov byte [ebp + 0x64], 0
call fcn.00413e8c
lea ecx, [ebp - 0x24]
call fcn.00413e8c
mov dword [ebp + 0x60], esi
cmp dword [ebp + 0x30], esi
jne 0x406702
cmp byte [0x42277c], 0
jne 0x406ab7
mov esi, str.setup.exe
push esi
push 0x41d790
lea eax, [ebp - 0xf4]
push edi
push eax
call fcn.00414277
add esp, 0xc
push eax
lea eax, [ebp + 8]
push eax
call fcn.00414277
add esp, 0xc
push dword [eax]
lea ecx, [ebp + 0x20]
call fcn.004142f0
push dword [ebp + 8]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0xf4]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
push dword [ebp + 0x20]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x406ace
mov byte [ebp + 0x67], 1
push esi
lea ecx, [ebp - 0x24]
call fcn.004142f0
lea eax, [ebp - 0x24]
push eax
call fcn.00404133
mov esi, dword [ebp - 0x24]
pop ecx
xor edi, edi
push edi
push str.waitall
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
je 0x406781
mov esi, eax
mov byte [ebp + 0x64], 1
jmp 0x4066e1
lea eax, [ebp + 0x48]
push eax
push dword [ebp + 0x2c]
lea eax, [ebp + 0x4c]
push eax
call fcn.004034a7
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4066cb
mov esi, dword [ebp - 0x18]
add esi, 2
movzx eax, word [esi]
mov dword [ebp - 0x18], esi
cmp eax, 0x30
jb 0x406731
cmp eax, 0x39
jbe 0x40674d
cmp eax, 0x61
jb 0x40673b
cmp eax, 0x7a
jbe 0x40674d
cmp eax, 0x41
jb 0x406ab7
cmp eax, 0x5a
ja 0x406ab7
push str.AutoInstall
lea ecx, [ebp + 0x2c]
call fcn.004142f0
movzx eax, word [esi]
push eax
lea ecx, [ebp + 0x2c]
call fcn.004011ee
push dword [ebp - 0x24]
and dword [ebp + 0x48], 0
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x20]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
jmp 0x40663c
push edi
push str.hidcon
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
je 0x40679f
or dword [ebp + 0x60], 1
mov esi, eax
jmp 0x4066e1
push edi
push str.nowait
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
je 0x4067c3
cmp byte [0x42277c], 0
mov esi, eax
je 0x4066e1
jmp 0x4067d8
push edi
push str.forcenowait
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
je 0x4067e4
mov esi, eax
or dword [ebp + 0x60], 0x10000
jmp 0x4066e1
push 2
push 0x41eb4c
push esi
call fcn.00404190
mov edi, eax
add esp, 0xc
test edi, edi
je 0x40681a
cmp dword [0x4223b0], 0xffffffff
jne 0x406813
add esi, 4
push esi
call dword [sym.imp.MSVCRT.dll__wtol]
pop ecx
mov dword [0x4223b0], eax
mov esi, edi
jmp 0x4066e1
push 3
push 0x41ea6c
push esi
call fcn.00404190
xor edi, edi
add esp, 0xc
cmp eax, edi
je 0x40683c
movzx ecx, word [esi + 6]
sub ecx, 0x30
mov dword [ebp - 0x48], ecx
jmp 0x40685a
push 3
push 0x41ea64
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
je 0x406861
movzx ecx, word [esi + 6]
sub ecx, 0x30
mov dword [ebp - 0x44], ecx
mov esi, eax
jmp 0x4066e1
push edi
push 0x41d6f4
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
jne 0x4068bb
push edi
push str.i386
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
jne 0x4068bb
push edi
push str.amd64
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
jne 0x4068ad
push edi
push 0x41d6ec
push esi
call fcn.00404190
add esp, 0xc
cmp eax, edi
je 0x4068c9
mov esi, eax
mov dword [ebp - 0x28], 2
jmp 0x4066e1
mov esi, eax
mov dword [ebp - 0x28], 1
jmp 0x4066e1
cmp byte [ebp + 0x65], 0
lea ecx, [ebp + 0x20]
je 0x406927
cmp word [esi], 0x22
je 0x4068fa
push 0x41e8c8
call fcn.004142f0
push esi
lea ecx, [ebp + 0x20]
call fcn.00414348
push 0x41e8c8
lea ecx, [ebp + 0x20]
call fcn.00414348
jmp 0x406900
push esi
call fcn.004142f0
push edi
lea eax, [ebp + 0x4c]
push str.ExecuteParameters
push eax
call fcn.004034a7
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x406939
push 0x41ecc0
lea ecx, [ebp + 0x20]
call fcn.00414348
jmp 0x406930
lea eax, [ebp - 4]
push eax
call fcn.00413ed8
push esi
lea ecx, [ebp + 0x20]
call fcn.00414348
lea ecx, [ebp - 0x40]
call fcn.00413e8c
lea eax, [ebp - 0x40]
push eax
push dword [ebp + 0x20]
call fcn.00404372
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x34]
call fcn.004142c1
lea eax, [ebp - 0x40]
push eax
call fcn.00404133
pop ecx
cmp dword [0x422864], edi
jne 0x406a68
push dword [ebp - 0x28]
call fcn.0040285a
pop ecx
test eax, eax
je 0x406a68
cmp word [ebx], di
je 0x406997
push ebx
lea ecx, [ebp - 0x34]
call fcn.00414348
jmp 0x406992
add ebx, 2
cmp word [ebx], di
jne 0x40698f
lea eax, [ebp - 0x34]
push eax
call fcn.00404133
cmp byte [ebp + 0x64], 0
pop ecx
jne 0x406a4a
push dword [0x4227d4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea eax, [ebp - 0x34]
push eax
push 0x41e948
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0xdc]
push 0x41e8c8
push eax
call fcn.0041429c
add esp, 0xc
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.00414277
add esp, 0xc
push eax
lea eax, [ebp - 0xe8]
push eax
call fcn.00414257
add esp, 0xc
push dword [eax]
lea ecx, [ebp - 0x10]
call fcn.004142c1
push dword [ebp - 0xe8]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0xd0]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0xdc]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [0x4227d4]
push dword [ebp + 0x60]
push dword [ebp - 0x10]
call fcn.00404afc
add esp, 0x18
push dword [ebp - 0x10]
test eax, eax
je 0x406b1d
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x406a63
push dword [ebp + 0x60]
push dword [ebp - 0x34]
push dword [ebp - 0x40]
call fcn.00404bf6
add esp, 0xc
cmp eax, edi
jne 0x406b25
call fcn.004027fe
cmp byte [ebp + 0x65], 0
jne 0x406b8c
cmp byte [ebp + 0x67], 0
jne 0x406b8c
mov ecx, dword [ebp - 4]
xor eax, eax
mov dword [ebp], edi
mov word [ecx], ax
push dword [ebp - 0x34]
inc dword [ebp + 0x48]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x40]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x20]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x10
mov edi, 0x4227d4
jmp 0x40663c
push dword [ebp - 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x20]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
jmp 0x406baf
call fcn.00404774
push 0xf
push 0
call fcn.00408eab
push dword [ebp - 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x20]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 4]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x2c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
add esp, 0x1c
test eax, eax
je 0x40573d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x40573d
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
jmp 0x406b2c
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp + 0x20]
push 0x10
push 1
call fcn.00408eab
call fcn.00404774
push dword [ebp - 0x34]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x40]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x20]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 4]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x2c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
add esp, 0x28
cmp eax, edi
je 0x406b85
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push 9
jmp 0x4056db
push dword [ebp - 0x34]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x40]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x20]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x10
cmp dword [0x422864], 0
jne 0x406c06
call fcn.00404f6e
push dword [ebp - 0x48]
lea eax, [ebp + 0x4c]
push dword [ebp + 0x38]
push str.Shortcut
push eax
push 0x404fc5
call fcn.00404928
add esp, 0x14
push dword [0x4227e0]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push dword [ebp - 0x44]
lea eax, [ebp + 0x4c]
push dword [ebp + 0x38]
push str.Delete
push eax
push 0x4048f9
call fcn.00404928
add esp, 0x14
call fcn.00404774
push dword [ebp - 4]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
cmp dword [0x4223b0], 0xffffffff
jne 0x406c28
cmp byte [ebp + 0x66], 0
jne 0x406c9c
mov dword [0x4223b0], 1
cmp dword [0x4223b0], 0
jle 0x406c9c
push 0
lea eax, [ebp + 0x4c]
push str.FinishMessage
push eax
call fcn.004034a7
mov esi, eax
add esp, 0xc
test esi, esi
je 0x406c9c
mov eax, 0x3e7
cmp dword [0x4223b0], eax
jle 0x406c5c
mov dword [0x4223b0], eax
lea ecx, [ebp - 0xbc]
call fcn.004079f8
push 0
push esi
push dword [0x422798]
lea ecx, [ebp - 0xbc]
push 0x11
mov dword [ebp - 0xbc], 0x41e7d4
mov dword [ebp - 0x84], 0x7d5
call fcn.00407c53
lea ecx, [ebp - 0xbc]
call fcn.00407a59
cmp byte [ebp + 0x5f], 0
jne 0x406cdf
cmp dword [0x422864], 0
jne 0x406cdf
push 0
lea eax, [ebp + 0x4c]
push str.SelfDelete
push eax
call fcn.004034a7
add esp, 0xc
test eax, eax
je 0x406cdf
cmp word [eax], 0x31
jne 0x406cdf
sub esp, 0xc
mov ecx, esp
push 0x42281c
call fcn.00413eb0
call fcn.004050a2
add esp, 0xc
push dword [ebp + 0x2c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x3c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebp + 0x58]
pop ecx
pop ecx
test eax, eax
je 0x406cfe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x60]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
lea ecx, [ebp + 0x4c]
call fcn.004052ad
push dword [ebp - 0x6c]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp + 0x14]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
pop ecx
pop ecx
xor eax, eax
jmp 0x406d3c
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
add ebp, 0x68
leave
ret 0x10