Function at 0x1400f5780
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 [0x140177cf0]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
mov al, 1
cmp qword [rcx + 0x60], 1
ja 0x1400f57c2
call fcn.1400f0000
mov byte [rbp + 0x2d], al
mov rcx, rdi
call fcn.1401114a0
test rax, rax
je 0x1400f5a9d
mov qword [rbp - 8], rax
mov rcx, rdi
call fcn.140111480
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
test rsi, rsi
je 0x1400f5818
movabs rcx, 0xc1a2c89ccd1e7bc1
xor rax, rcx
movabs rcx, 0xfdbc168100b1ef64
xor rdx, rcx
or rdx, rax
jne 0x1400f5818
mov rax, rsi
add rax, 8
jmp 0x1400f5860
mov rcx, rdi
call fcn.140111480
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
mov ecx, 0xc
lea r8, str.Box_dyn_Any__unnamed_
test rsi, rsi
je 0x1400f5866
movabs r9, 0x73dc66b25bbe7784
xor rax, r9
movabs r9, 0x4899d36ecce67f78
xor rdx, r9
or rdx, rax
jne 0x1400f5866
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.1400f4600
mov rsi, rax
mov qword [rbp + 8], rax
mov eax, 9
lea rcx, [0x14014102c]
test rsi, rsi
je 0x1400f589e
mov rdx, qword [rsi + 0x18]
test rdx, rdx
je 0x1400f589e
mov rax, qword [rsi + 0x20]
dec rax
mov rcx, rdx
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x30]
mov qword [rbp - 0x50], rax
lea rax, [rbp - 8]
mov qword [rbp - 0x48], rax
lea rax, [rbp - 0x20]
mov qword [rbp - 0x40], rax
lea rax, [rbp + 0x2d]
mov qword [rbp - 0x38], rax
movzx eax, byte [0x140177b60]
test al, al
je 0x1400f5906
mov byte [0x140177b60], 1
mov qword [rbp + 0x20], 0
mov eax, dword [0x140177cf0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa0], 0
je 0x1400f5913
lea rax, [rax + 0xa8]
jmp 0x1400f5923
mov qword [rbp + 0x10], 0
jmp 0x1400f59d5
xor ecx, ecx
call fcn.1400f73b0
test rax, rax
je 0x1400f5ab7
mov rdi, qword [rax]
mov qword [rax], 0
mov qword [rbp + 0x10], rdi
test rdi, rdi
je 0x1400f59d5
mov qword [rbp - 0x10], rdi
lea rsi, [rdi + 0x10]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x140177c20]
shl rax, 1
test rax, rax
mov qword [rbp], rsi
jne 0x1400f5a78
mov dword [rbp + 0x1c], 0
movzx eax, byte [rdi + 0x18]
lea rdx, [rdi + 0x20]
lea r8, fcn.1400e5330
lea rcx, [rbp - 0x50]
call fcn.1400f5c60
cmp byte [rbp + 0x1c], 0
jne 0x1400f599a
mov rax, qword [0x140177c20]
shl rax, 1
test rax, rax
jne 0x1400f5a87
mov rcx, qword [rbp]
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov byte [0x140177b60], 1
mov qword [rbp + 0x20], rdi
mov eax, dword [0x140177cf0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0xa0], 0
je 0x1400f5a01
lea rax, [rax + 0xa8]
jmp 0x1400f5a11
mov byte [rbp + 0x24], 0
mov dword [rbp + 0x20], 0
mov byte [rbp + 0x2e], 0
lea r8, [0x140141088]
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x20]
call fcn.1400f5c60
xor edi, edi
test rsi, rsi
jne 0x1400f5a3b
jmp 0x1400f5a4a
xor ecx, ecx
call fcn.1400f73b0
test rax, rax
je 0x1400f5ae1
mov rcx, qword [rax]
mov qword [rax], rdi
mov qword [rbp + 0x20], rcx
test rcx, rcx
je 0x1400f5a2f
lock dec qword [rcx]
jne 0x1400f5a2f
lea rcx, [rbp + 0x20]
call fcn.1400ea200
mov dil, 1
mov rsi, qword [rbp + 8]
test rsi, rsi
je 0x1400f5a4a
lock dec qword [rsi]
jne 0x1400f5a4a
lea rcx, [rbp + 8]
call fcn.1400ea1a0
mov rax, qword [rbp + 0x10]
test rax, rax
setne cl
not dil
test dil, cl
je 0x1400f5a6b
lock dec qword [rax]
jne 0x1400f5a6b
lea rcx, [rbp + 0x10]
call fcn.1400ea200
nop
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop rbp
ret
call fcn.140127b80
xor al, 1
mov dword [rbp + 0x1c], eax
jmp 0x1400f5969
call fcn.140127b80
test al, al
jne 0x1400f599a
mov byte [rdi + 0x18], 1
jmp 0x1400f599a
lea rcx, str.called__Option::unwrap____on_a__None__value_rustc_cc66ad468955717ab92600c770da8c1601a4ff33library_alloc_srccollections_btree_navigate.rs
lea r8, str.library_std_srcpanicking.rs
mov edx, 0x2b
call fcn.140128580
ud2
lea rax, [0x1401405b8]
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, [0x14013f3f8]
lea r8, [rbp + 0x20]
mov edx, 0x46
call fcn.1401289b0
jmp 0x1400f5b1c
lock dec qword [rdi]
jne 0x1400f5af0
lea rcx, [rbp + 0x20]
call fcn.1400ea200
mov byte [rbp + 0x2f], 0
lea rax, [0x1401405b8]
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, [0x14013f3f8]
lea r8, [rbp + 0x20]
mov edx, 0x46
call fcn.1401289b0
ud2