Function at 0x4071d0
Capabilities:
Get installed programs
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4206fb
mov eax, dword fs:[0]
push eax
sub esp, 0x490
mov eax, dword [0x427138]
xor eax, esp
mov dword [esp + 0x488], eax
push ebx
push esi
push edi
mov eax, dword [0x427138]
xor eax, esp
push eax
lea eax, [esp + 0x4a0]
mov dword fs:[0], eax
push str.._setup.ini
push 0x200
lea eax, [esp + 0x29c]
push eax
push 0x423868
push str.ProductGUID
mov esi, ecx
push str.Startup
mov dword [esp + 0x34], esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x40], 7
mov dword [esp + 0x3c], ebx
mov word [esp + 0x2c], cx
mov dword [esp + 0x4a8], ebx
cmp eax, ebx
jne 0x407309
mov esi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
lea edx, [esp + 0x44]
push edx
push str.._bsxxd.exe
call esi
cmp eax, 0xffffffff
jne 0x4072da
lea eax, [esp + 0x44]
push eax
push str..demo.exe
call esi
cmp eax, 0xffffffff
jne 0x4072ab
cmp dword [esp + 0x40], 8
jb 0x4072a1
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00409c0b
add esp, 4
mov eax, 1
jmp 0x40750d
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [esp + 0x40], 8
mov dword [0x428158], 0x423fac
jb 0x4072d0
mov edx, dword [esp + 0x2c]
push edx
call fcn.00409c0b
add esp, 4
mov eax, 4
jmp 0x40750d
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [esp + 0x40], 8
mov dword [0x428158], 0x423f94
jb 0x4072ff
mov eax, dword [esp + 0x2c]
push eax
call fcn.00409c0b
add esp, 4
mov eax, 3
jmp 0x40750d
cmp eax, 0x1fe
jb 0x40733e
push str._ProductGUID_
push esi
xor edx, edx
xor ecx, ecx
call fcn.00406de0
add esp, 8
cmp dword [esp + 0x40], 8
jb 0x407336
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00409c0b
add esp, 4
or eax, 0xffffffff
jmp 0x40750d
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], 0x80000001
mov dword [esp + 0x24], 0x80000002
mov eax, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x407360
sub eax, edx
sar eax, 1
push eax
mov eax, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
lea esi, [esp + 0x2c]
call fcn.00404620
lea eax, [esp + 0x294]
lea edx, [eax + 2]
jmp 0x407390
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x407390
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x298]
lea ecx, [esp + 0x2c]
call fcn.004011a0
mov eax, dword [esp + 0x2c]
mov esi, 8
cmp dword [esp + 0x40], esi
jae 0x4073c3
lea eax, [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + edx*4 + 0x20]
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push ebx
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, 2
jne 0x4074ac
mov eax, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x4073f0
sub eax, edx
sar eax, 1
push eax
mov eax, str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall_
lea esi, [esp + 0x2c]
call fcn.00404620
push 1
mov eax, 0x423ff0
mov ecx, esi
call fcn.004011a0
lea eax, [esp + 0x294]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x407426
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x298]
lea ecx, [esp + 0x2c]
call fcn.004011a0
push 1
mov eax, 0x423ff4
lea ecx, [esp + 0x2c]
call fcn.004011a0
cmp dword [esp + 0x40], 8
mov eax, dword [esp + 0x2c]
jae 0x407465
lea eax, [esp + 0x2c]
lea edx, [esp + 0x14]
push edx
push 0x20019
push ebx
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
cmp eax, 2
jne 0x4074a7
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 2
mov dword [esp + 0x18], eax
jl 0x407352
cmp dword [esp + 0x40], 8
jb 0x4074a3
mov eax, dword [esp + 0x2c]
push eax
call fcn.00409c0b
add esp, 4
xor eax, eax
jmp 0x40750d
mov esi, 8
cmp eax, ebx
je 0x4074ea
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x40], esi
jae 0x4074be
lea ecx, [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x20]
push ecx
xor edx, edx
mov ecx, eax
call fcn.00406de0
add esp, 8
cmp dword [esp + 0x40], esi
jb 0x4074e3
mov edx, dword [esp + 0x2c]
push edx
call fcn.00409c0b
add esp, 4
mov eax, 0xfffffffe
jmp 0x40750d
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [esp + 0x40], esi
jb 0x407508
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00409c0b
add esp, 4
mov eax, 2
mov ecx, dword [esp + 0x4a0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x488]
xor ecx, esp
call fcn.00409a6d
mov esp, ebp
pop ebp
ret