Function at 0x1400a7e50
Capabilities:
Get number of processors

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov rdi, rcx
mov eax, dword [0x14014c3d8]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
mov al, 1
cmp qword [rcx + 0x38], 1
ja 0x1400a7e92
call fcn.1400a20c0
mov byte [rbp + 0x2c], al
mov rcx, rdi
call fcn.1400c54c0
test rax, rax
je 0x1400a813c
mov qword [rbp - 0x10], rax
mov rcx, rdi
call fcn.1400c54a0
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
test rsi, rsi
je 0x1400a7ee8
movabs rcx, 0xc1a2c89ccd1e7bc1
xor rax, rcx
movabs rcx, 0xfdbc168100b1ef64
xor rdx, rcx
or rdx, rax
jne 0x1400a7ee8
mov rax, rsi
add rax, 8
jmp 0x1400a7f30
mov rcx, rdi
call fcn.1400c54a0
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
mov ecx, 0xc
lea r8, str.Box_dyn_Any__unnamed_
test rsi, rsi
je 0x1400a7f36
movabs r9, 0x88bb267d7274cd83
xor rax, r9
movabs r9, 0xe45410b9893fd09e
xor rdx, r9
or rdx, rax
jne 0x1400a7f36
mov rax, rsi
add rax, 0x10
mov r8, qword [rsi]
mov rcx, qword [rax]
mov qword [rbp - 0x20], r8
mov qword [rbp - 0x18], rcx
call fcn.1400a6e30
mov r8d, 9
lea rcx, [0x140139c4c]
test rax, rax
je 0x1400a7f68
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x1400a7f68
mov r8, qword [rax + 0x20]
dec r8
mov rcx, rdx
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], r8
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x50], rcx
lea rcx, [rbp - 0x20]
mov qword [rbp - 0x48], rcx
lea rcx, [rbp - 0x10]
mov qword [rbp - 0x40], rcx
lea rcx, [rbp + 0x2c]
mov qword [rbp - 0x38], rcx
movzx ecx, byte [0x14014c238]
test cl, cl
mov qword [rbp + 8], rax
je 0x1400a8090
mov byte [0x14014c238], 1
mov eax, dword [0x14014c3d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x60], 0
je 0x1400a7fd0
lea rax, [rax + 0x68]
jmp 0x1400a7fe0
xor ecx, ecx
call fcn.1400a9aa0
test rax, rax
je 0x1400a8156
mov rsi, qword [rax]
mov qword [rax], 0
test rsi, rsi
je 0x1400a8090
lea rdi, [rsi + 0x10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x14014c318]
shl rax, 1
test rax, rax
mov qword [rbp - 8], rdi
jne 0x1400a8113
mov dword [rbp + 0x14], 0
movzx eax, byte [rsi + 0x18]
mov qword [rbp + 0x20], rsi
lea rdx, [rsi + 0x20]
lea r8, fcn.1400155f0
lea rcx, [rbp - 0x50]
call fcn.1400a8340
cmp byte [rbp + 0x14], 0
jne 0x1400a8055
mov rax, qword [0x14014c318]
shl rax, 1
test rax, rax
jne 0x1400a8122
mov rcx, qword [rbp - 8]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov byte [0x14014c238], 1
mov eax, dword [0x14014c3d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x60], 0
mov rsi, qword [rbp + 8]
je 0x1400a80e3
lea rax, [rax + 0x68]
jmp 0x1400a80f7
mov byte [rbp + 0x1c], 0
mov dword [rbp + 0x18], 0
mov byte [rbp + 0x2e], 1
mov qword [rbp], 0
mov byte [rbp + 0x2d], 0
lea r8, fcn.1400011f0
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x18]
call fcn.1400a8340
mov rsi, qword [rbp + 8]
test rsi, rsi
je 0x1400a80d6
lock dec qword [rsi]
jne 0x1400a80d6
mov rcx, rsi
call fcn.1400994b0
nop
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop rbp
ret
xor ecx, ecx
call fcn.1400a9aa0
test rax, rax
mov rsi, qword [rbp + 8]
je 0x1400a8180
mov rcx, qword [rax]
mov rdx, qword [rbp + 0x20]
mov qword [rax], rdx
test rcx, rcx
je 0x1400a80c3
lock dec qword [rcx]
jne 0x1400a80c3
call fcn.1400993b0
jmp 0x1400a80c3
call fcn.1400db0f0
xor al, 1
mov dword [rbp + 0x14], eax
jmp 0x1400a801f
call fcn.1400db0f0
test al, al
jne 0x1400a8055
mov rax, qword [rbp + 0x20]
mov byte [rax + 0x18], 1
jmp 0x1400a8055
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_5680fa18feaa87f3ff04063800aec256c3d4b4belibrary_alloc_srccollections_btree_navigate.rs
lea r8, str.library_std_srcpanicking.rs
mov edx, 0x2b
call fcn.1400dbaf0
ud2
lea rax, [0x140139188]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
lea r9, fcn.1400011f0
lea r8, [rbp + 0x18]
mov edx, 0x46
call fcn.1400dbf00
jmp 0x1400a81bf
mov rax, qword [rbp + 0x20]
lock dec qword [rax]
jne 0x1400a8193
mov rcx, qword [rbp + 0x20]
call fcn.1400993b0
mov byte [rbp + 0x2f], 0
lea rax, [0x140139188]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructionlibrary_std_src_threadlocal.rs
lea r9, fcn.1400011f0
lea r8, [rbp + 0x18]
mov edx, 0x46
call fcn.1400dbf00
ud2