Function at 0x4044b3
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x848
mov eax, dword [0x41f014]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push edi
push dword [esi + 0x318]
lea eax, [ebp - 0x610]
push str._sInstaller
push 0x1fd
push eax
call fcn.00406a82
lea eax, [ebp - 0x81c]
push eax
lea eax, [ebp - 0x610]
push eax
push reloc.WS2_32.dll_bind
lea edi, [ebp - 0x820]
call fcn.00404378
add esp, 0x1c
test eax, eax
jne 0x4047a5
xor edi, edi
push 0x206
lea eax, [ebp - 0x40e]
push edi
push eax
mov word [ebp - 0x410], di
call fcn.00407490
add esp, 0xc
lea eax, [ebp - 0x838]
push eax
lea eax, [ebp - 0x830]
push eax
lea eax, [ebp - 0x82c]
push eax
lea eax, [ebp - 0x828]
push eax
lea eax, [ebp - 0x83c]
push eax
lea eax, [ebp - 0x844]
push eax
lea eax, [ebp - 0x840]
push eax
lea eax, [ebp - 0x814]
push eax
push edi
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x81c]
mov dword [ebp - 0x824], 0x104
mov dword [ebp - 0x814], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
cmp dword [ebp - 0x814], edi
je 0x404799
mov dword [ebp - 0x818], edi
push 0x40
pop eax
cmp dword [ebp - 0x814], eax
jae 0x4045b1
mov eax, dword [ebp - 0x814]
cmp dword [ebp - 0x818], eax
jae 0x404799
lea eax, [ebp - 0x838]
push eax
push edi
push edi
push edi
lea eax, [ebp - 0x820]
push eax
lea eax, [ebp - 0x810]
push eax
push dword [ebp - 0x818]
mov dword [ebp - 0x820], 0xff
push dword [ebp - 0x81c]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x40478e
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0x610]
push eax
push str._s_sProperty
lea eax, [ebp - 0x208]
push 0x1fd
push eax
call fcn.00406a82
push reloc.WS2_32.dll_bind
mov ebx, str.ProductName
lea ecx, [ebp - 0x208]
call fcn.00404416
add esp, 0x18
cmp eax, edi
jne 0x404644
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [esi + 0x31c]
imul ecx, ecx, 0x1c
mov dword [ecx + esi + 0x320], eax
mov edi, reloc.WS2_32.dll_bind
push edi
mov ebx, str.ProductVersion
lea ecx, [ebp - 0x208]
call fcn.00404416
test eax, eax
pop ecx
jne 0x40467a
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [esi + 0x31c]
imul ecx, ecx, 0x1c
mov dword [ecx + esi + 0x324], eax
push edi
mov ebx, str.PatchVersion
lea ecx, [ebp - 0x208]
call fcn.00404416
test eax, eax
pop ecx
jne 0x4046ab
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [esi + 0x31c]
imul ecx, ecx, 0x1c
mov dword [ecx + esi + 0x328], eax
push edi
mov ebx, str.LogonUser
lea ecx, [ebp - 0x208]
call fcn.00404416
test eax, eax
pop ecx
jne 0x4046dc
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [esi + 0x31c]
add ecx, 0x1d
imul ecx, ecx, 0x1c
mov dword [ecx + esi], eax
push edi
mov ebx, str.ApplicationUsers
lea ecx, [ebp - 0x208]
call fcn.00404416
test eax, eax
pop ecx
jne 0x40470c
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [esi + 0x31c]
imul ecx, ecx, 0x1c
mov dword [ecx + esi + 0x330], eax
push edi
mov ebx, str.USERDATASELECTRB
lea ecx, [ebp - 0x208]
call fcn.00404416
test eax, eax
pop ecx
jne 0x40473d
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [esi + 0x31c]
imul ecx, ecx, 0x1c
mov dword [ecx + esi + 0x334], eax
push edi
mov ebx, str.SetupType
lea ecx, [ebp - 0x208]
call fcn.00404416
test eax, eax
pop ecx
jne 0x40476e
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [esi + 0x31c]
imul ecx, ecx, 0x1c
mov dword [ecx + esi + 0x338], eax
inc dword [esi + 0x31c]
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
xor edi, edi
inc dword [ebp - 0x818]
jmp 0x4045a0
push dword [ebp - 0x81c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
inc eax
pop ebx
call fcn.004062b8
leave
ret