Function at 0x40f1c0
Capabilities:
Get system information on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
movabs rax, 0x55fffffffff
cmp rcx, rax
mov rbx, rdx
jbe 0x40ef10
lea r9, [rdx + rcx]
movabs rax, 0x76000000000
cmp r9, rax
ja 0x40ef40
mov rsi, rcx
xor si, si
cmp rsi, rcx
jne 0x40ef60
mov r9d, 4
mov r8d, 0x3000
mov rcx, rsi
call qword [sym.imp.kernel32.dll_VirtualAlloc]
test rax, rax
je 0x40ef80
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.00406990
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.00406990
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.00406990
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.0040d370
mov r8, rbx
mov rdx, rsi
lea rcx, str.FATAL:_ThreadSanitizer_can_not_mmap_thread_trace___p__p__n
call fcn.0040c420
call fcn.00406930
nop
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x70
mov rdi, rcx
mov rcx, qword [0x015c8778]
test rcx, rcx
je 0x40f100
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 0x40f180
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 0x40f185
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 [0x015c87b8], 0
je 0x40f125
mov rax, qword [0x015c87b0]
cmp rax, rbp
jae 0x40f0ee
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 0x40f150
mov qword [0x015c87b0], rbp
mov eax, dword [0x015c8780]
cmp eax, 1
jbe 0x40f0ee
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.0040c420
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 [0x015c8778], rcx
jmp 0x40efe1
mov r12, rbp
mov r9d, 4
mov r8d, 0x3000
mov byte [0x015c87b8], 1
sub r12, rbx
mov rcx, rbx
mov rdx, r12
call r13
test rax, rax
jne 0x40f0c8
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.0040d370
call fcn.00406930
nop dword [rax]
call fcn.0040b4c0
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.0040d370
call fcn.00406930
nop
nop word cs:[rax + rax]
jmp 0x40efc0