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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4406f6
mov eax, dword fs:[0]
push eax
sub esp, 0x848
mov eax, dword [0x450398]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
lea eax, [ebp - 0x830]
push eax
push 0x20019
push 0
push str.HardwareDescriptionSystemCentralProcessor0
push 0x80000002
mov dword [0x452bb0], 1
mov dword [0x452bac], 5
mov dword [ebp - 0x83c], 0x100
call edi
test eax, eax
jne 0x407aab
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea ecx, [ebp - 0x83c]
push ecx
mov ecx, dword [ebp - 0x830]
lea edx, [ebp - 0x210]
push edx
lea eax, [ebp - 0x844]
push eax
push 0
push str.Identifier
push ecx
call esi
test eax, eax
je 0x4075a4
mov edx, dword [ebp - 0x830]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x407aab
mov eax, dword [ebp - 0x830]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ecx, ecx
mov word [ebp - 0x20a], cx
mov ecx, 0x446818
lea eax, [ebp - 0x210]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4075eb
test dx, dx
je 0x4075e7
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4075eb
add eax, 4
add ecx, 4
test dx, dx
jne 0x4075c5
xor eax, eax
jmp 0x4075f0
sbb eax, eax
sbb eax, 0xffffffff
xor edx, edx
test eax, eax
lea eax, [ebp - 0x830]
push eax
setne dl
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push 0x80000002
inc edx
mov dword [0x452bb0], edx
call edi
test eax, eax
jne 0x407aab
lea ecx, [ebp - 0x83c]
push ecx
mov ecx, dword [ebp - 0x830]
lea edx, [ebp - 0x210]
push edx
lea eax, [ebp - 0x844]
push eax
push 0
push str.CurrentVersion
push ecx
call esi
test eax, eax
jne 0x407592
push 0x1fe
push eax
lea ecx, [ebp - 0x70e]
push ecx
mov word [ebp - 0x710], ax
call fcn.00429770
add esp, 0xc
lea edx, [ebp - 0x838]
push edx
mov ecx, 0x4498c4
mov dword [ebp - 0x848], 0x100
call fcn.00413b80
lea eax, [ebp - 0x848]
push eax
lea ecx, [ebp - 0x710]
push ecx
lea edx, [ebp - 0x850]
push edx
push 0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x830]
push str.ProductName
push eax
call esi
test eax, eax
jne 0x4076c5
lea edx, [ebp - 0x710]
lea edi, [ebp - 0x838]
call fcn.00413c90
xor ecx, ecx
push 0x1fe
push ecx
lea edx, [ebp - 0x50e]
push edx
mov word [ebp - 0x510], cx
call fcn.00429770
add esp, 0xc
lea eax, [ebp - 0x834]
push eax
mov ecx, 0x4498c4
mov dword [ebp - 0x84c], 0x100
call fcn.00413b80
lea ecx, [ebp - 0x84c]
push ecx
lea edx, [ebp - 0x510]
push edx
lea eax, [ebp - 0x854]
push eax
push 0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x830]
push str.CurrentBuild
push ecx
call esi
test eax, eax
jne 0x40773c
lea edx, [ebp - 0x510]
lea edi, [ebp - 0x834]
call fcn.00413c90
mov edx, dword [ebp - 0x830]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, 0x4468d0
lea eax, [ebp - 0x210]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40777a
test dx, dx
je 0x407776
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40777a
add eax, 4
add ecx, 4
test dx, dx
jne 0x407754
xor eax, eax
jmp 0x40777f
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x407792
mov dword [0x452bac], 1
jmp 0x4079d8
mov ecx, 0x4468d8
lea eax, [ebp - 0x210]
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4077c6
test dx, dx
je 0x4077c2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4077c6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4077a0
xor eax, eax
jmp 0x4077cb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4077de
mov dword [0x452bac], 2
jmp 0x4079d8
mov ecx, 0x4468e0
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407816
test dx, dx
je 0x407812
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407816
add eax, 4
add ecx, 4
test dx, dx
jne 0x4077f0
xor eax, eax
jmp 0x40781b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40782e
mov dword [0x452bac], 3
jmp 0x4079d8
mov ecx, 0x4468e8
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407866
test dx, dx
je 0x407862
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407866
add eax, 4
add ecx, 4
test dx, dx
jne 0x407840
xor eax, eax
jmp 0x40786b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40787e
mov dword [0x452bac], 4
jmp 0x4079d8
mov ecx, 0x4468f0
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4078b6
test dx, dx
je 0x4078b2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4078b6
add eax, 4
add ecx, 4
test dx, dx
jne 0x407890
xor eax, eax
jmp 0x4078bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4078ce
mov dword [0x452bac], 5
jmp 0x4079d8
mov ecx, 0x4468f8
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407906
test dx, dx
je 0x407902
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407906
add eax, 4
add ecx, 4
test dx, dx
jne 0x4078e0
xor eax, eax
jmp 0x40790b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40791e
mov dword [0x452bac], 6
jmp 0x4079d8
mov ecx, 0x446900
lea eax, [ebp - 0x210]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x407956
test dx, dx
je 0x407952
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x407956
add eax, 4
add ecx, 4
test dx, dx
jne 0x407930
xor eax, eax
jmp 0x40795b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4079a2
mov ecx, 0x446908
lea esi, [ebp - 0x838]
call fcn.00414050
cmp eax, 0xffffffff
je 0x407980
mov dword [0x452bac], 7
jmp 0x4079d8
mov eax, dword [ebp - 0x834]
push eax
mov dword [0x452bac], 8
call fcn.00428008
add esp, 4
cmp eax, 0x55f0
jl 0x4079d8
jmp 0x4079ce
lea ecx, [ebp - 0x210]
push ecx
call fcn.00428122
fstp dword [ebp - 0x840]
fld dword [ebp - 0x840]
add esp, 4
fcomp qword [str.333333]
fnstsw ax
test ah, 0x41
jne 0x407a95
mov dword [0x452bac], 9
push 0xff
lea edx, [ebp - 0x30f]
push 0
push edx
mov byte [ebp - 0x310], 0
call fcn.00429770
add esp, 0xc
lea eax, [ebp - 0x82c]
push eax
mov dword [ebp - 0x82c], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x407a44
movzx ecx, word [ebp - 0x716]
movzx edx, word [ebp - 0x718]
push ecx
push edx
lea eax, [ebp - 0x310]
push str._ld._ld
push eax
call fcn.00427a69
add esp, 0x10
push 0x451b98
lea edx, [ebp - 0x310]
call fcn.00414470
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x834]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407a6a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x838]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x407aab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x407aab
lea eax, [ebp - 0x834]
call fcn.00415c70
lea eax, [ebp - 0x838]
call fcn.00415c70
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.004267a3
mov esp, ebp
pop ebp
ret