Function at 0x140097932
Capabilities:
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x188
cmp qword [rcx + 0x80], 0
jne 0x140097f21
mov r15d, edx
mov rdi, rcx
xorps xmm0, xmm0
lea rcx, [rsp + 0x150]
movaps xmmword [rcx + 0x20], xmm0
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call sub.kernel32.dll_GetSystemInfo
mov eax, 0x80000000
xor ecx, ecx
mov r8, rbx
cpuid
xchg rbx, r8
cmp eax, 0x80000003
mov byte [rsp + 0x27], r15b
mov qword [rsp + 0x58], rdi
jbe 0x140097a3d
mov esi, eax
mov ecx, 4
mov edx, 0x50
call fcn.14000d2db
test rax, rax
je 0x140097f42
mov r8, rax
lea rax, [rsp + 0x28]
mov qword [rax], 5
mov qword [rax + 8], r8
mov eax, 0x80000000
xor edi, edi
xor r12d, r12d
mov qword [rsp + 0x38], rdi
test r12b, 1
jne 0x140097a57
cmp eax, esi
ja 0x140097a57
setae r12b
mov r13d, eax
adc r13d, 0
xor ecx, ecx
mov rbx, rbx
cpuid
xchg rbx, rbx
mov ebp, ecx
mov r14d, edx
mov r15d, eax
cmp rdi, qword [rsp + 0x28]
jne 0x140097a19
lea rcx, [rsp + 0x28]
mov rdx, rdi
call fcn.1400964fa
mov r8, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
shl rdi, 4
mov dword [r8 + rdi], r15d
mov dword [r8 + rdi + 4], ebx
mov dword [r8 + rdi + 8], ebp
mov dword [r8 + rdi + 0xc], r14d
mov rdi, qword [rsp + 0x38]
inc rdi
mov eax, r13d
jmp 0x1400979cf
and qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 1
and qword [rsp + 0x50], 0
jmp 0x140097bb4
lea rbx, [rsp + 0xc0]
mov edx, 0x30
mov rcx, rbx
call fcn.1400978fe
mov rsi, qword [rsp + 0x30]
shl rdi, 4
add rdi, rsi
mov eax, 2
mov r14d, 5
xor ecx, ecx
mov r15, rsi
test cl, 1
je 0x140097a9c
test r14, r14
je 0x140097afc
cmp r15, rdi
je 0x140097afc
dec r14
jmp 0x140097ac0
cmp r14, rax
jbe 0x140097afc
mov rcx, rdi
sub rcx, r15
shr rcx, 4
cmp rcx, rax
jbe 0x140097afc
mov rcx, rax
not rcx
add r14, rcx
shl rax, 4
add r15, rax
lea r12, [r15 + 0x10]
mov edx, dword [r15]
mov rcx, rbx
call fcn.140097f52
mov edx, dword [r15 + 4]
mov rcx, rbx
call fcn.140097f52
mov edx, dword [r15 + 8]
mov rcx, rbx
call fcn.140097f52
mov edx, dword [r15 + 0xc]
mov rcx, rbx
call fcn.140097f52
mov cl, 1
mov r15, r12
xor eax, eax
jmp 0x140097a88
mov rdi, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0xd0]
xor r8d, r8d
mov r15b, byte [rsp + 0x27]
cmp rdx, r8
je 0x140097b25
cmp byte [rdi + r8], 0
je 0x140097b28
inc r8
jmp 0x140097b14
mov r8, rdx
lea r9, [0x1401041a8]
mov rcx, rdi
call fcn.140097f97
mov r8, rdx
lea rbx, [rsp + 0x108]
mov rcx, rbx
mov rdx, rax
call fcn.14000f5e0
cmp qword [rbx], 0
je 0x140097b6a
and qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 1
and qword [rsp + 0x50], 0
jmp 0x140097b84
mov rdx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x118]
lea rcx, [rsp + 0x40]
call fcn.140092269
mov rcx, qword [rsp + 0xc0]
mov rdx, rdi
call fcn.140092294
mov r8, qword [rsp + 0x28]
test r8, r8
je 0x140097baf
shl r8, 4
mov edx, 4
mov rcx, rsi
call fcn.1400027ba
mov rdi, qword [rsp + 0x58]
lea rax, [rdi + 0x70]
mov qword [rsp + 0x98], rax
xor edi, edi
xor eax, eax
xor ecx, ecx
mov rsi, rbx
cpuid
xchg rbx, rsi
mov ebx, edx
mov ebp, ecx
lea r14, [rsp + 0x28]
mov edx, 0xc
mov rcx, r14
call fcn.1400978fe
mov rcx, r14
mov edx, esi
call fcn.140097f52
mov rcx, r14
mov edx, ebx
call fcn.140097f52
mov rcx, r14
mov edx, ebp
call fcn.140097f52
mov rsi, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
cmp rdx, rdi
je 0x140097c1a
cmp byte [rsi + rdi], 0
je 0x140097c1d
inc rdi
jmp 0x140097c0a
mov rdi, rdx
lea r9, [0x1401041c0]
mov rcx, rsi
mov r8, rdi
call fcn.140097f97
mov r8, rdx
lea rdi, [rsp + 0x108]
mov rcx, rdi
mov rdx, rax
call fcn.14000f5e0
cmp qword [rdi], 0
je 0x140097c74
movzx eax, word [rsp + 0x150]
cmp rax, 0xe
ja 0x140097c86
lea rcx, [0x14012cda0]
mov r8, qword [rcx + rax*8]
movzx eax, ax
lea rcx, case.0x14006256f.70
mov rdx, qword [rcx + rax*8]
jmp 0x140097c93
mov rdx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x118]
jmp 0x140097c93
lea rdx, case.0x14006256f.81
mov r8d, 7
lea rcx, [rsp + 0xc0]
call fcn.140092269
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x28]
mov rdx, rsi
call fcn.140092294
mov esi, dword [rsp + 0x170]
lea rcx, [rsp + 0x28]
mov rdx, rsi
test r15b, r15b
je 0x140097d19
call fcn.140097fb7
jmp 0x140097d1e
call fcn.14009623a
inc rsi
imul rdi, rsi, 0x70
mov ecx, 8
mov rdx, rdi
call fcn.14000d2db
test rax, rax
je 0x140097f35
mov r14, rax
lea rax, [rsp + 0x70]
mov qword [rax], rsi
mov qword [rax + 8], r14
and qword [rax + 0x10], 0
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0xa0], rax
mov r15, qword [rsp + 0x38]
shl r15, 3
xor ebp, ebp
lea r12, [rsp + 0xc0]
mov ebx, 1
test r15, r15
je 0x140097ea4
mov qword [rsp + 0xb8], rbx
lea rax, str.CPU
mov qword [rsp + 0xc0], rax
mov eax, 1
mov qword [rsp + 0xc8], rax
and qword [rsp + 0xe0], 0
lea rcx, [rsp + 0xb8]
mov qword [rsp + 0x40], rcx
lea rcx, [fcn.14000e250]
mov qword [rsp + 0x48], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], rax
lea rsi, [rsp + 0x108]
mov rcx, rsi
mov rdx, r12
call fcn.140092222
lea rcx, [rsp + 0x120]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0xb0]
call fcn.14000c370
lea rcx, [rsp + 0x138]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0xa8]
call fcn.14000c370
mov rax, qword [rsp + 0xa0]
mov r13, qword [rax + rbx*8 - 8]
mov ecx, 9
mov rdi, r12
rep movsq qword [rdi], qword [rsi]
cmp rbp, qword [rsp + 0x70]
jne 0x140097e58
lea rcx, [rsp + 0x70]
mov rdx, rbp
call fcn.140096443
mov r14, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
imul rax, rbp, 0x70
lea rdi, [r14 + rax]
mov ecx, 9
mov rsi, r12
rep movsq qword [rdi], qword [rsi]
movabs rcx, 0x8000000000000000
mov qword [r14 + rax + 0x48], rcx
mov qword [r14 + rax + 0x60], r13
and dword [r14 + rax + 0x68], 0
mov rbp, qword [rsp + 0x80]
inc rbp
mov qword [rsp + 0x80], rbp
inc rbx
add r15, 0xfffffffffffffff8
jmp 0x140097d74
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
call fcn.1400735ca
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x60]
call fcn.140092294
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x68]
call fcn.140092294
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rdi + 0x78]
mov rdx, qword [rdi + 0x80]
mov rcx, rsi
call fcn.1400965a9
mov rcx, qword [rdi + 0x70]
mov rdx, rsi
call fcn.1400965ff
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x98]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rcx], xmm0
mov al, byte [rsp + 0x27]
mov byte [rdi + 0x88], al
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
mov rdx, rdi
call fcn.1400ad950
mov ecx, 4
mov edx, 0x50
call fcn.1400ad950
int3