Function at 0x558ad2
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 0x55924a
mov r14d, 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, 0x80000004
mov byte [rsp + 0x2f], r14b
mov qword [rsp + 0xe8], rdi
jb 0x558c94
mov esi, eax
mov ecx, 0x50
mov edx, 4
call fcn.00414fe0
test rax, rax
je 0x55925e
mov r8, rax
lea rax, [rsp + 0x38]
mov qword [rax], 5
mov qword [rax + 8], r8
mov qword [rax + 0x10], 0
mov ebp, 0x80000000
xor edi, edi
mov r13d, 0x80000000
cmp ebp, esi
adc r13d, 0
xor ecx, ecx
mov eax, ebp
mov rbx, rbx
cpuid
xchg rbx, rbx
mov r15d, ecx
mov r14d, edx
mov r12d, eax
cmp rdi, qword [rsp + 0x38]
jne 0x558bb6
lea rcx, [rsp + 0x38]
mov rdx, rdi
call fcn.00556b48
mov r8, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
shl rdi, 4
mov dword [r8 + rdi], r12d
mov dword [r8 + rdi + 4], ebx
mov dword [r8 + rdi + 8], r15d
mov dword [r8 + rdi + 0xc], r14d
mov rdi, qword [rsp + 0x48]
inc rdi
mov qword [rsp + 0x48], rdi
cmp ebp, esi
jae 0x558be6
mov ebp, r13d
cmp r13d, esi
jbe 0x558b7d
mov ecx, 0x30
call fcn.004d0988
lea rsi, [rsp + 0x50]
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 0
mov r14, qword [rsp + 0x40]
shl rdi, 4
add rdi, r14
mov ebx, 5
mov eax, 2
xor ecx, ecx
test cl, 1
je 0x558c34
test rbx, rbx
je 0x558cad
cmp r14, rdi
je 0x558cad
dec rbx
jmp 0x558c58
cmp rbx, rax
jbe 0x558cad
mov rcx, rdi
sub rcx, r14
shr rcx, 4
cmp rcx, rax
jbe 0x558cad
mov rcx, rax
not rcx
add rbx, rcx
shl rax, 4
add r14, rax
lea r15, [r14 + 0x10]
mov edx, dword [r14]
mov rcx, rsi
call fcn.00559283
mov edx, dword [r14 + 4]
mov rcx, rsi
call fcn.00559283
mov edx, dword [r14 + 8]
mov rcx, rsi
call fcn.00559283
mov edx, dword [r14 + 0xc]
mov rcx, rsi
call fcn.00559283
mov cl, 1
xor eax, eax
mov r14, r15
jmp 0x558c1c
mov eax, 1
mov qword [rsp + 0x30], rax
xor r12d, r12d
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x558dbb
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
test r8, r8
mov r14b, byte [rsp + 0x2f]
je 0x558cdf
xor ecx, ecx
cmp byte [rdx + rcx], 0
je 0x558cd3
inc rcx
cmp r8, rcx
jne 0x558cc3
jmp 0x558cdf
cmp r8, rcx
jb 0x55926f
mov r8, rcx
lea rsi, [rsp + 0x90]
mov rcx, rsi
call fcn.00422ec0
cmp qword [rsi], 0
je 0x558d0b
mov eax, 1
mov qword [rsp + 0x30], rax
xor r12d, r12d
xor eax, eax
mov qword [rsp + 0x68], rax
jmp 0x558d62
mov rsi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
mov edi, ebx
not edi
mov rcx, rbx
call fcn.004d0988
mov r12, rax
mov rax, rbx
and rax, 0xfffffffffffffffe
mov ecx, ebx
and ecx, 1
neg rcx
and edi, 1
imul rdi, rax
mov qword [rsp + 0x68], rbx
or rbx, 1
and rbx, rcx
add rbx, rdi
mov qword [rsp + 0x30], rdx
mov rcx, rdx
mov rdx, rsi
mov r8, rbx
call sub.msvcrt.dll_memcpy
cmp qword [rsp + 0x50], 0
je 0x558d7d
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x558dbb
mov ecx, eax
and ecx, 0x10
mov rdx, rax
or rax, 0x10
imul rax, rcx
xor rcx, 0x10
and rdx, 0xffffffffffffffef
imul rdx, rcx
add rax, rdx
je 0x558dbb
mov r8, qword [rsp + 0x40]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
xor eax, eax
xor ecx, ecx
mov rsi, rbx
cpuid
xchg rbx, rsi
mov edi, edx
mov ebx, ecx
mov ecx, 0xc
call fcn.004d0988
lea r15, [rsp + 0x50]
mov qword [r15], rax
mov qword [r15 + 8], rdx
mov qword [r15 + 0x10], 0
mov rcx, r15
mov edx, esi
call fcn.00559283
mov rcx, r15
mov edx, edi
call fcn.00559283
mov rcx, r15
mov edx, ebx
call fcn.00559283
mov rdx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x558e50
xor ecx, ecx
xor r8d, r8d
cmp byte [rdx + rcx], 0
je 0x558e36
mov r9d, r8d
and r9d, 1
xor r8, 1
lea r8, [r8 + r9*2]
inc rcx
cmp rax, rcx
jne 0x558e19
cmp rax, r8
jae 0x558e53
lea r9, [0x005f0638]
mov rcx, r8
mov rdx, rax
mov r8, r9
jmp 0x55927c
xor r8d, r8d
lea rsi, [rsp + 0x90]
mov rcx, rsi
call fcn.00422ec0
cmp qword [rsi], 0
je 0x558e90
movsx rax, word [rsp + 0x150]
cmp rax, 0xe
ja 0x558eb8
lea rcx, [0x0062f6c0]
mov rbx, qword [rcx + rax*8]
lea rcx, [0x0062f738]
mov rsi, qword [rcx + rax*8]
jmp 0x558ec4
mov rsi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xa0]
mov edi, ebx
not edi
mov rcx, rbx
call fcn.004d0988
mov r13, rax
mov rax, rbx
and rax, 0xfffffffffffffffe
jmp 0x558ed8
lea rsi, [0x005f059a]
mov ebx, 7
mov edi, ebx
not edi
mov rcx, rbx
call fcn.004d0988
mov r13, rax
mov eax, ebx
and eax, 0x1e
mov ecx, ebx
and ecx, 1
neg rcx
and edi, 1
imul rdi, rax
mov r8, rbx
or r8, 1
and r8, rcx
add r8, rdi
mov qword [rsp + 0x70], rdx
mov rcx, rdx
mov rdx, rsi
call sub.msvcrt.dll_memcpy
cmp qword [rsp + 0x50], 0
je 0x558f1f
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x00677420]
xor edx, edx
call fcn.005ab9d4
mov qword [rsp + 0xf0], rbx
mov r15d, dword [rsp + 0x170]
test r14b, r14b
je 0x558f51
lea rdi, [rsp + 0xf8]
mov rcx, rdi
mov rdx, r15
call fcn.0055933c
mov rbx, qword [rdi + 8]
mov rsi, qword [rdi + 0x10]
jmp 0x558f79
mov rcx, r15
mov dl, 1
call fcn.0055630f
mov rbx, rdx
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], r15
mov rsi, r15
inc r15
mov rax, r15
and rax, 0xffffffffffffff8f
mov ecx, r15d
and ecx, 0x70
mov rdi, r15
or rdi, 0x70
imul rdi, rcx
xor rcx, 0x70
imul rcx, rax
add rdi, rcx
je 0x558fc3
mov edx, 8
mov rcx, rdi
call fcn.00414fe0
mov rbp, rax
test rax, rax
jne 0x558fc8
mov edx, 8
mov rcx, rdi
jmp 0x559268
mov ebp, 8
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x88], 0
test rsi, rsi
je 0x5591c4
mov qword [rsp + 0xd8], r13
mov qword [rsp + 0xe0], r12
shl rsi, 3
mov r13d, 1
xor r15d, r15d
lea rdi, [rsp + 0x90]
mov r14d, 1
mov qword [rsp + 0xc0], r14
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x50], rax
lea rax, [fcn.00428c20]
mov qword [rsp + 0x58], rax
lea rax, str.CPU
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0x90], 0
lea r12, [rsp + 0x50]
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xb8], r13
lea rcx, [rsp + 0x38]
mov rdx, rdi
call fcn.004179e0
mov rcx, r12
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0xf0]
call fcn.00418690
mov rcx, rdi
mov rdx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x68]
call fcn.00418690
mov r12, qword [rbx + r14*8 - 8]
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xd0], rax
movups xmm0, xmmword [rsp + 0x38]
movaps xmmword [rsp + 0xc0], xmm0
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x130], xmm0
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x110], xmm0
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x120], rax
cmp r15, qword [rsp + 0x78]
jne 0x55911f
lea rcx, [rsp + 0x78]
mov rdx, r15
call fcn.00556940
mov rbp, qword [rsp + 0x80]
mov r15, qword [rsp + 0x88]
imul rax, r15, 0x70
mov qword [rbp + rax + 8], 0
mov qword [rbp + rax + 0x18], r12
mov rcx, qword [rsp + 0xd0]
mov qword [rbp + rax + 0x30], rcx
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [rbp + rax + 0x20], xmm0
movaps xmm0, xmmword [rsp + 0x130]
movups xmmword [rbp + rax + 0x38], xmm0
mov rcx, qword [rsp + 0x140]
mov qword [rbp + rax + 0x48], rcx
movaps xmm0, xmmword [rsp + 0x110]
movups xmmword [rbp + rax + 0x50], xmm0
mov rcx, qword [rsp + 0x120]
mov qword [rbp + rax + 0x60], rcx
mov dword [rbp + rax + 0x68], 0
mov r15, qword [rsp + 0x88]
inc r15
mov qword [rsp + 0x88], r15
inc r14
add rsi, 0xfffffffffffffff8
jne 0x559015
mov rbx, qword [rsp + 0x100]
mov r14b, byte [rsp + 0x2f]
mov r12, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0xf8]
mov rdx, rbx
call fcn.00556560
test r12, r12
je 0x5591ec
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, qword [rsp + 0x30]
call fcn.005ab9d4
mov rbx, qword [rsp + 0xe8]
lea rdi, [rbx + 0x70]
test r13, r13
je 0x559210
mov rcx, qword [0x00677420]
xor edx, edx
mov r8, qword [rsp + 0x70]
call fcn.005ab9d4
mov rsi, qword [rbx + 0x78]
mov rdx, qword [rbx + 0x80]
mov rcx, rsi
call fcn.00556d50
mov rcx, qword [rbx + 0x70]
mov rdx, rsi
call fcn.00556e01
mov rax, qword [rsp + 0x88]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rdi], xmm0
mov byte [rbx + 0x88], r14b
add rsp, 0x188
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x50
mov edx, 4
call fcn.00417bf0
ud2
lea rax, [0x005f0620]
mov rdx, r8
mov r8, rax
call fcn.004292f0
ud2