Function at 0x40dd40
Capabilities:
Get cpu information
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x541a62
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x5a379c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov ebx, dword [ebp + 8]
mov ecx, ebx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0x94], 0
call fcn.00401170
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x94], 1
call fcn.00401170
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 1
call fcn.00401170
lea eax, [ebp - 0x70]
push eax
push 1
push 0
push str.HardwareDescriptionSystemCentralProcessor0
push reloc.OLEAUT32.dll_SysReAllocString
mov byte [ebp - 4], 2
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40de5f
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x64]
push eax
push 0
push 0
push str.MHz
push dword [ebp - 0x70]
mov dword [ebp - 0x5c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40de09
push dword [ebp - 0x64]
lea eax, [ebp - 0x6c]
push str.Speed:__dMHz
push eax
call fcn.004014c0
add esp, 0xc
jmp 0x40de16
push str.Speed:_Unknown
lea ecx, [ebp - 0x6c]
call fcn.00401270
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x50]
push eax
push 0
push 0
push str.VendorIdentifier
push dword [ebp - 0x70]
mov dword [ebp - 0x5c], 0x40
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40de52
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x68]
push str.Vendor:__s
push eax
call fcn.004014c0
add esp, 0xc
jmp 0x40de5f
push str.Vendor:_Unknown
lea ecx, [ebp - 0x68]
call fcn.00401270
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x5c]
call fcn.00401170
mov eax, dword [esi + 0x1c]
mov byte [ebp - 4], 3
cmp eax, 0x24a
ja 0x40dea1
je 0x40de9a
sub eax, 0x182
je 0x40de93
sub eax, 0x64
jne 0x40deaf
push str.Type:_Intel_486
jmp 0x40dec2
push str.Type:_Intel_386
jmp 0x40dec2
push str.Type:_Intel_Pentium_compatible
jmp 0x40dec2
cmp eax, 0xfa0
je 0x40debd
cmp eax, 0x5248
je 0x40deb6
push str.Type:_Unknown
jmp 0x40dec2
push str.Type:_Alpha
jmp 0x40dec2
push str.Type:_MIPS
lea ecx, [ebp - 0x5c]
call fcn.00401270
lea ecx, [ebp - 0x64]
call fcn.00401170
push dword [esi + 0x18]
lea eax, [ebp - 0x64]
push str.Number_Of_Processors:__lu
push eax
mov byte [ebp - 4], 4
call fcn.004014c0
add esp, 0xc
lea ecx, [ebp - 0x60]
call fcn.00401170
lea ecx, [ebp - 0x54]
call fcn.00401170
lea ecx, [ebp - 0x58]
call fcn.00401170
movzx eax, word [esi + 4]
mov byte [ebp - 4], 7
cmp eax, 0xffff
jg case.default.0x40df24
je 0x40e1a1
cmp eax, 3
ja case.default.0x40df24
jmp dword [eax*4 + 0x40e3d0]
push str.Architecture:_Intel
lea ecx, [ebp - 0x60]
call fcn.00401270
movzx ecx, word [esi + 0x24]
lea eax, [ecx - 3]
cmp eax, 3
ja case.default.0x40df48
jmp dword [eax*4 + 0x40e3e0]
push str.Level:_80386
lea ecx, [ebp - 0x54]
call fcn.00401270
movzx eax, word [esi + 0x26]
cdq
mov ecx, 0x64
idiv ecx
push edx
push eax
lea eax, [ebp - 0x58]
push str.Stepping:__c_u
push eax
call fcn.004014c0
add esp, 0x10
jmp 0x40e1f9
push str.Level:_80486
lea ecx, [ebp - 0x54]
call fcn.00401270
movzx eax, word [esi + 0x26]
cdq
mov ecx, 0x64
idiv ecx
push edx
push eax
lea eax, [ebp - 0x58]
push str.Stepping:__c_u
push eax
call fcn.004014c0
add esp, 0x10
jmp 0x40e1f9
push str.Level:_Pentium
lea ecx, [ebp - 0x54]
call fcn.00401270
push str.IsProcessorFeaturePresentA
push 0x55354c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40dff1
push 3
call eax
add esp, 4
test eax, eax
je 0x40dff1
push str._MMX
lea ecx, [ebp - 0x54]
call fcn.00403360
movzx eax, word [esi + 0x26]
cdq
mov ecx, 0x64
idiv ecx
push edx
push eax
lea eax, [ebp - 0x58]
push str.Stepping:__u__u
push eax
call fcn.004014c0
add esp, 0x10
jmp 0x40e1f9
push str.Level:_Pentium_II_Pro
lea ecx, [ebp - 0x54]
call fcn.00401270
jmp 0x40dff1
push ecx
lea eax, [ebp - 0x54]
push str.Level:_Unknown__u
push eax
call fcn.004014c0
movzx eax, word [esi + 0x26]
cdq
mov ecx, 0x64
idiv ecx
push edx
push eax
lea eax, [ebp - 0x58]
push str.Stepping:__u__u
push eax
call fcn.004014c0
add esp, 0x1c
jmp 0x40e1f9
push str.Architecture:_MIPS
lea ecx, [ebp - 0x60]
call fcn.00401270
movzx eax, word [esi + 0x24]
cmp eax, 4
je 0x40e081
push eax
lea eax, [ebp - 0x54]
push str.Level:_Unknown__u
push eax
call fcn.004014c0
add esp, 0xc
jmp 0x40e08e
push str.Level:_R4000
lea ecx, [ebp - 0x54]
call fcn.00401270
movzx eax, word [esi + 0x26]
push eax
lea eax, [ebp - 0x58]
push str.Stepping:_00_u
push eax
call fcn.004014c0
add esp, 0xc
jmp 0x40e1f9
push str.Architecture:_Alpha
lea ecx, [ebp - 0x60]
call fcn.00401270
movzx eax, word [esi + 0x24]
push eax
lea eax, [ebp - 0x54]
push str.Level:__u
push eax
call fcn.004014c0
movzx eax, word [esi + 0x26]
cdq
mov ecx, 0x64
idiv ecx
push edx
push eax
lea eax, [ebp - 0x58]
push str.Stepping:__c_u
push eax
call fcn.004014c0
add esp, 0x1c
jmp 0x40e1f9
push str.Architecture:_PowerPC
lea ecx, [ebp - 0x60]
call fcn.00401270
movzx ecx, word [esi + 0x24]
lea eax, [ecx - 1]
cmp eax, 0x13
ja case.0x40e10d.2
movzx eax, byte [eax + 0x40e40c]
jmp dword [eax*4 + 0x40e3f0]
push str.Level:_601
lea ecx, [ebp - 0x54]
call fcn.00401270
jmp 0x40e180
push 0x555118
lea ecx, [ebp - 0x54]
call fcn.00401270
jmp 0x40e180
push 0x555124
lea ecx, [ebp - 0x54]
call fcn.00401270
jmp 0x40e180
push str.Level:_603
lea ecx, [ebp - 0x54]
call fcn.00401270
jmp 0x40e180
push str.Level:_604
lea ecx, [ebp - 0x54]
call fcn.00401270
jmp 0x40e180
push str.Level:_620
lea ecx, [ebp - 0x54]
call fcn.00401270
jmp 0x40e180
push ecx
lea eax, [ebp - 0x54]
push str.Level:_Unknown__u
push eax
call fcn.004014c0
add esp, 0xc
movzx eax, word [esi + 0x26]
cdq
mov ecx, 0x64
idiv ecx
push edx
push eax
lea eax, [ebp - 0x58]
push str.Stepping:__u._u
push eax
call fcn.004014c0
add esp, 0x10
jmp 0x40e1f9
push str.Architecture:_Unknown
lea ecx, [ebp - 0x60]
call fcn.00401270
movzx eax, word [esi + 0x24]
push eax
jmp 0x40e025
push eax
lea eax, [ebp - 0x60]
push str.Architecture:_Unknown__u
push eax
call fcn.004014c0
movzx eax, word [esi + 0x24]
push eax
lea eax, [ebp - 0x54]
push str.Level:_Unknown__u
push eax
call fcn.004014c0
movzx eax, word [esi + 0x26]
cdq
mov ecx, 0x64
idiv ecx
push edx
push eax
lea eax, [ebp - 0x58]
push str.Stepping:__u__u
push eax
call fcn.004014c0
add esp, 0x28
push 0x553b90
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00402f80
lea ecx, [ebp - 0x6c]
push ecx
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 8
call fcn.00402c00
push 0x553b90
push eax
lea eax, [ebp - 0x88]
push eax
mov byte [ebp - 4], 9
call fcn.00402f80
lea ecx, [ebp - 0x5c]
push ecx
push eax
lea eax, [ebp - 0x80]
push eax
mov byte [ebp - 4], 0xa
call fcn.00402c00
push 0x553b90
push eax
lea eax, [ebp - 0x78]
push eax
mov byte [ebp - 4], 0xb
call fcn.00402f80
lea ecx, [ebp - 0x64]
push ecx
push eax
lea eax, [ebp - 0x9c]
push eax
mov byte [ebp - 4], 0xc
call fcn.00402c00
add esp, 0x48
push 0x553b90
push eax
lea eax, [ebp - 0x8c]
push eax
mov byte [ebp - 4], 0xd
call fcn.00402f80
lea ecx, [ebp - 0x60]
push ecx
push eax
lea eax, [ebp - 0xa4]
push eax
mov byte [ebp - 4], 0xe
call fcn.00402c00
push 0x553b90
push eax
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 4], 0xf
call fcn.00402f80
lea ecx, [ebp - 0x54]
push ecx
push eax
lea eax, [ebp - 0x74]
push eax
mov byte [ebp - 4], 0x10
call fcn.00402c00
push 0x553b90
push eax
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 0x11
push eax
call fcn.00402f80
lea ecx, [ebp - 0x58]
push ecx
push eax
lea eax, [ebp - 0xa0]
push eax
mov byte [ebp - 4], 0x12
call fcn.00402c00
add esp, 0x48
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x13
call fcn.00401250
lea ecx, [ebp - 0xa0]
call fcn.004011a0
lea ecx, [ebp - 0x7c]
call fcn.004011a0
lea ecx, [ebp - 0x74]
call fcn.004011a0
lea ecx, [ebp - 0x84]
call fcn.004011a0
lea ecx, [ebp - 0xa4]
call fcn.004011a0
lea ecx, [ebp - 0x8c]
call fcn.004011a0
lea ecx, [ebp - 0x9c]
call fcn.004011a0
lea ecx, [ebp - 0x78]
call fcn.004011a0
lea ecx, [ebp - 0x80]
call fcn.004011a0
lea ecx, [ebp - 0x88]
call fcn.004011a0
lea ecx, [ebp - 0x90]
call fcn.004011a0
lea ecx, [ebp - 0x98]
call fcn.004011a0
lea ecx, [ebp - 0x58]
call fcn.004011a0
lea ecx, [ebp - 0x54]
call fcn.004011a0
lea ecx, [ebp - 0x60]
call fcn.004011a0
lea ecx, [ebp - 0x64]
call fcn.004011a0
lea ecx, [ebp - 0x5c]
call fcn.004011a0
lea ecx, [ebp - 0x68]
call fcn.004011a0
lea ecx, [ebp - 0x6c]
call fcn.004011a0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00521d5b
mov esp, ebp
pop ebp
ret 4