Function at 0x1400fa880
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 [0x1401b93c8]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
mov al, 1
cmp qword [rcx + 0x60], 1
ja 0x1400fa8c2
call fcn.1400f5120
mov byte [rbp + 0x2d], al
mov rcx, rdi
call fcn.140110f30
test rax, rax
je 0x1400fab9d
mov qword [rbp - 8], rax
mov rcx, rdi
call fcn.140110f10
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
test rsi, rsi
je 0x1400fa918
movabs rcx, 0xc1a2c89ccd1e7bc1
xor rax, rcx
movabs rcx, 0xfdbc168100b1ef64
xor rdx, rcx
or rdx, rax
jne 0x1400fa918
mov rax, rsi
add rax, 8
jmp 0x1400fa960
mov rcx, rdi
call fcn.140110f10
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
mov ecx, 0xc
lea r8, str.Box_dyn_Any__unnamed_
test rsi, rsi
je 0x1400fa966
movabs r9, 0x73dc66b25bbe7784
xor rax, r9
movabs r9, 0x4899d36ecce67f78
xor rdx, r9
or rdx, rax
jne 0x1400fa966
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.1400f9700
mov rsi, rax
mov qword [rbp + 8], rax
mov eax, 9
lea rcx, [0x14018f85c]
test rsi, rsi
je 0x1400fa99e
mov rdx, qword [rsi + 0x18]
test rdx, rdx
je 0x1400fa99e
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 [0x1401b9230]
test al, al
je 0x1400faa06
mov byte [0x1401b9230], 1
mov qword [rbp + 0x20], 0
mov eax, dword [0x1401b93c8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x88], 0
je 0x1400faa13
lea rax, [rax + 0x90]
jmp 0x1400faa23
mov qword [rbp + 0x10], 0
jmp 0x1400faad5
xor ecx, ecx
call fcn.1400fc430
test rax, rax
je 0x1400fabb7
mov rdi, qword [rax]
mov qword [rax], 0
mov qword [rbp + 0x10], rdi
test rdi, rdi
je 0x1400faad5
mov qword [rbp - 0x10], rdi
lea rsi, [rdi + 0x10]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x1401b92f0]
shl rax, 1
test rax, rax
mov qword [rbp], rsi
jne 0x1400fab78
mov dword [rbp + 0x1c], 0
movzx eax, byte [rdi + 0x18]
lea rdx, [rdi + 0x20]
lea r8, fcn.1400ea420
lea rcx, [rbp - 0x50]
call fcn.1400fad60
cmp byte [rbp + 0x1c], 0
jne 0x1400faa9a
mov rax, qword [0x1401b92f0]
shl rax, 1
test rax, rax
jne 0x1400fab87
mov rcx, qword [rbp]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov byte [0x1401b9230], 1
mov qword [rbp + 0x20], rdi
mov eax, dword [0x1401b93c8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x88], 0
je 0x1400fab01
lea rax, [rax + 0x90]
jmp 0x1400fab11
mov byte [rbp + 0x24], 0
mov dword [rbp + 0x20], 0
mov byte [rbp + 0x2e], 0
lea r8, [0x14018f8b8]
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x20]
call fcn.1400fad60
xor edi, edi
test rsi, rsi
jne 0x1400fab3b
jmp 0x1400fab4a
xor ecx, ecx
call fcn.1400fc430
test rax, rax
je 0x1400fabe1
mov rcx, qword [rax]
mov qword [rax], rdi
mov qword [rbp + 0x20], rcx
test rcx, rcx
je 0x1400fab2f
lock dec qword [rcx]
jne 0x1400fab2f
lea rcx, [rbp + 0x20]
call fcn.1400ef570
mov dil, 1
mov rsi, qword [rbp + 8]
test rsi, rsi
je 0x1400fab4a
lock dec qword [rsi]
jne 0x1400fab4a
lea rcx, [rbp + 8]
call fcn.1400ef510
mov rax, qword [rbp + 0x10]
test rax, rax
setne cl
not dil
test dil, cl
je 0x1400fab6b
lock dec qword [rax]
jne 0x1400fab6b
lea rcx, [rbp + 0x10]
call fcn.1400ef570
nop
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop rbp
ret
call fcn.14011dd30
xor al, 1
mov dword [rbp + 0x1c], eax
jmp 0x1400faa69
call fcn.14011dd30
test al, al
jne 0x1400faa9a
mov byte [rdi + 0x18], 1
jmp 0x1400faa9a
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.14011eb60
ud2
lea rax, [0x14018edb0]
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, [0x14018db38]
lea r8, [rbp + 0x20]
mov edx, 0x46
call fcn.14011ee90
jmp 0x1400fac1c
lock dec qword [rdi]
jne 0x1400fabf0
lea rcx, [rbp + 0x20]
call fcn.1400ef570
mov byte [rbp + 0x2f], 0
lea rax, [0x14018edb0]
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, [0x14018db38]
lea r8, [rbp + 0x20]
mov edx, 0x46
call fcn.14011ee90
ud2