Function at 0x401170
Capabilities:
Get common file path
Get cpu information
Get disk information
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x524
mov eax, dword [0x40f004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor ebx, ebx
push 0xff
lea ecx, [ebp - 0x50f]
push ebx
push ecx
mov dword [ebp - 0x524], eax
mov dword [ebp - 0x514], ebx
mov byte [ebp - 0x510], bl
call fcn.004090f0
push 0xff
lea edx, [ebp - 0x30f]
push ebx
push edx
mov byte [ebp - 0x310], bl
call fcn.004090f0
push 0xff
lea eax, [ebp - 0x10b]
push ebx
push eax
mov byte [ebp - 0x10c], bl
call fcn.004090f0
push 0xff
lea ecx, [ebp - 0x40f]
push ebx
push ecx
mov byte [ebp - 0x410], bl
call fcn.004090f0
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
add esp, 0x30
lea edx, [ebp - 0x514]
push edx
push 1
push ebx
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push 0x80000002
mov byte [ebp - 0xc], bl
mov dword [ebp - 0xb], ebx
call esi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x401261
lea eax, [ebp - 0x518]
push eax
mov eax, dword [ebp - 0x514]
lea ecx, [ebp - 0x510]
push ecx
lea edx, [ebp - 0x51c]
push edx
push ebx
push str.Identifier
push eax
mov dword [ebp - 0x518], 0x100
call edi
mov ecx, dword [ebp - 0x514]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x514]
push edx
push 1
push ebx
push str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push 0x80000002
call esi
test eax, eax
jne 0x4012b6
lea eax, [ebp - 0x518]
push eax
mov eax, dword [ebp - 0x514]
lea ecx, [ebp - 0x310]
push ecx
lea edx, [ebp - 0x51c]
push edx
push ebx
push str.ProcessorNameString
push eax
mov dword [ebp - 0x518], 0x100
call edi
mov ecx, dword [ebp - 0x514]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x514]
push edx
push 1
push ebx
push str.HARDWAREDESCRIPTIONSystemBIOS
push 0x80000002
call esi
test eax, eax
jne 0x40130b
lea eax, [ebp - 0x518]
push eax
mov eax, dword [ebp - 0x514]
lea ecx, [ebp - 0x10c]
push ecx
lea edx, [ebp - 0x51c]
push edx
push ebx
push str.BIOSVendor
push eax
mov dword [ebp - 0x518], 0x100
call edi
mov ecx, dword [ebp - 0x514]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [ebp - 0x514]
push edx
push 1
push ebx
push str.HARDWAREDESCRIPTIONSystem
push 0x80000002
call esi
test eax, eax
jne 0x401360
lea eax, [ebp - 0x518]
push eax
mov eax, dword [ebp - 0x514]
lea ecx, [ebp - 0x410]
push ecx
lea edx, [ebp - 0x51c]
push edx
push ebx
push str.Identifier
push eax
mov dword [ebp - 0x518], 0x100
call edi
mov ecx, dword [ebp - 0x514]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x103
lea edx, [ebp - 0x20f]
push ebx
push edx
mov byte [ebp - 0x210], bl
call fcn.004090f0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 3
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0xc]
push edx
call fcn.00406460
add esp, 0xc
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x520]
push eax
push ebx
push ebx
lea ecx, [ebp - 0xc]
push ecx
mov byte [ebp - 8], bl
mov dword [ebp - 0x520], ebx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
mov edx, dword [ebp - 0x520]
push edx
lea eax, [ebp - 0x410]
push eax
lea ecx, [ebp - 0x10c]
push ecx
mov ecx, dword [ebp - 0x524]
lea edx, [ebp - 0x310]
push edx
lea eax, [ebp - 0x510]
push eax
push str._s_s_s_s_08X
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp - 4]
add esp, 0x1c
pop edi
pop esi
xor ecx, ebp
mov al, 1
pop ebx
call fcn.0040644b
mov esp, ebp
pop ebp
ret