Function at 0x14010da20
Capabilities:
Get system information on windows

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
test rdx, rdx
je 0x14010dc7f
mov rdi, rdx
mov r15, rcx
mov r9, qword [rcx + 0x10]
cmp r9, rdx
ja 0x14010dca3
add rdi, rdi
mov rdx, qword [0x140d81498]
test rdx, rdx
jne 0x14010da6e
lea rcx, [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [rsp + 0x2c]
mov qword [0x140d81498], rdx
mov rcx, rdi
call method.__sanitizer.RoundUpTo_unsigned_long_long__unsigned_long_long_
mov r14, rax
xor ecx, ecx
mov rdx, rax
mov r8d, 0x3000
mov r9d, 4
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
je 0x14010dcc0
mov r12, rax
mov rcx, qword [r15]
mov r8, qword [r15 + 0x10]
mov r10, r8
add r10, r8
je 0x14010db42
cmp r10, 8
jb 0x14010dacf
lea rax, [rcx + r10]
cmp r12, rax
jae 0x14010db60
lea rax, [r12 + r10]
cmp rcx, rax
jae 0x14010db60
xor edx, edx
mov rdi, rdx
not rdi
add rdi, r10
mov rax, r10
and rax, 2
je 0x14010db02
nop word cs:[rax + rax]
nop dword [rax]
movzx ebx, byte [rcx + rdx]
mov byte [r12 + rdx], bl
add rdx, 1
add rax, 0xffffffffffffffff
jne 0x14010daf0
cmp rdi, 3
jb 0x14010db3f
nop dword [rax + rax]
movzx eax, byte [rcx + rdx]
mov byte [r12 + rdx], al
movzx eax, byte [rcx + rdx + 1]
mov byte [r12 + rdx + 1], al
movzx eax, byte [rcx + rdx + 2]
mov byte [r12 + rdx + 2], al
movzx eax, byte [rcx + rdx + 3]
mov byte [r12 + rdx + 3], al
add rdx, 4
cmp r10, rdx
jne 0x14010db10
mov rcx, qword [r15]
mov rdx, qword [r15 + 8]
call method.__sanitizer.UnmapOrDie_void__unsigned_long_long_
mov qword [r15], r12
mov qword [r15 + 8], r14
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
cmp r10, 0x20
jae 0x14010db6d
xor edx, edx
jmp 0x14010dc4e
mov rdx, r10
and rdx, 0xffffffffffffffe0
lea rax, [rdx - 0x20]
mov rdi, rax
shr rdi, 5
add rdi, 1
mov r9d, edi
and r9d, 3
cmp rax, 0x60
jae 0x14010db94
xor esi, esi
jmp 0x14010dc00
and rdi, 0xfffffffffffffffc
xor esi, esi
nop word [rax + rax]
movups xmm0, xmmword [rcx + rsi]
movups xmm1, xmmword [rcx + rsi + 0x10]
movups xmmword [r12 + rsi], xmm0
movups xmmword [r12 + rsi + 0x10], xmm1
movups xmm0, xmmword [rcx + rsi + 0x20]
movups xmm1, xmmword [rcx + rsi + 0x30]
movups xmmword [r12 + rsi + 0x20], xmm0
movups xmmword [r12 + rsi + 0x30], xmm1
movups xmm0, xmmword [rcx + rsi + 0x40]
movups xmm1, xmmword [rcx + rsi + 0x50]
movups xmmword [r12 + rsi + 0x40], xmm0
movups xmmword [r12 + rsi + 0x50], xmm1
movups xmm0, xmmword [rcx + rsi + 0x60]
movups xmm1, xmmword [rcx + rsi + 0x70]
movups xmmword [r12 + rsi + 0x60], xmm0
movups xmmword [r12 + rsi + 0x70], xmm1
sub rsi, 0xffffffffffffff80
add rdi, 0xfffffffffffffffc
jne 0x14010dba0
test r9, r9
je 0x14010dc3b
lea rax, [r12 + rsi]
add rax, 0x10
lea rdi, [rcx + rsi]
add rdi, 0x10
shl r9, 5
xor esi, esi
nop dword [rax + rax]
movups xmm0, xmmword [rdi + rsi - 0x10]
movups xmm1, xmmword [rdi + rsi]
movups xmmword [rax + rsi - 0x10], xmm0
movups xmmword [rax + rsi], xmm1
add rsi, 0x20
cmp r9, rsi
jne 0x14010dc20
cmp r10, rdx
je 0x14010db3f
test r8b, 0xc
je 0x14010dad1
mov rax, rdx
mov rdx, r10
and rdx, 0xfffffffffffffff8
nop dword [rax + rax]
mov rdi, qword [rcx + rax]
mov qword [r12 + rax], rdi
add rax, 8
cmp rdx, rax
jne 0x14010dc60
cmp r10, rdx
je 0x14010db3f
jmp 0x14010dad1
mov qword [rsp + 0x20], 0
lea rcx, str....._sanitizer_common_sanitizer_common.h
lea r8, str.__new_capacity_______0__
mov edx, 0x245
xor r9d, r9d
call method.__sanitizer.CheckFailed_char_const__int__char_const__unsigned_long_long__unsigned_long_long_
mov qword [rsp + 0x20], rdi
lea rcx, str....._sanitizer_common_sanitizer_common.h
lea r8, str.__size________new_capacity__
mov edx, 0x246
call method.__sanitizer.CheckFailed_char_const__int__char_const__unsigned_long_long__unsigned_long_long_
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [rsp + 0x20], 0
lea rdx, str.InternalMmapVector
lea r8, str.allocate
mov rcx, r14
mov r9d, eax
call method.__sanitizer.ReportMmapFailureAndDie_unsigned_long_long__char_const__char_const__unsigned_int__bool_
int3