Function at 0x14001549f
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, 0x1a8
cmp qword [rcx + 0x80], 0
jne 0x140015b05
mov r14d, edx
mov r15, rcx
xorps xmm0, xmm0
lea rcx, [rsp + 0x170]
movaps xmmword [rcx + 0x20], xmm0
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call qword [sym.imp.kernel32.dll_GetSystemInfo]
mov eax, 0x80000000
xor ecx, ecx
mov r8, rbx
cpuid
xchg rbx, r8
cmp eax, 0x80000003
mov byte [rsp + 0x27], r14b
mov qword [rsp + 0x58], r15
jbe 0x1400155ab
mov edi, eax
mov ecx, 4
mov edx, 0x50
call fcn.140004b92
test rax, rax
je 0x140015b19
mov r8, rax
lea rax, [rsp + 0x28]
mov qword [rax], 5
mov qword [rax + 8], r8
mov eax, 0x80000000
xor esi, esi
xor r12d, r12d
mov qword [rsp + 0x38], rsi
test r12b, 1
jne 0x1400155c5
cmp eax, edi
ja 0x1400155c5
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 rsi, qword [rsp + 0x28]
jne 0x140015587
lea rcx, [rsp + 0x28]
mov rdx, rsi
call fcn.14001445a
mov r8, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
shl rsi, 4
mov dword [r8 + rsi], r15d
mov dword [r8 + rsi + 4], ebx
mov dword [r8 + rsi + 8], ebp
mov dword [r8 + rsi + 0xc], r14d
mov rsi, qword [rsp + 0x38]
inc rsi
mov eax, r13d
jmp 0x14001553d
and qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 1
and qword [rsp + 0x50], 0
jmp 0x140015729
xor r12d, r12d
mov ecx, 0x30
xor edx, edx
call fcn.140004cdd
lea rbx, [rsp + 0xd8]
mov qword [rbx], rax
mov qword [rbx + 8], rdx
and qword [rbx + 0x10], 0
mov rdi, qword [rsp + 0x30]
shl rsi, 4
add rsi, rdi
mov eax, 2
mov r14d, 5
mov r15, rdi
test r12b, 1
je 0x140015617
test r14, r14
je 0x140015678
cmp r15, rsi
je 0x140015678
dec r14
jmp 0x14001563b
cmp r14, rax
jbe 0x140015678
mov rcx, rsi
sub rcx, r15
shr rcx, 4
cmp rcx, rax
jbe 0x140015678
mov rcx, rax
not rcx
add r14, rcx
shl rax, 4
add r15, rax
lea r13, [r15 + 0x10]
mov edx, dword [r15]
mov rcx, rbx
call fcn.140015b1b
mov edx, dword [r15 + 4]
mov rcx, rbx
call fcn.140015b1b
mov edx, dword [r15 + 8]
mov rcx, rbx
call fcn.140015b1b
mov edx, dword [r15 + 0xc]
mov rcx, rbx
call fcn.140015b1b
mov r12b, 1
mov r15, r13
xor eax, eax
jmp 0x140015602
mov rsi, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xe8]
xor r8d, r8d
mov r14b, byte [rsp + 0x27]
mov r15, qword [rsp + 0x58]
cmp rax, r8
je 0x1400156a6
cmp byte [rsi + r8], 0
je 0x1400156ab
inc r8
jmp 0x140015695
mov r8, rax
jmp 0x1400156b4
cmp rax, r8
jb 0x140015b19
lea rbx, [rsp + 0x120]
mov rcx, rbx
mov rdx, rsi
call fcn.140005be3
cmp qword [rbx], 0
je 0x1400156e4
and qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 1
and qword [rsp + 0x50], 0
jmp 0x1400156fe
mov rdx, qword [rsp + 0x128]
mov r8, qword [rsp + 0x130]
lea rcx, [rsp + 0x40]
call fcn.140004f04
mov rcx, qword [rsp + 0xd8]
mov rdx, rsi
call fcn.140004cc5
mov r8, qword [rsp + 0x28]
test r8, r8
je 0x140015729
shl r8, 4
mov edx, 4
mov rcx, rdi
call fcn.14000101a
lea r12, [r15 + 0x70]
xor edi, edi
xor ecx, ecx
xor eax, eax
mov rsi, rbx
cpuid
xchg rbx, rsi
mov ebx, edx
mov ebp, ecx
mov ecx, 0xc
xor edx, edx
call fcn.140004cdd
lea r13, [rsp + 0x28]
mov qword [r13], rax
mov qword [r13 + 8], rdx
and qword [r13 + 0x10], 0
mov rcx, r13
mov edx, esi
call fcn.140015b1b
mov rcx, r13
mov edx, ebx
call fcn.140015b1b
mov rcx, r13
mov edx, ebp
call fcn.140015b1b
mov rsi, qword [r13 + 8]
mov rax, qword [r13 + 0x10]
cmp rax, rdi
je 0x140015793
cmp byte [rsi + rdi], 0
je 0x140015798
inc rdi
jmp 0x140015783
mov rdi, rax
jmp 0x1400157a1
cmp rax, rdi
jb 0x140015b19
lea rbx, [rsp + 0x120]
mov rcx, rbx
mov rdx, rsi
mov r8, rdi
call fcn.140005be3
cmp qword [rbx], 0
je 0x1400157e3
movzx eax, word [rsp + 0x170]
cmp rax, 0xe
ja 0x1400157f5
lea rcx, [0x1400190f8]
mov r8, qword [rcx + rax*8]
lea rcx, [0x140019170]
mov rdx, qword [rcx + rax*8]
jmp 0x140015802
mov rdx, qword [rsp + 0x128]
mov r8, qword [rsp + 0x130]
jmp 0x140015802
lea rdx, [0x140018fe9]
mov r8d, 7
lea rcx, [rsp + 0xd8]
call fcn.140004f04
mov qword [rsp + 0xa0], r12
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x28]
mov rdx, rsi
call fcn.140004cc5
mov esi, dword [rsp + 0x190]
test r14b, r14b
je 0x1400158a3
lea rdi, [rsp + 0xb8]
mov rcx, rdi
mov rdx, rsi
call fcn.140015b60
mov rax, qword [rdi + 8]
mov qword [rsp + 0x60], rax
mov r12, qword [rdi + 0x10]
jmp 0x1400158cd
mov rcx, rsi
mov dl, 1
call fcn.1400142b1
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rsi
mov r12, rsi
inc rsi
imul rdx, rsi, 0x70
mov ecx, 8
call fcn.140004b92
test rax, rax
je 0x140015b19
mov r15, rax
lea rax, [rsp + 0x78]
mov qword [rax], rsi
mov qword [rax + 8], r15
and qword [rax + 0x10], 0
shl r12, 3
xor ebx, ebx
lea r13, [rsp + 0xd8]
mov r14d, 1
test r12, r12
je 0x140015a82
mov qword [rsp + 0xd0], r14
lea rax, [0x140019000]
mov qword [rsp + 0xd8], rax
mov eax, 1
mov qword [rsp + 0xe0], rax
and qword [rsp + 0xf8], 0
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0x28], rcx
lea rcx, [0x140005926]
mov qword [rsp + 0x30], rcx
lea rsi, [rsp + 0x28]
mov qword [rsp + 0xe8], rsi
mov qword [rsp + 0xf0], rax
lea rcx, [rsp + 0x40]
mov rdx, r13
call fcn.140010b8d
mov rcx, rsi
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0xb0]
call fcn.140004f4b
mov rcx, r13
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0xa8]
call fcn.140004f4b
mov rax, qword [rsp + 0x60]
mov rbp, qword [rax + r14*8 - 8]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x130], rax
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x120], xmm0
mov rax, qword [rsp + 0x38]
lea rcx, [rsp + 0x138]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rcx], xmm0
mov rax, qword [rsp + 0xe8]
mov qword [rcx + 0x28], rax
movups xmm0, xmmword [rsp + 0xd8]
movups xmmword [rcx + 0x18], xmm0
mov ecx, 9
mov rdi, r13
lea rsi, [rsp + 0x120]
rep movsq qword [rdi], qword [rsi]
cmp rbx, qword [rsp + 0x78]
jne 0x140015a36
lea rcx, [rsp + 0x78]
mov rdx, rbx
call fcn.1400143b4
mov r15, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x88]
imul rax, rbx, 0x70
lea rdi, [r15 + rax]
mov ecx, 9
mov rsi, r13
rep movsq qword [rdi], qword [rsi]
movabs rcx, 0x8000000000000000
mov qword [r15 + rax + 0x48], rcx
mov qword [r15 + rax + 0x60], rbp
and dword [r15 + rax + 0x68], 0
mov rbx, qword [rsp + 0x88]
inc rbx
mov qword [rsp + 0x88], rbx
inc r14
add r12, 0xfffffffffffffff8
jmp 0x14001590f
mov rcx, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xc0]
call fcn.140014307
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x68]
call fcn.140004cc5
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x70]
call fcn.140004cc5
mov rdi, qword [rsp + 0x58]
mov rsi, qword [rdi + 0x78]
mov rdx, qword [rdi + 0x80]
mov rcx, rsi
call fcn.1400145a1
mov rcx, qword [rdi + 0x70]
mov rdx, rsi
call fcn.1400145f7
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0xa0]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rcx], xmm0
mov al, byte [rsp + 0x27]
mov byte [rdi + 0x88], al
add rsp, 0x1a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2