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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x288
mov r12, rdx
lea rdi, [rsp + 0x53]
mov rbp, rcx
call sym.sigar_cpu_core_rollup
mov rcx, r12
mov r13d, eax
call sym.sigar_cpu_info_list_create
lea r8, [rsp + 0x40]
lea rdx, str.HARDWAREDESCRIPTIONSystemCentralProcessor
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x3c], 0
mov rsi, qword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
call rsi
xor edx, edx
mov rcx, qword [rsp + 0x40]
mov r9d, 0x105
mov r8, rdi
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
test eax, eax
mov ebx, eax
mov rcx, qword [rsp + 0x40]
mov r15, qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x46080f
lea r8, [rsp + 0x48]
mov rdx, rdi
call rsi
test eax, eax
mov ebx, eax
je 0x46081f
mov rcx, qword [rsp + 0x40]
call r15
test ebx, ebx
je 0x4609b8
jmp 0x460a18
lea rsi, [rsp + 0x3c]
lea rbx, [rsp + 0x158]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x3c], pe_nt_image_headers64
lea rdx, str.VendorIdentifier
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0x48]
mov r14, qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
call r14
test eax, eax
jne 0x460871
lea rdx, str.GenuineIntel
mov rcx, rbx
call sym.strcmp
test eax, eax
jne 0x460880
mov r8d, pe_nt_image_headers64
lea rdx, str.Intel
jmp 0x4608a0
lea rdx, str.AuthenticAMD
mov rcx, rbx
call sym.strcmp
test eax, eax
jne 0x4608b0
lea rdx, [0x0048959a]
mov r8d, pe_nt_image_headers64
mov rcx, rbx
call sym.strncpy
mov byte [rsp + 0x1d7], 0
lea rdi, [rbx + 0x80]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x3c], pe_nt_image_headers64
mov qword [rsp + 0x28], rsi
lea rdx, str.ProcessorNameString
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x48]
call r14
test eax, eax
je 0x46092c
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x3c], pe_nt_image_headers64
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
lea rdx, str.Identifier
mov rcx, qword [rsp + 0x48]
call r14
test eax, eax
je 0x460937
lea rdx, [0x004895bd]
mov r8d, pe_nt_image_headers64
mov rcx, rdi
call sym.strncpy
mov byte [rsp + 0x257], 0
jmp 0x460937
mov rdx, rbx
mov rcx, rbp
call sym.sigar_cpu_model_adjust
add rbx, 0x100
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x3c], 4
mov qword [rsp + 0x28], rsi
lea rdx, str.MHz
mov qword [rsp + 0x20], rbx
mov rcx, qword [rsp + 0x48]
call r14
test eax, eax
je 0x460974
mov dword [rsp + 0x258], 0xffffffff
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x268], 0xffffffffffffffff
call r15
mov rcx, qword [rsp + 0x48]
call r15
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x688]
cmp eax, ecx
mov dword [rsp + 0x274], eax
mov dword [rsp + 0x278], ecx
jb 0x4609af
xor edx, edx
div ecx
mov dword [rsp + 0x270], eax
xor ebx, ebx
lea r14, [rsp + 0x158]
xor r15d, r15d
cmp dword [rbp + 0x30], r15d
jbe 0x460a18
mov eax, dword [r12 + 4]
cmp dword [r12], eax
jb 0x4609dc
mov rcx, r12
call sym.sigar_cpu_info_list_grow
test r13d, r13d
je 0x4609ef
mov eax, r15d
cdq
idiv dword [rbp + 0x688]
test edx, edx
jne 0x460a13
mov eax, dword [r12]
mov ecx, 0x4a
mov rsi, r14
lea edx, [rax + 1]
imul rax, rax, 0x128
add rax, qword [r12 + 8]
mov dword [r12], edx
mov rdi, rax
rep movsd dword [rdi], dword [rsi]
inc r15d
jmp 0x4609c3
mov eax, ebx
add rsp, 0x288
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret