Function at 0x140040910
Capabilities:
Get cpu information
Get system information on windows
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xb0
movaps xmmword [rsp + 0xa0], xmm6
xorps xmm0, xmm0
movups xmmword [rbp - 0x59], xmm0
xor r12d, r12d
xor r14d, r14d
movdqu xmmword [rbp - 0x49], xmm0
xor edi, edi
mov qword [rbp - 0x39], rdi
movdqu xmmword [rbp - 0x31], xmm0
mov qword [rbp - 0x21], rdi
xor eax, eax
xor ecx, ecx
cpuid
mov r15d, eax
mov dword [rbp - 0x55], ebx
mov dword [rbp - 0x51], ecx
mov dword [rbp - 0x4d], edx
xor esi, esi
test eax, eax
js 0x1400409b8
mov r9, qword [rbp - 0x41]
nop dword [rax]
mov eax, esi
xor ecx, ecx
cpuid
mov dword [rbp - 0x59], eax
mov dword [rbp - 0x55], ebx
mov dword [rbp - 0x51], ecx
mov dword [rbp - 0x4d], edx
cmp r9, rdi
je 0x140040999
movups xmm0, xmmword [rbp - 0x59]
movups xmmword [r9], xmm0
add r9, 0x10
mov qword [rbp - 0x41], r9
jmp 0x1400409b1
lea r8, [rbp - 0x59]
mov rdx, r9
lea rcx, [rbp - 0x49]
call fcn.1400416c0
mov rdi, qword [rbp - 0x39]
mov r9, qword [rbp - 0x41]
inc esi
cmp esi, r15d
jle 0x140040970
mov eax, 1
xor ecx, ecx
cpuid
mov esi, ecx
mov dword [rbp - 0x59], eax
mov dword [rbp - 0x55], ebx
test dl, 1
seta byte [0x14024da30]
test edx, 0x800000
seta byte [0x14024da31]
test edx, 0x2000000
seta byte [0x14024da32]
test edx, 0x4000000
seta byte [0x14024da33]
test edx, 0x10000000
seta byte [0x14024da38]
test cl, 1
seta byte [0x14024da34]
test ecx, 0x200
seta byte [0x14024da35]
test ecx, 0x80000
seta byte [0x14024da36]
test ecx, 0x100000
seta byte [0x14024da37]
test ecx, 0x2000000
seta byte [0x14024da39]
call fcn.140041120
test al, al
je 0x140040a5b
test esi, 0x10000000
seta byte [0x14024da3a]
lea rcx, [rbp - 0x19]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, word [rbp + 0x13]
mov qword [0x14024da68], rax
movzx eax, word [rbp + 0x15]
mov qword [0x14024da70], rax
mov rsi, qword [rbp - 0x49]
cmp r15d, 1
jl 0x140040a89
mov r12d, dword [rsi + 0x18]
cmp r15d, 7
jl 0x140040a93
mov r14d, dword [rsi + 0x74]
call fcn.140041120
test al, al
je 0x140040b00
mov eax, r14d
shr eax, 5
and al, 1
mov byte [0x14024da3b], al
mov eax, r14d
shr eax, 0x10
and al, 1
mov byte [0x14024da3c], al
mov eax, r14d
shr eax, 0x1a
and al, 1
mov byte [0x14024da3d], al
mov eax, r14d
shr eax, 0x1b
and al, 1
mov byte [0x14024da3e], al
mov eax, r14d
shr eax, 0x1c
and al, 1
mov byte [0x14024da3f], al
shr r14d, 0x1d
and r14b, 1
mov byte [0x14024da40], r14b
shr r12d, 0xc
and r12b, 1
mov byte [0x14024da41], r12b
mov dword [rbp + 0x67], 0
lea rdx, [rbp + 0x67]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetLogicalProcessorInformation]
mov ebx, dword [rbp + 0x67]
shr rbx, 5
mov eax, 0x20
mul rbx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140145a74
mov r14, rax
lea rdx, [rbp + 0x67]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetLogicalProcessorInformation]
cmp eax, 1
jne 0x140040c4a
test rbx, rbx
je 0x140040b93
lea rdx, [r14 + 0x14]
movzx ecx, byte [rdx - 4]
sub ecx, 1
je 0x140040b80
sub ecx, 1
je 0x140040b75
cmp ecx, 1
jne 0x140040b89
mov eax, dword [rdx]
mov qword [0x14024da58], rax
jmp 0x140040b89
mov eax, dword [rdx]
mov qword [0x14024da50], rax
jmp 0x140040b89
mov eax, dword [rdx]
mov qword [0x14024da48], rax
add rdx, 0x20
sub rbx, 1
jne 0x140040b57
xorps xmm6, xmm6
mov dword [rbp + 0x7f], 4
mov dword [rbp + 0x77], 4
mov dword [rbp + 0x6f], 0x104
lea rax, [rbp - 0x59]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
lea rdx, str.HARDWAREDESCRIPTIONSystemCentralProcessor0
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140040c14
lea rax, [rbp + 0x77]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x6f]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x7f]
xor r8d, r8d
lea rdx, str.MHz
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [rbp + 0x6f]
xorps xmm6, xmm6
cvtsi2sd xmm6, rax
mov rcx, qword [rbp - 0x59]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor ecx, ecx
movsd xmm0, qword [0x1401c0e88]
comisd xmm6, xmm0
jb 0x140040c3b
subsd xmm6, xmm0
comisd xmm6, xmm0
jae 0x140040c3b
movabs rax, 0x8000000000000000
mov rcx, rax
cvttsd2si rax, xmm6
add rax, rcx
mov qword [0x14024da60], rax
mov rcx, r14
call fcn.140145620
nop
test rsi, rsi
je 0x140040c8b
sub rdi, rsi
and rdi, 0xfffffffffffffff0
mov rax, rsi
cmp rdi, 0x1000
jb 0x140040c80
add rdi, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040ca5
mov rdx, rdi
mov rcx, rsi
call fcn.140145620
movaps xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14017261c
int3