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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5e8ea4
mov eax, dword fs:[0]
push eax
sub esp, 0x27c
mov eax, dword [0x672014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0xe8], esi
call fcn.00407dfc
push 0x19
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xd0]
push str.srl::Registry::GetCpuInfo
mov byte [ebp - 0xd4], 0
call fcn.004075f5
mov dword [ebp - 4], 1
mov eax, dword [0x67e3a8]
test eax, eax
jne 0x45165e
push 0x68
call fcn.0046f39a
add esp, 4
mov dword [ebp - 0xd8], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x451653
push ecx
mov ecx, eax
call fcn.0041d120
jmp 0x451655
xor eax, eax
mov byte [ebp - 4], 1
mov dword [0x67e3a8], eax
cmp dword [eax + 4], 4
jl 0x451670
push ecx
lea ecx, [ebp - 0xd4]
call fcn.004127e0
lea ecx, [ebp - 0x28]
call fcn.00407dfc
sub esp, 8
mov byte [ebp - 4], 3
lea eax, [ebp - 0x28]
mov edx, str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push eax
push str.ProcessorNameString
call fcn.00452030
add esp, 0x10
test al, al
je 0x4516d4
cmp dword [ebp - 0x14], 8
lea edx, [ebp - 0x28]
cmovae edx, dword [ebp - 0x28]
test edx, edx
jne 0x4516ac
xor ecx, ecx
jmp 0x4516ca
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0xd8], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4516b7
sub ecx, dword [ebp - 0xd8]
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x20]
call fcn.00401fc3
mov edi, dword [0x67e3a8]
test edi, edi
jne 0x45170e
push 0x68
call fcn.0046f39a
add esp, 4
mov dword [ebp - 0xd8], eax
mov byte [ebp - 4], 4
test eax, eax
je 0x451702
push ecx
mov ecx, eax
call fcn.0041d120
mov edi, eax
jmp 0x451704
xor edi, edi
mov byte [ebp - 4], 3
mov dword [0x67e3a8], edi
cmp dword [edi + 4], 3
jl 0x451b5f
sub esp, 8
lea ecx, [ebp - 0x288]
call fcn.00415530
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 6
call fcn.00407dfc
push 5
push str.TRACE
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 7
call fcn.004075f5
lea ecx, [ebp - 0x88]
call fcn.00407dfc
xor esi, esi
mov byte [ebp - 4], 8
cmp dword [edi + 0xc], esi
jle 0x45177d
nop dword [eax + eax]
cmp esi, 0xa
jge 0x45177d
push 2
push 0x637484
lea ecx, [ebp - 0x88]
call fcn.0041df10
inc esi
cmp esi, dword [edi + 0xc]
jl 0x451760
lea ecx, [ebp - 0x58]
call fcn.00407dfc
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 9
call fcn.00407dfc
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x58]
mov ecx, edi
push eax
call fcn.0041d380
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
push 0x2040
cmovae eax, dword [ebp - 0x88]
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0xe0]
push eax
call fcn.005b7368
mov ecx, dword [ebp - 0x278]
lea edx, [ebp - 0x278]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, edx
push ecx
call eax
mov eax, dword [ebp - 0x48]
mov byte [ebp - 4], 0xb
lea edx, [ebp - 0x58]
cmp dword [ebp - 0x44], 8
lea ecx, [ebp - 0x278]
push eax
cmovae edx, dword [ebp - 0x58]
mov byte [ebp - 4], 0xa
call fcn.004130d0
mov esi, eax
lea eax, [ebp - 0xf0]
push 0x10
push eax
call fcn.005b7368
add esp, 0x1c
mov edx, 0x6370dc
mov ecx, esi
mov edi, eax
call fcn.00412d50
mov esi, eax
test esi, esi
jne 0x451832
xor ecx, ecx
jmp 0x451839
mov eax, dword [esi]
mov ecx, dword [eax + 4]
add ecx, esi
push dword [edi + 4]
mov eax, dword [edi]
push ecx
call eax
push 0
lea eax, [ebp - 0x1c8]
push 6
push eax
call fcn.005b7396
mov edx, eax
mov ecx, esi
call fcn.0041e4a0
mov esi, eax
mov eax, 0x30
push 0
push 3
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0x1d8]
push eax
call fcn.005b737c
mov edx, eax
mov ecx, esi
call fcn.0041e4a0
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
push ecx
cmovae edx, dword [ebp - 0x40]
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.004130d0
push 0
mov edi, eax
lea eax, [ebp - 0x108]
push 5
push eax
call fcn.005b7396
mov edx, 0x6370dc
mov ecx, edi
mov esi, eax
call fcn.00412d50
mov edx, esi
mov ecx, eax
call fcn.0041e4a0
mov esi, eax
mov eax, 0x20
push 0x40
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov word [ecx + esi + 0x40], ax
lea eax, [ebp - 0xf8]
push eax
call fcn.005b7368
mov ecx, dword [esi]
push dword [eax + 4]
mov ecx, dword [ecx + 4]
mov eax, dword [eax]
add ecx, esi
push ecx
call eax
mov eax, dword [ebp - 0x60]
add esp, 0x40
mov byte [ebp - 4], 0xd
lea edx, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
mov ecx, esi
push eax
cmovae edx, dword [ebp - 0x70]
mov byte [ebp - 4], 0xa
call fcn.004130d0
add esp, 4
mov edx, 0x6374c4
mov ecx, eax
call fcn.00412d50
mov edx, dword [ebp - 0xd8]
mov ecx, eax
call fcn.00412d50
mov eax, dword fs:[0x2c]
mov edi, 0x67e5fc
mov ecx, dword [eax]
mov eax, dword [0x67e5f8]
cmp eax, dword [ecx + 4]
jle 0x451984
push 0x67e5f8
call fcn.005b583c
add esp, 4
cmp dword [0x67e5f8], 0xffffffff
jne 0x451984
mov ecx, edi
call fcn.00407dfc
push 0x5f8b00
call fcn.005b547f
push 0x67e5f8
call fcn.005b57fd
add esp, 8
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x288]
call fcn.004153f0
mov esi, eax
mov byte [ebp - 4], 0xe
cmp esi, 0x67e5fc
je 0x451a49
mov eax, dword [0x67e610]
cmp eax, 8
jb 0x451a09
mov ecx, dword [0x67e5fc]
inc eax
cmp eax, 0x7fffffff
jbe 0x4519c5
call fcn.005bcb11
add eax, eax
cmp eax, 0x1000
jb 0x451a00
test byte [0x67e5fc], 0x1f
je 0x4519dc
call fcn.005bcb11
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x4519e8
call fcn.005bcb11
sub ecx, eax
cmp ecx, 4
jae 0x4519f4
call fcn.005bcb11
cmp ecx, 0x23
jbe 0x4519fe
call fcn.005bcb11
mov ecx, eax
push ecx
call fcn.0046f3d1
add esp, 4
mov dword [0x67e60c], 0
xor eax, eax
mov dword [0x67e610], 7
mov word [0x67e5fc], ax
movups xmm0, xmmword [esi]
movups xmmword [0x67e5fc], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x67e60c], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0xa
call fcn.00407420
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 9
call fcn.00407420
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 8
call fcn.00407420
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 7
call fcn.00407420
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 6
call fcn.00407420
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 0xf
call fcn.00415410
mov byte [ebp - 4], 0x10
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
lea eax, [ebp - 0x220]
mov byte [ebp - 4], 0x11
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.005b72e0
mov byte [ebp - 4], 3
add esp, 4
mov ecx, dword [0x67e3a8]
test ecx, ecx
jne 0x451b03
push 0x68
call fcn.0046f39a
add esp, 4
mov dword [ebp - 0xd8], eax
mov byte [ebp - 4], 0x12
test eax, eax
je 0x451af7
push ecx
mov ecx, eax
call fcn.0041d120
mov ecx, eax
jmp 0x451af9
xor ecx, ecx
mov byte [ebp - 4], 3
mov dword [0x67e3a8], ecx
mov eax, dword [0x67e60c]
mov byte [ebp - 4], 0x13
cmp dword [0x67e610], 8
push eax
cmovae edi, dword [0x67e5fc]
mov edx, edi
mov byte [ebp - 4], 3
call fcn.004130d0
mov edx, str.Name__L
mov ecx, eax
call fcn.00412d50
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x14
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
push ecx
cmovae edx, dword [ebp - 0x28]
mov ecx, eax
mov byte [ebp - 4], 3
call fcn.004130d0
push eax
call fcn.00414150
mov esi, dword [ebp - 0xe8]
add esp, 0xc
sub esp, 8
lea eax, [ebp - 0x28]
mov edx, str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push eax
push str.MHz
call fcn.00452030
add esp, 0x10
test al, al
je 0x451c37
sub esp, 8
lea ecx, [ebp - 0x1a0]
call fcn.00420a00
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x1a0]
push eax
cmovae edx, dword [ebp - 0x28]
mov byte [ebp - 4], 0x15
call fcn.004130d0
add esp, 4
mov edx, str._MHz
mov ecx, eax
call fcn.00412d50
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00420900
mov byte [ebp - 4], 0x17
cmp dword [eax + 0x14], 8
jb 0x451be1
mov eax, dword [eax]
push eax
lea ecx, [esi + 8]
call fcn.0044b1e0
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x15
call fcn.00407420
lea ecx, [ebp - 0x150]
mov byte [ebp - 4], 0x18
call fcn.00420920
mov byte [ebp - 4], 0x19
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 0x1a
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.005b72e0
add esp, 4
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xa0]
call fcn.00407dfc
sub esp, 8
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0xa0]
mov edx, str.HARDWAREDESCRIPTIONSystemCentralProcessor0
push eax
push str.Platform_ID
call fcn.00452030
add esp, 0x10
test al, al
je 0x451cad
cmp dword [ebp - 0x8c], 8
lea edx, [ebp - 0xa0]
cmovae edx, dword [ebp - 0xa0]
test edx, edx
jne 0x451c82
xor ecx, ecx
jmp 0x451ca3
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0xd8], eax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x451c90
sub ecx, dword [ebp - 0xd8]
sar ecx, 1
push ecx
push edx
lea ecx, [esi + 0x40]
call fcn.00401fc3
push ecx
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xd8], 0
push eax
lea eax, [ebp - 0xd8]
mov dword [ebp - 0xdc], 0
push eax
push ecx
call fcn.00452190
add esp, 0x10
test al, al
je 0x451df7
mov edi, dword [ebp - 0xd8]
test edi, edi
je 0x451df7
cmp dword [ebp - 0xdc], 4
jle 0x451df7
movzx esi, byte [edi + 4]
lea ecx, [ebp - 0x1b8]
sub esp, 8
call fcn.00415530
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x1a8]
push 0
push 2
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0x14]
and eax, 0xfffff9ff
or eax, 0x800
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x108]
push eax
call fcn.005b7396
add esp, 0xc
lea ecx, [ebp - 0x1a8]
mov edx, eax
call fcn.0041e4a0
mov edx, 0x30
push esi
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov word [ecx + eax + 0x40], dx
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
or dword [ecx + eax + 0x14], 4
mov ecx, eax
call fcn.00415650
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x1b8]
call fcn.004153f0
mov byte [ebp - 4], 0x1d
cmp dword [eax + 0x14], 8
jb 0x451d92
mov eax, dword [eax]
mov esi, dword [ebp - 0xe8]
push eax
lea ecx, [esi + 0x4c]
call fcn.0040d560
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x1c
call fcn.00407420
push edi
call fcn.0046f3d1
add esp, 4
lea ecx, [ebp - 0x150]
mov byte [ebp - 4], 0x1e
call fcn.00415410
mov byte [ebp - 4], 0x1f
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.0
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 0x20
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.005b72e0
add esp, 4
mov byte [ebp - 4], 0x1b
lea eax, [ebp - 0xe4]
push eax
push 0x20119
push 0
push str.SOFTWAREIntelInfinst
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x451f3b
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0xdc], eax
lea eax, [ebp - 0xdc]
push eax
push 0
push 0
push 0
push str.version
push dword [ebp - 0xe4]
call edi
test eax, eax
jne 0x451e99
mov eax, dword [ebp - 0xdc]
xor ecx, ecx
add eax, 0xa
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046f3d6
mov ecx, dword [ebp - 0xdc]
add ecx, 0xa
mov dword [ebp - 0xd8], eax
push ecx
push 0
push eax
call fcn.005ba0f0
add esp, 0x10
lea eax, [ebp - 0xdc]
push eax
push dword [ebp - 0xd8]
push 0
push 0
push str.version
jmp 0x451f07
lea eax, [ebp - 0xdc]
push eax
push 0
push 0
push 0
push str.infver
push dword [ebp - 0xe4]
call edi
test eax, eax
jne 0x451f2f
mov eax, dword [ebp - 0xdc]
xor ecx, ecx
add eax, 0xa
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0046f3d6
mov ecx, dword [ebp - 0xdc]
add ecx, 0xa
mov dword [ebp - 0xd8], eax
push ecx
push 0
push eax
call fcn.005ba0f0
add esp, 0x10
lea eax, [ebp - 0xdc]
push eax
push dword [ebp - 0xd8]
push 0
push 0
push str.infver
push dword [ebp - 0xe4]
call edi
test eax, eax
jne 0x451f21
push dword [ebp - 0xd8]
lea ecx, [esi + 0x50]
call fcn.0040d560
push dword [ebp - 0xd8]
call fcn.0046f3d1
add esp, 4
push dword [ebp - 0xe4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 3
call fcn.00407420
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.00407420
lea ecx, [ebp - 0xd4]
mov dword [ebp - 4], 0xffffffff
call fcn.004141f0
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005b5208
mov esp, ebp
pop ebp
ret 4