Function at 0x40f140
Capabilities:
Get system information on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
movabs rax, 0x55fffffffff
cmp rcx, rax
mov rbx, rdx
jbe 0x40ee90
lea r9, [rdx + rcx]
movabs rax, 0x76000000000
cmp r9, rax
ja 0x40eec0
mov rsi, rcx
xor si, si
cmp rsi, rcx
jne 0x40eee0
mov r9d, 4
mov r8d, 0x3000
mov rcx, rsi
call qword [sym.imp.kernel32.dll_VirtualAlloc]
test rax, rax
je 0x40ef00
add rsp, 0x38
pop rbx
pop rsi
ret
lea r8, str.__addr_______TraceMemBeg____
mov r9, rcx
mov edx, 0xd1b
movabs rax, 0x56000000000
mov qword [rsp + 0x20], rax
lea rcx, str.gotsan.cpp
call fcn.00406910
nop word [rax + rax]
mov qword [rsp + 0x20], rax
lea r8, str.__addr__size_______TraceMemEnd____
mov edx, 0xd1c
lea rcx, str.gotsan.cpp
call fcn.00406910
nop dword [rax]
mov r9, rcx
mov qword [rsp + 0x20], rsi
mov edx, 0xd1d
lea r8, str.__addr______addr____64____10____1___
lea rcx, str.gotsan.cpp
call fcn.00406910
call qword [sym.imp.kernel32.dll_GetLastError]
mov r9, rbx
mov r8, rbx
mov qword [rsp + 0x20], rsi
mov rdx, qword [str.SanitizerTool]
mov dword [rsp + 0x28], eax
lea rcx, str.ERROR:__s_failed_to_allocate__p___zd__bytes_at__p__error_code:__d__n
call fcn.0040d2f0
mov r8, rbx
mov rdx, rsi
lea rcx, str.FATAL:_ThreadSanitizer_can_not_mmap_thread_trace___p__p__n
call fcn.0040c3a0
call fcn.004068b0
nop
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x70
mov rdi, rcx
mov rcx, qword [0x006bca98]
test rcx, rcx
je 0x40f080
lea rsi, [rdi + rdx]
mov rbx, rdi
mov r8, rcx
and rbx, 0xfffffffffffffff8
mov rbp, rsi
neg r8
movabs rax, 0x4000000000
and rbp, 0xfffffffffffffff8
lea r12, [rbx + rax]
add rax, rbp
shl r12, 2
shl rax, 2
lea rdx, [rcx - 1]
and r12, r8
test rcx, rdx
jne 0x40f100
add rax, rdx
mov r9d, 4
mov rcx, r12
mov r13, qword [sym.imp.kernel32.dll_VirtualAlloc]
and rax, r8
mov r8d, 0x3000
sub rax, r12
mov r14, rax
mov rdx, rax
call r13
test rax, rax
je 0x40f105
shr rbx, 3
shr rbp, 3
movabs rax, 0x1d800000000
add rbx, rax
add rbp, rax
lea rbp, [rbp*4 + 0xffff]
shl rbx, 2
xor bx, bx
xor bp, bp
cmp byte [0x006bcad8], 0
je 0x40f0a5
mov rax, qword [0x006bcad0]
cmp rax, rbp
jae 0x40f06e
cmp rbx, rax
mov r12, rbp
mov r9d, 4
cmovb rbx, rax
mov r8d, 0x3000
sub r12, rbx
mov rcx, rbx
mov rdx, r12
call r13
test rax, rax
je 0x40f0d0
mov qword [0x006bcad0], rbp
mov eax, dword [0x006bcaa0]
cmp eax, 1
jbe 0x40f06e
mov qword [rsp + 0x20], rbp
mov r9, rbx
mov r8, rsi
mov rdx, rdi
lea rcx, str.mapped_meta_shadow_for___p__p__at___p__p__n
call fcn.0040c3a0
nop
add rsp, 0x70
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov qword [rsp + 0x38], rdx
lea rcx, [rsp + 0x40]
call qword [sym.imp.kernel32.dll_GetSystemInfo]
mov ecx, dword [rsp + 0x44]
mov rdx, qword [rsp + 0x38]
mov qword [0x006bca98], rcx
jmp 0x40ef61
mov r12, rbp
mov r9d, 4
mov r8d, 0x3000
mov byte [0x006bcad8], 1
sub r12, rbx
mov rcx, rbx
mov rdx, r12
call r13
test rax, rax
jne 0x40f048
call qword [sym.imp.kernel32.dll_GetLastError]
mov r9, r12
mov r8, r12
mov qword [rsp + 0x20], rbx
mov rdx, qword [str.SanitizerTool]
mov dword [rsp + 0x28], eax
lea rcx, str.ERROR:__s_failed_to_allocate__p___zd__bytes_at__p__error_code:__d__n
call fcn.0040d2f0
call fcn.004068b0
nop dword [rax]
call fcn.0040b440
call qword [sym.imp.kernel32.dll_GetLastError]
mov r9, r14
mov r8, r14
mov qword [rsp + 0x20], r12
mov rdx, qword [str.SanitizerTool]
mov dword [rsp + 0x28], eax
lea rcx, str.ERROR:__s_failed_to_allocate__p___zd__bytes_at__p__error_code:__d__n
call fcn.0040d2f0
call fcn.004068b0
nop
nop word cs:[rax + rax]
jmp 0x40ef40