Function at 0x4087e4
Capabilities:
Create process on windows
Terminate process

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x6ec
push ebx
lea eax, [ebp + 0x1c]
push eax
push 0x20006
xor ebx, ebx
push ebx
push str.SOFTWARE
push 0x80000002
mov dword [ebp + 0x58], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
je 0x40882e
push 0x10
push str.INSTALL_ERROR
push str.This_product_must_be_installed_using_an_administrator_account.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
inc eax
jmp 0x409838
push esi
push edi
push dword [ebp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.00407d56
push 0xff
lea eax, [ebp - 0x684]
push eax
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x684]
push eax
mov ecx, 0x42a28c
call fcn.0040173c
push str.InstallerExePath
lea ecx, [ebp + 0x20]
call fcn.00401644
push 0x42a28c
lea eax, [ebp + 0x20]
mov esi, 0x42bd90
push eax
mov ecx, esi
call fcn.0040f3a0
push 1
lea ecx, [ebp + 0x20]
call fcn.004017f4
lea eax, [ebp - 0x684]
push 0x5c
push eax
call fcn.00416950
mov edi, eax
lea eax, [ebp - 0x684]
push 0x2f
push eax
call fcn.00416950
add esp, 0x10
cmp edi, eax
lea eax, [ebp - 0x684]
jbe 0x4088bf
push 0x5c
jmp 0x4088c1
push 0x2f
push eax
call fcn.00416950
cmp eax, ebx
pop ecx
pop ecx
je 0x4088cf
mov byte [eax], bl
lea eax, [ebp - 0x684]
push eax
lea ecx, [ebp - 0x20]
call fcn.00401644
push str.InstallerExeDir
lea ecx, [ebp + 0x20]
call fcn.00401644
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x20]
push eax
mov ecx, esi
call fcn.0040f3a0
push 1
lea ecx, [ebp + 0x20]
call fcn.004017f4
push 1
lea ecx, [ebp - 0x20]
call fcn.004017f4
push str.popcfg
push 0x425741
call fcn.0041733f
pop ecx
pop ecx
mov edi, eax
push edi
mov ecx, 0x42a270
call fcn.0040173c
push edi
call fcn.00415c78
lea ecx, [ebp + 0x20]
mov dword [esp], str.TempInstallerDir
call fcn.00401644
mov edi, 0x42a270
push edi
lea eax, [ebp + 0x20]
push eax
mov ecx, esi
call fcn.0040f3a0
push 1
lea ecx, [ebp + 0x20]
call fcn.004017f4
push str._files.cab
lea eax, [ebp - 4]
push edi
push eax
call fcn.00404973
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
mov ecx, 0x42bdc0
call fcn.004016ad
push 1
lea ecx, [ebp - 4]
call fcn.004017f4
cmp dword [0x42a2a4], 0x10
mov eax, dword [0x42a290]
jae 0x408999
mov eax, 0x42a290
push 0x424c48
push eax
call fcn.004176d9
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
jne 0x4089f5
push 0x4255d4
push 0x42a28c
lea eax, [ebp - 0x7c]
push str.Unable_to_Open_Installer_Exe_
push eax
call fcn.004049bf
add esp, 0xc
push eax
lea eax, [ebp - 4]
push eax
call fcn.00404973
push eax
call fcn.004051cf
add esp, 0x10
push 1
lea ecx, [ebp - 4]
call fcn.004017f4
push 1
lea ecx, [ebp - 0x7c]
call fcn.004017f4
push 4
jmp 0x409835
push 2
push ebx
push esi
call fcn.004178ce
push esi
call fcn.004170e6
mov edi, eax
push ebx
lea eax, [edi - 0x186a0]
push eax
push esi
call fcn.004178ce
add esp, 0x1c
push dword [0x42a268]
lea ecx, [ebp + 0x20]
call fcn.00401644
push 1
push esi
lea eax, [ebp + 0x70]
push eax
lea eax, [ebp + 0x20]
call fcn.00401c6d
push 1
lea ecx, [ebp + 0x20]
mov dword [ebp + 0x60], eax
call fcn.004017f4
cmp dword [ebp + 0x60], 0xffffffff
jne 0x408a53
cmp edi, 0xffffffff
mov dword [ebp + 0x60], edi
je 0x409812
mov eax, dword [ebp + 0x60]
add eax, 0xfffffffc
push eax
push esi
call fcn.00408554
test al, al
pop ecx
pop ecx
je 0x409812
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0x2dadada
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [0x42bd4c], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
mov dword [ebp + 0x5c], eax
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x48
push 0x5a
push eax
mov dword [ebp + 0x60], eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push 0x12
call edi
push str.Arial
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x2bc
push ebx
push ebx
neg eax
push ebx
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
push 0x48
push 0x5a
push dword [ebp + 0x60]
mov dword [0x42bd5c], eax
call esi
push eax
push 8
call edi
push str.Courier_New
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x190
push ebx
push ebx
neg eax
push ebx
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
push 0x48
push 0x5a
push dword [ebp + 0x60]
mov dword [0x42bd58], eax
call esi
push eax
push 0x10
call edi
push str.Arial
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x2bc
push ebx
push ebx
neg eax
push ebx
push eax
call dword [sym.imp.GDI32.dll_CreateFontA]
push dword [ebp + 0x60]
mov dword [0x42bd60], eax
push dword [ebp + 0x5c]
call dword [sym.imp.USER32.dll_ReleaseDC]
xor edi, edi
inc edi
mov esi, 0x42bd90
mov eax, dword [0x42bd64]
sub eax, ebx
mov dword [ebp + 0x60], 2
je 0x408e62
dec eax
je 0x408e42
dec eax
je 0x408e28
dec eax
je 0x408e1d
dec eax
je 0x408bfc
dec eax
jne 0x4092bc
cmp dword [0x42be5c], ebx
jbe 0x4096d6
push ebx
push 0x4058cf
push ebx
push 0x6c
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp eax, 6
mov dword [ebp + 0x60], eax
jne 0x4092bc
lea eax, [ebp - 0x60]
push 0x42be48
push eax
call fcn.00404c07
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00412b20
mov ecx, dword [ebp - 0x1c]
add esp, 0x10
cmp dword [ebp - 8], 0x10
jae 0x408bcf
lea ecx, [ebp - 0x1c]
cmp dword [ebp - 0x48], 0x10
mov eax, dword [ebp - 0x5c]
jae 0x408bdb
lea eax, [ebp - 0x5c]
push edi
push ecx
push ebx
push eax
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push edi
lea ecx, [ebp - 0x20]
call fcn.004017f4
lea ecx, [ebp - 0x60]
jmp 0x4090f3
push str.InstallGroup
lea ecx, [ebp - 0x204]
call fcn.00401644
push str.CommonProgramGroup
lea ecx, [ebp - 0x23c]
call fcn.00401644
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x2ac]
push eax
mov ecx, esi
call fcn.0040ede0
push eax
push 0x4255e8
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x4dc]
push eax
mov ecx, esi
call fcn.0040ede0
push eax
lea eax, [ebp - 0x258]
push eax
call fcn.00404973
add esp, 0xc
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.004099d2
add esp, 0xc
push edi
lea ecx, [ebp - 0x258]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x4dc]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x2ac]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x23c]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x204]
call fcn.004017f4
push str.AppFolder
lea ecx, [ebp - 0x98]
call fcn.00401644
lea eax, [ebp - 0x108]
push eax
lea eax, [ebp - 0x434]
push eax
call fcn.00412810
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x98]
push eax
mov ecx, esi
call fcn.0040f3a0
push edi
lea ecx, [ebp - 0x434]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x98]
call fcn.004017f4
push str.files_
mov ecx, 0x42a2c4
call fcn.0040173c
push str.InstallPath
lea ecx, [ebp - 0xd0]
call fcn.00401644
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x54c]
push eax
mov ecx, esi
call fcn.0040ede0
push eax
lea eax, [ebp - 0x2e4]
push eax
call fcn.00404c07
pop ecx
pop ecx
push 0xffffffffffffffff
push ebx
push eax
mov ecx, 0x42a2e0
call fcn.004016ad
push edi
lea ecx, [ebp - 0x2e4]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x54c]
call fcn.004017f4
push edi
lea ecx, [ebp - 0xd0]
call fcn.004017f4
mov eax, dword [0x42a2f4]
cmp eax, ebx
jle 0x408db5
mov ecx, dword [0x42a2f8]
cmp ecx, 0x10
mov edx, dword [0x42a2e4]
jae 0x408d88
mov edx, 0x42a2e4
cmp byte [eax + edx - 1], 0x5c
je 0x408db5
cmp ecx, 0x10
mov ecx, dword [0x42a2e4]
jae 0x408d9f
mov ecx, 0x42a2e4
cmp byte [eax + ecx - 1], 0x2f
je 0x408db5
push 0x4255e8
mov ecx, 0x42a2e0
call fcn.00404ac0
mov edx, 0x42bfe8
call fcn.004098a6
call fcn.00407d20
push ebx
push 0x40628f
push ebx
push 0x68
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp byte [0x42bd69], bl
mov dword [ebp + 0x60], eax
je 0x408e12
cmp byte [0x42bd68], bl
jne 0x408e12
push str.Failed_to_decompress_files_
lea ecx, [ebp - 0x1e8]
call fcn.00401644
lea eax, [ebp - 0x1e8]
push eax
call fcn.004051cf
pop ecx
push edi
lea ecx, [ebp - 0x1e8]
call fcn.004017f4
lea ecx, [ebp - 0x108]
jmp 0x4090f3
push ebx
push 0x405ba7
push ebx
push 0x65
jmp 0x408e31
push ebx
push 0x405e25
push ebx
push 0x66
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov dword [ebp + 0x60], eax
jmp 0x4092bc
push ebx
push 0x405abc
push ebx
push 0x67
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
inc dword [0x42bd64]
mov dword [ebp + 0x60], eax
jmp 0x4092bc
push str.cfg_
mov ecx, 0x42a2c4
call fcn.0040173c
push 0x4255e8
lea eax, [ebp - 0x31c]
push 0x42a270
push eax
call fcn.00404973
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
mov ecx, 0x42a2e0
call fcn.004016ad
push edi
lea ecx, [ebp - 0x31c]
call fcn.004017f4
call fcn.0040658d
push ebx
push 0x405797
push ebx
push 0x6b
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
cmp byte [0x42bd69], bl
mov dword [ebp + 0x60], eax
je 0x408efb
cmp byte [0x42bd68], bl
jne 0x4092bc
push str.Failed_to_decompress_setup_files_
lea ecx, [ebp - 0x1b0]
call fcn.00401644
lea eax, [ebp - 0x1b0]
push eax
call fcn.004051cf
pop ecx
push edi
lea ecx, [ebp - 0x1b0]
call fcn.004017f4
cmp byte [0x42bd68], bl
jne 0x4092bc
push str.logo.bmp
lea eax, [ebp - 0x46c]
push 0x42a2e0
push eax
call fcn.00404973
add esp, 0xc
cmp dword [eax + 0x18], 0x10
jb 0x408f2b
mov eax, dword [eax + 4]
jmp 0x408f2e
add eax, 4
push 0x50
push ebx
push ebx
push ebx
push eax
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_LoadImageA]
push edi
lea ecx, [ebp - 0x46c]
mov dword [0x42bd50], eax
call fcn.004017f4
push str.product.bmp
lea eax, [ebp - 0x354]
push 0x42a2e0
push eax
call fcn.00404973
add esp, 0xc
cmp dword [eax + 0x18], 0x10
jb 0x408f72
mov eax, dword [eax + 4]
jmp 0x408f75
add eax, 4
push 0x50
push ebx
push ebx
push ebx
push eax
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_LoadImageA]
push edi
lea ecx, [ebp - 0x354]
mov dword [0x42bd54], eax
call fcn.004017f4
push str.props.xml
lea eax, [ebp - 0x514]
push 0x42a270
push eax
call fcn.00404973
add esp, 0xc
push eax
mov ecx, 0x42bfa8
call fcn.00414aa0
neg al
sbb al, al
inc al
push edi
lea ecx, [ebp - 0x514]
mov byte [ebp + 0x67], al
call fcn.004017f4
cmp byte [ebp + 0x67], bl
je 0x409066
push 0x4255d4
lea eax, [ebp - 0x3c4]
push eax
mov ecx, 0x42bfa8
call fcn.0040eb60
push eax
lea eax, [ebp - 0x4a4]
push str.Properties_file_error:_
push eax
call fcn.004049bf
add esp, 0xc
push eax
lea eax, [ebp - 0x38c]
push eax
call fcn.00404973
add esp, 0xc
cmp dword [eax + 0x18], 0x10
jb 0x40901d
mov eax, dword [eax + 4]
jmp 0x409020
add eax, 4
push 0x10
push str.Fatal_Error_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push edi
lea ecx, [ebp - 0x38c]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x4a4]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x3c4]
call fcn.004017f4
mov byte [0x42bd68], 1
mov byte [0x42bd74], 1
jmp 0x4092bc
mov ecx, dword [0x42bfd4]
mov eax, dword [ecx]
cmp eax, ecx
mov dword [ebp + 0x5c], eax
je 0x409097
lea ecx, [eax + 0x28]
push ecx
add eax, 0xc
push eax
mov ecx, esi
call fcn.0040f3a0
lea ecx, [ebp + 0x5c]
call fcn.0040493d
mov eax, dword [ebp + 0x5c]
cmp eax, dword [0x42bfd4]
jne 0x409075
push str.install.xml
lea eax, [ebp - 0x584]
push 0x42a2e0
push eax
call fcn.00404973
add esp, 0xc
push eax
mov ecx, 0x42bde0
call fcn.00403ca6
neg al
sbb al, al
inc al
push edi
lea ecx, [ebp - 0x584]
mov byte [ebp + 0x67], al
call fcn.004017f4
cmp byte [ebp + 0x67], bl
je 0x4090fe
lea eax, [ebp - 0x3fc]
push eax
mov eax, 0x42bde0
call fcn.00403e78
push eax
call fcn.004051cf
pop ecx
lea ecx, [ebp - 0x3fc]
push edi
call fcn.004017f4
jmp 0x4092bc
push str.defines.xml
lea eax, [ebp - 0x274]
push 0x42a2e0
push eax
call fcn.00404973
add esp, 0xc
push eax
mov ecx, esi
call fcn.0040ffc0
neg al
sbb al, al
inc al
push edi
lea ecx, [ebp - 0x274]
mov byte [ebp + 0x67], al
call fcn.004017f4
cmp byte [ebp + 0x67], bl
je 0x409156
lea eax, [ebp - 0x290]
push eax
mov ecx, esi
call fcn.0040eb60
push eax
call fcn.004051cf
pop ecx
lea ecx, [ebp - 0x290]
jmp 0x4090f3
mov eax, dword [0x42bd88]
cmp eax, ebx
jne 0x409163
xor ecx, ecx
jmp 0x409165
mov ecx, dword [eax]
cmp ecx, eax
mov dword [ebp + 0x5c], ecx
je 0x4091d1
mov eax, dword [ebp + 0x5c]
add eax, 8
push eax
mov ecx, esi
call fcn.0040ff50
test al, al
je 0x409190
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax]
cmp eax, dword [0x42bd88]
mov dword [ebp + 0x5c], eax
jne 0x40916c
jmp 0x4091d1
lea eax, [ebp - 0x300]
push eax
mov ecx, esi
call fcn.0040eb60
push eax
lea eax, [ebp - 0x2c8]
push str.Attached_Defines:
push eax
call fcn.004049bf
push eax
call fcn.004051cf
add esp, 0x10
push edi
lea ecx, [ebp - 0x2c8]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x300]
call fcn.004017f4
push str.MinDXVer
lea ecx, [ebp - 0x140]
call fcn.00401644
push 0x42bf20
lea eax, [ebp - 0x140]
push eax
mov ecx, esi
call fcn.0040f3a0
push edi
lea ecx, [ebp - 0x140]
call fcn.004017f4
push ebx
xor ebx, ebx
lea eax, [ebp + 0x18]
call fcn.00401d57
test eax, eax
pop ecx
jl 0x40921f
mov eax, dword [ebp + 0x18]
cmp eax, dword [0x42a26c]
jb 0x409748
push str.InstallPath
lea ecx, [ebp - 0x220]
call fcn.00401644
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x338]
push eax
mov ecx, esi
call fcn.0040ede0
push 0xffffffffffffffff
push 0
push eax
mov ecx, 0x42a2fc
call fcn.004016ad
xor edi, edi
inc edi
push edi
lea ecx, [ebp - 0x338]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x220]
call fcn.004017f4
push str.InstallGroup
lea ecx, [ebp - 0x178]
call fcn.00401644
lea eax, [ebp - 0x178]
push eax
lea eax, [ebp - 0x370]
push eax
mov ecx, esi
call fcn.0040ede0
push 0xffffffffffffffff
push 0
push eax
mov ecx, 0x42a318
call fcn.004016ad
push edi
lea ecx, [ebp - 0x370]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x178]
call fcn.004017f4
xor ebx, ebx
cmp dword [0x42bd64], 5
je 0x4096d6
cmp dword [ebp + 0x60], 0x3f6
jne 0x4092da
inc dword [0x42bd64]
jmp 0x4092f1
cmp dword [ebp + 0x60], 0x6e
jne 0x4092e6
dec dword [0x42bd64]
cmp dword [ebp + 0x60], 2
jne 0x4092f1
call fcn.00405337
cmp dword [0x42bd64], 3
jne 0x4096ca
cmp byte [0x42bd68], bl
jne 0x4096d6
push str.InstallPath
lea ecx, [ebp - 0xb4]
call fcn.00401644
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x3a8]
push eax
mov ecx, esi
call fcn.0040ede0
push eax
lea eax, [ebp + 0x3c]
push eax
call fcn.00404c07
pop ecx
pop ecx
push edi
lea ecx, [ebp - 0x3a8]
call fcn.004017f4
push edi
lea ecx, [ebp - 0xb4]
call fcn.004017f4
push 0x4255e8
lea eax, [ebp + 0x3c]
push eax
lea eax, [ebp - 0x3e0]
push eax
call fcn.004126b0
pop ecx
pop ecx
push eax
lea eax, [ebp + 0x20]
push eax
call fcn.00404973
add esp, 0xc
push edi
lea ecx, [ebp - 0x3e0]
call fcn.004017f4
push 0x424af0
call fcn.00416140
pop ecx
push eax
push ebx
push 0x424af0
lea ecx, [ebp + 0x3c]
call fcn.00401759
cmp eax, 0xffffffff
jne 0x40969b
push 0x424aec
call fcn.00416140
pop ecx
push eax
push ebx
push 0x424aec
lea ecx, [ebp + 0x3c]
call fcn.00401759
cmp eax, 0xffffffff
jne 0x40969b
cmp dword [ebp + 0x50], 3
jb 0x40968d
mov eax, dword [ebp + 0x40]
push 0x10
pop edx
cmp dword [ebp + 0x54], edx
jae 0x4093e1
lea eax, [ebp + 0x40]
cmp byte [eax + 1], 0x3a
jne 0x40968d
cmp dword [ebp + 0x54], edx
mov eax, dword [ebp + 0x40]
jae 0x4093f6
lea eax, [ebp + 0x40]
cmp byte [eax + 2], 0x2f
je 0x409411
cmp dword [ebp + 0x54], edx
mov eax, dword [ebp + 0x40]
jae 0x409407
lea eax, [ebp + 0x40]
cmp byte [eax + 2], 0x5c
jne 0x40968d
push 2
pop ecx
cmp dword [ebp + 0x50], ecx
mov byte [ebp + 0x67], bl
jle 0x409472
cmp dword [ebp + 0x54], edx
mov eax, dword [ebp + 0x40]
jae 0x409427
lea eax, [ebp + 0x40]
mov al, byte [ecx + eax]
cmp al, 0x22
je 0x409452
cmp al, 0x2a
je 0x409452
cmp al, 0x3a
je 0x409452
cmp al, 0x3c
je 0x409452
cmp al, 0x3e
je 0x409452
cmp al, 0x3f
je 0x409452
cmp al, 0x26
je 0x409452
cmp al, 0x7c
je 0x409452
cmp al, 0x25
je 0x409452
cmp al, 0x20
jge 0x409456
mov byte [ebp + 0x67], 1
inc ecx
cmp ecx, dword [ebp + 0x50]
jl 0x40941c
cmp byte [ebp + 0x67], bl
je 0x409472
push 0x10
push str.Invalid_Path_
push str.The_path_specified_contains_an_invalid_character.__Please_select_a_different_path.
jmp 0x4096a7
push str.InstallGroup
lea ecx, [ebp - 0xec]
call fcn.00401644
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x418]
push eax
mov ecx, esi
call fcn.0040ede0
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00404c07
pop ecx
pop ecx
push edi
lea ecx, [ebp - 0x418]
call fcn.004017f4
push edi
lea ecx, [ebp - 0xec]
call fcn.004017f4
xor ecx, ecx
cmp dword [ebp - 0x30], ebx
jle 0x409519
cmp dword [ebp - 0x2c], 0x10
mov eax, dword [ebp - 0x40]
jae 0x4094ce
lea eax, [ebp - 0x40]
mov al, byte [ecx + eax]
cmp al, 0x22
je 0x4094f9
cmp al, 0x2a
je 0x4094f9
cmp al, 0x3a
je 0x4094f9
cmp al, 0x3c
je 0x4094f9
cmp al, 0x3e
je 0x4094f9
cmp al, 0x3f
je 0x4094f9
cmp al, 0x26
je 0x4094f9
cmp al, 0x7c
je 0x4094f9
cmp al, 0x25
je 0x4094f9
cmp al, 0x20
jge 0x4094fd
mov byte [ebp + 0x67], 1
inc ecx
cmp ecx, dword [ebp - 0x30]
jl 0x4094c2
cmp byte [ebp + 0x67], bl
je 0x409519
push 0x10
push str.Invalid_Start_Menu_Location_
push str.The_start_menu_location_specified_contains_an_invalid_character.__Please_select_a_different_start_menu_location.
jmp 0x409671
lea eax, [ebp + 0x20]
call fcn.0040874a
mov ecx, edx
mov dword [ebp - 0x28], eax
and eax, ecx
cmp eax, 0xffffffff
je 0x409665
cmp dword [ebp + 0x34], 2
jb 0x409665
mov eax, dword [0x42bd80]
cdq
cmp ecx, edx
jg 0x40955d
jl 0x40954c
cmp dword [ebp - 0x28], eax
jae 0x40955d
push 0x10
push str.Insufficient_Space_
push str.The_drive_specified_does_not_have_sufficient_space.__Please_select_a_different_path.
jmp 0x409671
push str.InstallGroup
lea ecx, [ebp - 0x15c]
call fcn.00401644
push str.InstallGroup
lea ecx, [ebp - 0x124]
call fcn.00401644
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x488]
push eax
mov ecx, esi
call fcn.0040ede0
push eax
lea eax, [ebp - 0x450]
push eax
call fcn.00412810
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x124]
push eax
mov ecx, esi
call fcn.0040f3a0
push edi
lea ecx, [ebp - 0x450]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x488]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x124]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x15c]
call fcn.004017f4
push str.InstallPath
lea ecx, [ebp - 0x1cc]
call fcn.00401644
push str.InstallPath
lea ecx, [ebp - 0x194]
call fcn.00401644
lea eax, [ebp - 0x1cc]
push eax
lea eax, [ebp - 0x4f8]
push eax
mov ecx, esi
call fcn.0040ede0
push eax
lea eax, [ebp - 0x4c0]
push eax
call fcn.00412810
pop ecx
pop ecx
push eax
lea eax, [ebp - 0x194]
push eax
mov ecx, esi
call fcn.0040f3a0
push edi
lea ecx, [ebp - 0x4c0]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x4f8]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x194]
call fcn.004017f4
push edi
lea ecx, [ebp - 0x1cc]
call fcn.004017f4
jmp 0x409682
push 0x10
push str.Invalid_Drive_
push str.The_drive_specified_is_not_valid.__Please_select_a_different_path.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [0x42bd64], 2
push edi
lea ecx, [ebp - 0x44]
call fcn.004017f4
jmp 0x4096b8
push 0x10
push str.Invalid_Path_
push str.Please_specify_a_path__including_the_drive_letter.
jmp 0x4096a7
push 0x10
push str.Invalid_Path_
push str.Please_specify_a_valid_local_path_to_install_to.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [0x42bd64], 2
push edi
lea ecx, [ebp + 0x20]
call fcn.004017f4
push edi
lea ecx, [ebp + 0x3c]
call fcn.004017f4
cmp byte [0x42bd68], bl
je 0x408b44
mov eax, dword [0x42bf40]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x42bf44]
cmp dword [eax + 0x4c], 0xffffffff
je 0x409700
push 0x4248ac
mov ecx, 0x42bf4c
call fcn.00420a31
push eax
call fcn.00404bee
pop ecx
push 0x42a270
call fcn.004120b0
cmp byte [0x42bd68], bl
pop ecx
je 0x409734
cmp byte [0x42bd74], bl
jne 0x40972d
push ebx
push 0x405679
push ebx
push 0x6a
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov dword [ebp + 0x58], 0xa
push dword [0x42bd4c]
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp + 0x58]
jmp 0x409836
push str._DX_UPGRADE_TITLE_
lea ecx, [ebp - 4]
call fcn.00401644
push str._DX_UPGRADE_TEXT_
lea ecx, [ebp - 0x7c]
call fcn.00401644
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x568]
push eax
call fcn.00404c07
cmp dword [eax + 0x18], 0x10
pop ecx
pop ecx
jb 0x40977f
mov edi, dword [eax + 4]
jmp 0x409782
lea edi, [eax + 4]
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x530]
push eax
call fcn.00404c07
cmp dword [eax + 0x18], 0x10
pop ecx
pop ecx
jb 0x40979f
mov eax, dword [eax + 4]
jmp 0x4097a2
add eax, 4
xor esi, esi
inc esi
push esi
push edi
push eax
xor edi, edi
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ebx, eax
dec ebx
neg ebx
sbb bl, bl
push esi
lea ecx, [ebp - 0x530]
inc bl
call fcn.004017f4
push esi
lea ecx, [ebp - 0x568]
call fcn.004017f4
push esi
lea ecx, [ebp - 0x7c]
call fcn.004017f4
push esi
lea ecx, [ebp - 4]
call fcn.004017f4
test bl, bl
je 0x40980b
cmp dword [0x42bf1c], 0x10
mov eax, dword [0x42bf08]
jae 0x4097fb
mov eax, 0x42bf08
push esi
push edi
push edi
push eax
push str.open
push edi
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 2
call fcn.00417b2e
push str.Unable_to_Read_Installer_Data
lea ecx, [ebp - 4]
call fcn.00401644
lea eax, [ebp - 4]
push eax
call fcn.004051cf
pop ecx
push 1
lea ecx, [ebp - 4]
call fcn.004017f4
push 5
pop eax
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10