Function at 0x4047b6
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x650
mov eax, dword [0x41f014]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x618], eax
lea eax, [ebp - 0x624]
push eax
push str.HARDWAREDESCRIPTIONSystemCentralProcessor
mov esi, reloc.WS2_32.dll_bind
push esi
lea edi, [ebp - 0x628]
call fcn.00404378
add esp, 0xc
test eax, eax
jne 0x404974
xor edi, edi
push 0x206
lea eax, [ebp - 0x412]
push edi
push eax
mov word [ebp - 0x414], di
call fcn.00407490
add esp, 0xc
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x63c]
push eax
lea eax, [ebp - 0x630]
push eax
lea eax, [ebp - 0x644]
push eax
lea eax, [ebp - 0x64c]
push eax
lea eax, [ebp - 0x648]
push eax
lea eax, [ebp - 0x640]
push eax
lea eax, [ebp - 0x620]
push eax
push edi
lea eax, [ebp - 0x62c]
push eax
lea eax, [ebp - 0x414]
push eax
push dword [ebp - 0x624]
mov dword [ebp - 0x62c], 0x104
mov dword [ebp - 0x620], edi
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
cmp dword [ebp - 0x620], edi
je 0x404968
mov dword [ebp - 0x61c], edi
mov eax, 0x100
cmp dword [ebp - 0x620], eax
jae 0x4048a3
mov eax, dword [ebp - 0x620]
cmp dword [ebp - 0x61c], eax
jae 0x404968
lea eax, [ebp - 0x638]
push eax
push edi
push edi
push edi
lea eax, [ebp - 0x628]
push eax
lea eax, [ebp - 0x614]
push eax
push dword [ebp - 0x61c]
mov dword [ebp - 0x628], 0xff
push dword [ebp - 0x624]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x40495d
lea eax, [ebp - 0x614]
push eax
push str.HARDWAREDESCRIPTIONSystemCentralProcessor
push 0x41cb20
lea eax, [ebp - 0x20c]
push 0x1fd
push eax
call fcn.00406a82
push esi
mov ebx, str.ProcessorNameString
lea ecx, [ebp - 0x20c]
call fcn.00404416
add esp, 0x18
cmp eax, edi
je 0x404929
push eax
call fcn.004055e5
jmp 0x404933
push str.Unknown
call fcn.00406955
mov ebx, dword [ebp - 0x618]
pop ecx
mov ecx, dword [ebx]
mov dword [ebx + ecx*8 + 8], eax
lea eax, [ebp - 0x20c]
push eax
call fcn.004043b6
pop ecx
mov ecx, dword [ebx]
mov dword [ebx + ecx*8 + 4], eax
inc dword [ebx]
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [ebp - 0x61c]
jmp 0x404890
push dword [ebp - 0x624]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push esi
mov ebx, str.ProductName
mov ecx, edi
call fcn.00404416
test eax, eax
pop ecx
jne 0x404996
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [ebp - 0x618]
mov dword [ecx + 0x804], eax
push esi
mov ebx, str.CurrentBuildNumber
mov ecx, edi
call fcn.00404416
test eax, eax
pop ecx
jne 0x4049bf
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [ebp - 0x618]
mov dword [ecx + 0x808], eax
push esi
mov ebx, str.CSDVersion
mov ecx, edi
call fcn.00404416
test eax, eax
pop ecx
jne 0x4049e8
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [ebp - 0x618]
mov dword [ecx + 0x80c], eax
push esi
mov ebx, str.CurrentVersion
mov ecx, edi
call fcn.00404416
test eax, eax
pop ecx
jne 0x404a11
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [ebp - 0x618]
mov dword [ecx + 0x810], eax
push esi
mov ebx, str.BuildLab
mov ecx, edi
call fcn.00404416
test eax, eax
pop ecx
jne 0x404a3a
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [ebp - 0x618]
mov dword [ecx + 0x814], eax
push esi
mov ebx, str.CurrentType
mov ecx, edi
call fcn.00404416
test eax, eax
pop ecx
jne 0x404a63
push str.Unknown
call fcn.00406955
pop ecx
mov ecx, dword [ebp - 0x618]
mov dword [ecx + 0x818], eax
mov ecx, dword [ebp - 8]
pop edi
xor eax, eax
pop esi
xor ecx, ebp
inc eax
pop ebx
call fcn.004062b8
leave
ret