Function at 0x404d34
Capabilities:
Get cpu information
Get disk information
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc0
mov eax, dword [0x43db90]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov esi, ecx
mov ecx, closesocket
mov eax, str.HARDWAREDESCRIPTIONSystem
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x84], eax
xor ebx, ebx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x88], ecx
xor eax, eax
mov dword [ebp - 0x94], str.SystemBiosVersion
mov byte [ebp - 0x90], bl
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x80], str.VideoBiosVersion
mov byte [ebp - 0x7c], bl
lea edi, [ebp - 0x78]
stosd dword es:[edi], eax
mov dword [ebp - 0x74], ecx
mov edx, str.HARDWAREDESCRIPTIONSystemCentralProcessor0
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x6c], str.ProcessorNameString
mov byte [ebp - 0x68], bl
lea edi, [ebp - 0x64]
stosd dword es:[edi], eax
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], str.Identifier
mov byte [ebp - 0x54], bl
lea edi, [ebp - 0x50]
stosd dword es:[edi], eax
mov dword [ebp - 0x4c], ecx
lea edi, [ebp - 0x3c]
push 4
mov dword [ebp - 0x48], str.SOFTWAREMicrosoftWindowsCurrentVersion
mov dword [ebp - 0x44], str.ProductId
mov byte [ebp - 0x40], bl
stosd dword es:[edi], eax
pop edi
push 0xd
mov edx, str.cache_control
mov ecx, esi
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0x38], closesocket
mov dword [ebp - 0x34], str.SoftwareLFG
mov dword [ebp - 0x30], 0x42f8ec
mov byte [ebp - 0x2c], 1
mov dword [ebp - 0x28], edi
call fcn.00404af7
push 8
mov edx, str.Ethernet
mov ecx, esi
call fcn.00404af7
pop ecx
pop ecx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0xbc]
push eax
push ebx
push ebx
push 0x42f8dc
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
push edi
lea edx, [ebp - 0xbc]
mov ecx, esi
call fcn.00404af7
pop ecx
lea edi, [ebp - 0x98]
mov dword [ebp - 0xa8], 6
mov esi, dword [edi]
mov eax, dword [edi - 4]
lea ecx, [ebp - 0xa0]
push ecx
push 0x20019
push ebx
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x404eff
mov eax, dword [edi + 4]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0xa4]
push ecx
push ebx
push ebx
push ebx
push eax
push dword [ebp - 0xa0]
call esi
test eax, eax
jne 0x404eee
push dword [ebp - 0xa4]
call fcn.0041547e
pop ecx
mov dword [ebp - 0xac], eax
cmp eax, ebx
je 0x404eee
lea ecx, [ebp - 0xa4]
push ecx
push eax
push ebx
push ebx
push dword [edi + 4]
push dword [ebp - 0xa0]
call esi
test eax, eax
jne 0x404ee2
push dword [ebp - 0xa4]
mov edx, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xb0]
call fcn.00404af7
pop ecx
push dword [ebp - 0xac]
call fcn.00414c11
pop ecx
push dword [ebp - 0xa0]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x404fc2
cmp byte [edi + 8], bl
je 0x404fc2
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0xa0]
push eax
push ebx
push 0x20006
push ebx
push 0x42f814
push ebx
push esi
push dword [edi - 4]
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x404fc2
push ebx
call fcn.0041532c
mov dword [ebp - 0xb8], eax
mov eax, dword [edi + 0xc]
pop ecx
mov dword [ebp - 0xb4], edx
cmp eax, 4
jne 0x404f69
push 8
pop esi
push esi
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004148b0
add esp, 0xc
jmp 0x404f96
cmp eax, 1
jne 0x404fc2
push edx
push dword [ebp - 0xb8]
lea eax, [ebp - 0x24]
push 0x42f8d8
push eax
call fcn.004153fa
lea eax, [ebp - 0x24]
push eax
call fcn.00414820
lea esi, [eax + 1]
add esp, 0x14
cmp esi, ebx
jle 0x404fc2
push esi
lea eax, [ebp - 0x24]
push eax
push dword [edi + 0xc]
push ebx
push dword [edi + 4]
push dword [ebp - 0xa0]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x404fc2
mov ecx, dword [ebp - 0xb0]
push esi
lea edx, [ebp - 0x24]
call fcn.00404af7
pop ecx
add edi, 0x14
dec dword [ebp - 0xa8]
jne 0x404e59
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00415106
leave
ret