Function at 0x1400150a0
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 [0x1403e1298]
mov rcx, qword gs:[0x58]
mov rcx, qword [rcx + rax*8]
mov al, 1
cmp qword [rcx + 0x38], 1
ja 0x1400150e2
call fcn.140010100
mov byte [rbp + 0x2d], al
mov rcx, rdi
call fcn.14002a180
test rax, rax
je 0x1400153bd
mov qword [rbp - 8], rax
mov rcx, rdi
call fcn.14002a160
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
test rsi, rsi
je 0x140015138
movabs rcx, 0xc1a2c89ccd1e7bc1
xor rax, rcx
movabs rcx, 0xfdbc168100b1ef64
xor rdx, rcx
or rdx, rax
jne 0x140015138
mov rax, rsi
add rax, 8
jmp 0x140015180
mov rcx, rdi
call fcn.14002a160
mov rsi, rax
mov rcx, rax
call qword [rdx + 0x18]
mov ecx, 0xc
lea r8, str.Box_dyn_Any__unnamed_
test rsi, rsi
je 0x140015186
movabs r9, 0x73dc66b25bbe7784
xor rax, r9
movabs r9, 0x4899d36ecce67f78
xor rdx, r9
or rdx, rax
jne 0x140015186
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.140013fb0
mov rsi, rax
mov qword [rbp + 8], rax
mov eax, 9
lea rcx, [0x1403d478c]
test rsi, rsi
je 0x1400151be
mov rdx, qword [rsi + 0x18]
test rdx, rdx
je 0x1400151be
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 [0x1403e1130]
test al, al
je 0x140015226
mov byte [0x1403e1130], 1
mov qword [rbp + 0x20], 0
mov eax, dword [0x1403e1298]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x60], 0
je 0x140015233
lea rax, [rax + 0x68]
jmp 0x140015243
mov qword [rbp + 0x10], 0
jmp 0x1400152f5
xor ecx, ecx
call fcn.140016c10
test rax, rax
je 0x1400153d7
mov rdi, qword [rax]
mov qword [rax], 0
mov qword [rbp + 0x10], rdi
test rdi, rdi
je 0x1400152f5
mov qword [rbp - 0x10], rdi
lea rsi, [rdi + 0x10]
mov rcx, rsi
call qword [sym.imp.kernel32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x1403e11c8]
shl rax, 1
test rax, rax
mov qword [rbp], rsi
jne 0x140015398
mov dword [rbp + 0x1c], 0
movzx eax, byte [rdi + 0x18]
lea rdx, [rdi + 0x20]
lea r8, fcn.140006c60
lea rcx, [rbp - 0x50]
call fcn.140015580
cmp byte [rbp + 0x1c], 0
jne 0x1400152ba
mov rax, qword [0x1403e11c8]
shl rax, 1
test rax, rax
jne 0x1400153a7
mov rcx, qword [rbp]
call qword [sym.imp.kernel32.dll_ReleaseSRWLockExclusive]
mov byte [0x1403e1130], 1
mov qword [rbp + 0x20], rdi
mov eax, dword [0x1403e1298]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x60], 0
je 0x140015321
lea rax, [rax + 0x68]
jmp 0x140015331
mov byte [rbp + 0x24], 0
mov dword [rbp + 0x20], 0
mov byte [rbp + 0x2e], 0
lea r8, [0x1403d47e8]
lea rcx, [rbp - 0x50]
lea rdx, [rbp + 0x20]
call fcn.140015580
xor edi, edi
test rsi, rsi
jne 0x14001535b
jmp 0x14001536a
xor ecx, ecx
call fcn.140016c10
test rax, rax
je 0x140015401
mov rcx, qword [rax]
mov qword [rax], rdi
mov qword [rbp + 0x20], rcx
test rcx, rcx
je 0x14001534f
lock dec qword [rcx]
jne 0x14001534f
lea rcx, [rbp + 0x20]
call fcn.14000bb00
mov dil, 1
mov rsi, qword [rbp + 8]
test rsi, rsi
je 0x14001536a
lock dec qword [rsi]
jne 0x14001536a
lea rcx, [rbp + 8]
call fcn.14000baa0
mov rax, qword [rbp + 0x10]
test rax, rax
setne cl
not dil
test dil, cl
je 0x14001538b
lock dec qword [rax]
jne 0x14001538b
lea rcx, [rbp + 0x10]
call fcn.14000bb00
nop
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop rbp
ret
call fcn.14002ff40
xor al, 1
mov dword [rbp + 0x1c], eax
jmp 0x140015289
call fcn.14002ff40
test al, al
jne 0x1400152ba
mov byte [rdi + 0x18], 1
jmp 0x1400152ba
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.140030860
ud2
lea rax, str.N_
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, [0x1403d2cd8]
lea r8, [rbp + 0x20]
mov edx, 0x46
call fcn.140030b50
jmp 0x14001543c
lock dec qword [rdi]
jne 0x140015410
lea rcx, [rbp + 0x20]
call fcn.14000bb00
mov byte [rbp + 0x2f], 0
lea rax, str.N_
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, [0x1403d2cd8]
lea r8, [rbp + 0x20]
mov edx, 0x46
call fcn.140030b50
ud2