Function at 0x1401048b0
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, 0x128
cmp qword [rcx + 0x80], 0
jne 0x1401050f2
mov r12d, edx
mov rdi, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
lea rcx, [rsp + 0xf0]
call sub.KERNEL32.dll_GetSystemInfo
movsx rax, word [rsp + 0xf0]
mov qword [rsp + 0x68], rax
mov eax, 0x80000000
xor ecx, ecx
mov r8, rbx
cpuid
xchg rbx, r8
cmp eax, 0x80000004
mov byte [rsp + 0x2f], r12b
mov qword [rsp + 0xd0], rdi
jb 0x140104ab8
mov esi, eax
movzx eax, byte [0x140188180]
xor edi, edi
mov edx, 0x50
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14010513a
mov r8, rax
mov qword [rsp + 0x38], 5
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0
mov ebp, 0x80000000
mov r13d, 0x80000000
nop dword [rax]
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 0x1401049b9
lea rcx, [rsp + 0x38]
mov rdx, rdi
call fcn.14004b5c0
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 0x1401049e9
mov ebp, r13d
cmp r13d, esi
jbe 0x140104980
movzx eax, byte [0x140188180]
mov edx, 0x30
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14010513a
mov rsi, rax
mov qword [rsp + 0x50], 0x30
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 0
cmp rdi, 3
jb 0x140104aca
mov rbx, qword [rsp + 0x40]
shl rdi, 4
add rdi, rbx
mov edx, dword [rbx + 0x20]
lea rsi, [rsp + 0x50]
mov rcx, rsi
call fcn.140105140
mov edx, dword [rbx + 0x24]
mov rcx, rsi
call fcn.140105140
mov edx, dword [rbx + 0x28]
mov rcx, rsi
call fcn.140105140
add rbx, 0x2c
xor r14d, r14d
movzx r12d, byte [rsp + 0x2f]
nop dword [rax + rax]
mov edx, dword [rbx + r14]
mov rcx, rsi
call fcn.140105140
cmp r14, 0x20
je 0x140104ad7
lea r15, [rbx + r14]
add r15, 4
cmp r15, rdi
je 0x140104ad7
mov edx, dword [r15]
mov rcx, rsi
call fcn.140105140
mov edx, dword [r15 + 4]
mov rcx, rsi
call fcn.140105140
mov edx, dword [r15 + 8]
mov rcx, rsi
call fcn.140105140
add r14, 0x10
jmp 0x140104a70
mov r15d, 1
xor eax, eax
mov qword [rsp + 0x30], rax
jmp 0x140104b6b
xor eax, eax
movzx r12d, byte [rsp + 0x2f]
mov r8, rax
jmp 0x140104b11
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x140104b01
xor r8d, r8d
nop dword [rax]
cmp byte [rsi + r8], 0
je 0x140104b08
inc r8
cmp rax, r8
jne 0x140104af0
jmp 0x140104b03
xor eax, eax
mov r8, rax
jmp 0x140104b11
cmp r8, rax
ja 0x14010513a
lea rcx, [rsp + 0x70]
mov rdx, rsi
call fcn.14003e6f0
cmp qword [rsp + 0x70], 0
je 0x140104d38
mov r15d, 1
xor eax, eax
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x50], 0
je 0x140104b50
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x38], 0
je 0x140104b6b
mov r8, qword [rsp + 0x40]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
xor eax, eax
xor ecx, ecx
mov rbp, rbx
cpuid
xchg rbx, rbp
mov esi, ecx
mov ebx, edx
movzx eax, byte [0x140188180]
mov edx, 0xc
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14010513a
mov qword [rsp + 0x50], 0xc
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 0
lea r14, [rsp + 0x50]
mov rcx, r14
mov edx, ebp
call fcn.140105140
mov rcx, r14
mov edx, ebx
call fcn.140105140
mov rcx, r14
mov edx, esi
call fcn.140105140
mov r13, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
test r8, r8
je 0x140104c0e
xor eax, eax
nop word cs:[rax + rax]
cmp byte [r13 + rax], 0
je 0x140104c02
inc rax
cmp r8, rax
jne 0x140104bf0
jmp 0x140104c0e
cmp rax, r8
mov r8, rax
ja 0x14010513a
lea rcx, [rsp + 0x70]
mov rdx, r13
call fcn.14003e6f0
cmp qword [rsp + 0x70], 0
mov qword [rsp + 0xb0], r15
je 0x140104c4e
mov rcx, qword [rsp + 0x68]
cmp cx, 0xe
ja 0x140104c88
lea rax, [0x14017dc18]
mov r15, qword [rax + rcx*8]
lea rax, [0x14017dc90]
mov rsi, qword [rax + rcx*8]
jmp 0x140104c95
mov rsi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x80]
test r15, r15
je 0x140105106
js 0x14010513a
movzx eax, byte [0x140188180]
xor ecx, ecx
mov rdx, r15
call fcn.1400f2120
mov rdi, rax
test rax, rax
jne 0x140104cb2
jmp 0x14010513a
lea rsi, [0x14017d83b]
mov r15d, 7
movzx eax, byte [0x140188180]
xor ecx, ecx
mov rdx, r15
call fcn.1400f2120
test rax, rax
je 0x14010513a
mov rdi, rax
mov rcx, rdi
mov rdx, rsi
mov r8, r15
call sub.msvcrt.dll_memcpy
cmp qword [rsp + 0x50], 0
je 0x140104cd9
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, r13
call sub.KERNEL32.dll_HeapFree
mov esi, dword [rsp + 0x110]
test r12b, r12b
mov qword [rsp + 0x68], rdi
je 0x140104d17
lea rcx, [rsp + 0xb8]
mov rdx, rsi
call fcn.140105200
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xa8], rax
mov r12, qword [rsp + 0xc8]
jmp 0x140104dab
test rsi, rsi
je 0x140104d83
lea rdx, [rsi*8]
mov ecx, 8
call fcn.1400f2120
test rax, rax
jne 0x140104d88
jmp 0x14010513a
mov rbx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x80]
mov rax, rcx
mov qword [rsp + 0x30], rcx
test rcx, rcx
je 0x140105110
js 0x14010513a
movzx eax, byte [0x140188180]
xor ecx, ecx
mov r14, qword [rsp + 0x30]
mov rdx, r14
call fcn.1400f2120
mov r15, rax
test rax, rax
jne 0x14010511b
jmp 0x14010513a
mov eax, 8
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rsi
mov r12, rsi
inc rsi
imul rdx, rsi, 0x70
movzx eax, byte [0x140188180]
xor ecx, ecx
call fcn.1400f2120
test rax, rax
je 0x14010513a
mov rbp, rax
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0
test r12, r12
je 0x140104f9c
shl r12, 3
mov r13d, 1
xor r14d, r14d
jmp 0x140104e71
imul rax, r14, 0x70
movups xmm0, xmmword [rsp + 0x50]
mov rcx, qword [rsp + 0x60]
mov qword [rbp + rax + 0x10], rcx
movups xmmword [rbp + rax], xmm0
mov qword [rbp + rax + 0x18], r15
mov qword [rbp + rax + 0x20], rbx
mov qword [rbp + rax + 0x28], r15
mov rcx, qword [rsp + 0x30]
mov qword [rbp + rax + 0x30], rcx
mov qword [rbp + rax + 0x38], rsi
mov qword [rbp + rax + 0x40], rcx
movabs rcx, 0x8000000000000000
mov qword [rbp + rax + 0x48], rcx
mov qword [rbp + rax + 0x60], rdi
mov dword [rbp + rax + 0x68], 0
mov r14, qword [rsp + 0x48]
inc r14
mov qword [rsp + 0x48], r14
inc r13
add r12, 0xfffffffffffffff8
je 0x140104f9c
mov qword [rsp + 0xd8], r13
lea rax, [rsp + 0xd8]
mov qword [rsp + 0xe0], rax
lea rax, [fcn.14003b3c0]
mov qword [rsp + 0xe8], rax
lea rax, [0x14017d850]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 1
mov qword [rsp + 0x90], 0
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x70]
call fcn.140034610
mov ebx, 1
test r15, r15
mov rdi, qword [rsp + 0x30]
je 0x140104f16
js 0x14010513a
movzx eax, byte [0x140188180]
xor ecx, ecx
mov rdx, r15
call fcn.1400f2120
mov rbx, rax
test rax, rax
je 0x14010513a
mov rcx, rbx
mov rdx, qword [rsp + 0x68]
mov r8, r15
call sub.msvcrt.dll_memcpy
test rdi, rdi
je 0x140104f50
js 0x14010513a
movzx eax, byte [0x140188180]
xor ecx, ecx
mov rdx, rdi
call fcn.1400f2120
mov rsi, rax
test rax, rax
jne 0x140104f55
jmp 0x14010513a
mov esi, 1
mov rcx, rsi
mov rdx, qword [rsp + 0xb0]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xa8]
mov rdi, qword [rax + r13*8 - 8]
cmp r14, qword [rsp + 0x38]
jne 0x140104e00
lea rcx, [rsp + 0x38]
mov rdx, r14
call fcn.14004b3a0
mov rbp, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
jmp 0x140104e00
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x78], rax
cmp qword [rsp + 0xb8], 0
je 0x140104fde
mov r8, qword [rsp + 0xc0]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x30], 0
movzx ebp, byte [rsp + 0x2f]
je 0x140105001
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, qword [rsp + 0xb0]
call sub.KERNEL32.dll_HeapFree
test r15, r15
je 0x140105019
mov rcx, qword [0x140188170]
xor edx, edx
mov r8, qword [rsp + 0x68]
call sub.KERNEL32.dll_HeapFree
mov r14, qword [rsp + 0xd0]
lea rsi, [r14 + 0x70]
mov rdi, qword [r14 + 0x80]
test rdi, rdi
je 0x1401050bf
mov rbx, qword [r14 + 0x78]
add rbx, 0x50
jmp 0x140105049
add rbx, 0x70
dec rdi
je 0x1401050bf
cmp qword [rbx - 0x50], 0
je 0x140105062
mov r8, qword [rbx - 0x48]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rbx - 8]
movabs rcx, 0x8000000000000000
cmp rax, rcx
je 0x14010508b
test rax, rax
je 0x14010508b
mov r8, qword [rbx]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp qword [rbx - 0x38], 0
je 0x1401050a4
mov r8, qword [rbx - 0x30]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp qword [rbx - 0x20], 0
je 0x140105040
mov r8, qword [rbx - 0x18]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140105040
cmp qword [rsi], 0
je 0x1401050d7
mov r8, qword [r14 + 0x78]
mov rcx, qword [0x140188170]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x80]
mov qword [rsi + 0x10], rax
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rsi], xmm0
mov byte [r14 + 0x88], bpl
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov edi, 1
jmp 0x140104cb2
mov r15d, 1
mov r14, qword [rsp + 0x30]
mov rcx, r15
mov rdx, rbx
mov r8, r14
call sub.msvcrt.dll_memcpy
cmp qword [rsp + 0x50], 0
jne 0x140104b3f
jmp 0x140104b50
ud2