Function at 0x1401098e0
Capabilities:
Get number of processors

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov rdi, rcx
cmp qword [rcx + 0x10], 0
je 0x14010995f
cmp qword [rdi + 0x40], 0
je 0x14010a0f1
mov rsi, qword [rdi + 0x48]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0x1c0], cl
jne 0x140109ebd
cmp byte [rsi + 0x1d8], 0
je 0x140109ed6
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi + 0x1c0], cl
je 0x140109f26
add rsi, 0x1c0
mov rcx, rsi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140148870
mov rdx, qword [rdi + 0x40]
mov r8, qword [rdi + 0x48]
lea rcx, [rsp + 0x88]
call fcn.140104d60
cmp qword [rdi + 0x40], 0
jne 0x14010a12d
xor esi, esi
xchg qword [rdi + 0x38], rsi
test rsi, rsi
je 0x140109f57
mov rax, qword [rdi + 0x48]
lock inc qword [rax]
jle 0x14010a173
lea rcx, [rdi + 0x18]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov eax, dword [0x1401e4c88]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r15, qword [rax + 0x148]
lea rcx, [rsp + 0x60]
mov qword [rax + 0x148], rcx
mov rdi, qword [rdi + 0x48]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x38], cl
jne 0x140109fb3
mov byte [rdi + 0x50], 1
mov rbx, qword [rdi + 0x48]
test rbx, rbx
je 0x140109fcd
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov rax, qword [rbx + rax]
mov qword [rdi + 0x48], rax
test rax, rax
je 0x140109a20
mov rcx, qword [rax + 0x10]
mov rcx, qword [rcx]
add rax, rcx
add rax, 8
jmp 0x140109a24
lea rax, [rdi + 0x40]
mov qword [rax], 0
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov qword [rbx + rax], 0
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov qword [rbx + rax + 8], 0
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi + 0x38], cl
jne 0x140109fde
test rbx, rbx
je 0x140109b20
lea r12, [rdi + 0x40]
xor ebp, ebp
mov r13b, 1
lea r14, [rdi + 0x38]
jmp 0x140109ab0
mov qword [rcx], 0
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov qword [rbx + rax], 0
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov qword [rbx + rax + 8], 0
mov al, 1
lock cmpxchg byte [rdi + 0x38], bpl
jne 0x140109b07
mov rax, qword [rbx + 0x10]
mov rcx, rbx
call qword [rax + 0x48]
xor eax, eax
lock cmpxchg byte [rdi + 0x38], r13b
jne 0x140109af4
mov rbx, qword [rdi + 0x48]
test rbx, rbx
je 0x140109b11
mov rax, qword [rbx + 0x10]
mov rax, qword [rax]
mov rax, qword [rbx + rax]
mov qword [rdi + 0x48], rax
mov rcx, r12
test rax, rax
je 0x140109a80
mov rcx, qword [rax + 0x10]
mov rcx, qword [rcx]
add rcx, rax
add rcx, 8
jmp 0x140109a80
mov rcx, r14
call fcn.140148540
mov rbx, qword [rdi + 0x48]
test rbx, rbx
jne 0x140109acd
jmp 0x140109b11
mov rcx, r14
call fcn.140148870
jmp 0x140109ab0
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi + 0x38], cl
jne 0x14010a082
xor ebx, ebx
nop word cs:[rax + rax]
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x140109b90
mov rcx, qword [rsi + 0x10]
lea rdx, [rcx + 1]
mov r8, qword [rsi]
cmp rdx, r8
cmovb r8, rbx
mov rdx, qword [rsi + 8]
neg r8
add r8, rcx
inc r8
mov qword [rsi + 0x10], r8
dec rax
mov qword [rsi + 0x18], rax
mov rcx, qword [rdx + rcx*8]
mov rax, 0xffffffffffffffc0
lock xadd qword [rcx], rax
cmp rax, 0x3f
jbe 0x14010a0d7
and rax, 0xffffffffffffffc0
cmp rax, 0x40
jne 0x140109b30
mov rax, qword [rcx + 0x10]
call qword [rax + 0x28]
jmp 0x140109b30
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x10], cl
jne 0x140109ff5
mov rbx, qword [rdi + 0x18]
mov r14, qword [rdi + 0x20]
movups xmm0, xmmword [rdi + 0x28]
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rdi + 0x20], 0
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi + 0x10], cl
jne 0x14010a003
test r14, r14
je 0x140109c7d
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], r14
xor ebx, ebx
nop dword [rax]
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x140109c57
mov rcx, qword [rsp + 0x40]
lea rdx, [rcx + 1]
mov r8, qword [rsp + 0x30]
cmp rdx, r8
cmovb r8, rbx
mov rdx, qword [rsp + 0x38]
neg r8
add r8, rcx
inc r8
mov qword [rsp + 0x40], r8
dec rax
mov qword [rsp + 0x48], rax
mov rcx, qword [rdx + rcx*8]
mov rax, 0xffffffffffffffc0
lock xadd qword [rcx], rax
cmp rax, 0x3f
jbe 0x14010a0d7
and rax, 0xffffffffffffffc0
cmp rax, 0x40
jne 0x140109bf0
mov rax, qword [rcx + 0x10]
call qword [rax + 0x28]
jmp 0x140109bf0
lea rcx, [rsp + 0x30]
call fcn.140132830
cmp qword [rsp + 0x30], 0
je 0x140109c7d
mov r8, qword [rsp + 0x38]
mov rcx, qword [0x1401e4bf8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x38], cl
jne 0x14010a01a
mov rbx, qword [rdi + 0x40]
test rbx, rbx
jne 0x140109ca0
cmp qword [rdi + 0x48], 0
jne 0x14010a177
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi + 0x38], cl
jne 0x14010a035
test rbx, rbx
jne 0x14010a047
cmp dword [rsi + 0x20], 2
je 0x140109cd1
lea rcx, [rsi + 0x20]
add rdi, 0xb0
mov rdx, rdi
call fcn.140100ff0
xor ecx, ecx
call fcn.1400fa2e0
mov qword [rax], r15
cmp qword [rsp + 0x60], 0
jne 0x14010a191
mov qword [rsp + 0x60], 0xffffffffffffffff
mov rdi, qword [rsp + 0x68]
test rdi, rdi
je 0x140109d53
mov rcx, rdi
call fcn.140132830
cmp qword [rdi], 0
je 0x140109d1b
mov r8, qword [rdi + 8]
mov rcx, qword [0x1401e4bf8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
add rdi, 0x20
mov rcx, rdi
call fcn.1400fc050
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x1401e4bf8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsp + 0x68], rsi
inc qword [rsp + 0x60]
je 0x140109d5c
lea rax, [0x1401a83a0]
jmp 0x14010a198
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], 0
mov rdi, qword [rsp + 0x78]
lea rcx, [rdi + 0x20]
mov rdx, rsi
call fcn.140108d20
mov rax, qword [rdi]
nop dword [rax]
test al, 1
jne 0x140109d98
mov rcx, rax
and rcx, 0xfffffffffffffffc
or rcx, 2
lock cmpxchg qword [rdi], rcx
jne 0x140109d80
jmp 0x140109df9
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 8], cl
jne 0x14010a08f
mov r8, qword [rdi]
lea rcx, [rdi + 0x10]
mov rdx, rdi
call fcn.14010a1c0
mov rsi, rax
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi + 8], cl
sete al
test rdx, rdx
je 0x140109df1
mov rbx, rdx
test al, al
je 0x14010a09d
mov rcx, rsi
call qword [rbx + 8]
mov qword [rsp + 0x60], 0
mov rax, qword [rsp + 0x70]
lock dec qword [rax]
je 0x140109e0d
jmp 0x140109e17
test al, al
je 0x14010a0ae
mov qword [rsp + 0x60], 0
mov rax, qword [rsp + 0x70]
lock dec qword [rax]
jne 0x140109e17
mov rcx, qword [rsp + 0x70]
call fcn.140107bd0
mov rsi, qword [rsp + 0x68]
test rsi, rsi
je 0x140109e62
mov rcx, rsi
call fcn.140132830
cmp qword [rsi], 0
je 0x140109e42
mov r8, qword [rsi + 8]
mov rcx, qword [0x1401e4bf8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
add rsi, 0x20
mov rcx, rsi
call fcn.1400fc050
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x1401e4bf8]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp dword [rsp + 0x88], 3
je 0x140109f26
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x88]
call fcn.1400fa620
mov rax, qword [rsp + 0x88]
cmp rax, 2
je 0x140109f26
test rax, rax
je 0x140109f3a
mov rax, qword [rsp + 0x90]
lock dec qword [rax]
jne 0x140109f26
mov rcx, qword [rsp + 0x90]
call fcn.140107c90
jmp 0x140109f26
lea rcx, [rsi + 0x1c0]
call fcn.140148540
cmp byte [rsi + 0x1d8], 0
jne 0x14010992b
mov byte [rsi + 0x1d8], 1
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi + 0x1c0], cl
jne 0x14010a061
mov rdi, qword [rsi + 0x1a8]
test rdi, rdi
je 0x140109f26
mov rbx, qword [rsi + 0x1a0]
add rsi, 0x10
shl rdi, 4
xor r14d, r14d
nop dword [rax]
mov rcx, qword [rbx + r14 + 8]
mov rdx, rsi
call fcn.14010af10
add r14, 0x10
cmp rdi, r14
jne 0x140109f10
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x90]
lock dec qword [rax]
jne 0x140109f26
mov rcx, qword [rsp + 0x90]
call fcn.140107bd0
jmp 0x140109f26
mov rax, qword [0x1401e4c80]
shl rax, 1
test rax, rax
je 0x140109f74
call fcn.14014ca40
test al, al
je 0x140109e62
lea rax, str.Oh_no__We_never_placed_the_Core_back__this_is_a_bug_
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x30], 0
lea rax, [0x1401d1ba8]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
lea rdx, [0x1401a8330]
jmp 0x14010a167
lea rcx, [rdi + 0x38]
call fcn.140148540
mov byte [rdi + 0x50], 1
mov rbx, qword [rdi + 0x48]
test rbx, rbx
jne 0x1401099fc
xor ebx, ebx
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rdi + 0x38], cl
je 0x140109a59
lea rcx, [rdi + 0x38]
call fcn.140148870
test rbx, rbx
jne 0x140109a62
jmp 0x140109b20
lea rcx, [rdi + 0x10]
call fcn.140148540
jmp 0x140109b9f
lea rcx, [rdi + 0x10]
call fcn.140148870
test r14, r14
jne 0x140109bd3
jmp 0x140109c7d
lea rcx, [rdi + 0x38]
call fcn.140148540
mov rbx, qword [rdi + 0x40]
test rbx, rbx
je 0x140109c95
jmp 0x140109ca0
lea rcx, [rdi + 0x38]
call fcn.140148870
test rbx, rbx
je 0x140109cb8
lea rcx, str.assertion_failed:_handle.shared.owned.is_empty__3
lea r8, [0x1401a8910]
mov edx, 0x30
call fcn.140144ec0
ud2
lea rcx, [rsi + 0x1c0]
call fcn.140148870
mov rdi, qword [rsi + 0x1a8]
test rdi, rdi
jne 0x140109efb
jmp 0x140109f26
mov rcx, r14
call fcn.140148870
jmp 0x140109b20
lea rcx, [rdi + 8]
call fcn.140148540
jmp 0x140109da7
add rdi, 8
mov rcx, rdi
call fcn.140148870
jmp 0x140109dd5
add rdi, 8
mov rcx, rdi
call fcn.140148870
mov qword [rsp + 0x60], 0
mov rax, qword [rsp + 0x70]
lock dec qword [rax]
je 0x140109e0d
jmp 0x140109e17
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x1401a9448]
mov edx, 0x27
call fcn.140144ec0
ud2
lea rax, str.expected_MultiThread_scheduler
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x30], 0
lea rax, [0x1401d1ba8]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
lea rdx, [0x1401aaaa0]
jmp 0x14010a167
lea rax, str.not_a_CurrentThread_handle
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x30], 0
lea rax, [0x1401d1ba8]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
lea rdx, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.28.2_src_runtime_schedulermod.rs
lea rcx, [rsp + 0x30]
call fcn.140144de0
ud2
ud2
lea rcx, str.assertion_failed:_self.tail.is_none__
lea r8, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.28.2_srcutillinked_list.rs
mov edx, 0x25
call fcn.140144ec0
ud2
lea rax, [0x1401d1d28]
mov qword [rsp + 0x20], rax
lea rcx, [0x1401d1c23]
lea r9, [0x1401a81b0]
lea r8, [rsp + 0x30]
mov edx, 0x10
call fcn.1401450e0
ud2