Function at 0x14016f0f0
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, rcx
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0x40], cl
jne 0x14016f15c
cmp byte [rsi + 0xc4], 0
je 0x14016f17a
lock sub qword [rdx], 0x40
jb 0x14016f8af
mov rax, qword [rdx + 0x10]
mov rcx, rdx
call qword [rax + 0x30]
xor edx, edx
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi + 0x40], cl
mov edi, 1
jne 0x14016f22d
mov rax, rdi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsi + 0x40]
mov rdi, r8
mov rbx, rdx
call fcn.14006e740
mov rdx, rbx
mov r8, rdi
cmp byte [rsi + 0xc4], 0
jne 0x14016f11a
mov rcx, qword [rsi + 0x48]
mov rax, qword [rsi + 0x60]
cmp rax, rcx
jne 0x14016f1a4
lea rcx, [rsi + 0x48]
mov rdi, r8
mov rbx, rdx
call fcn.14016fb40
mov rdx, rbx
mov r8, rdi
mov rcx, qword [rsi + 0x48]
mov rax, qword [rsi + 0x60]
mov r9, qword [rsi + 0x58]
add r9, rax
xor r10d, r10d
cmp r9, rcx
cmovae r10, rcx
sub r9, r10
mov rcx, qword [rsi + 0x50]
shl r9, 4
mov qword [rcx + r9], rdx
mov byte [rcx + r9 + 8], 1
inc rax
mov qword [rsi + 0x60], rax
lock inc qword [rsi + 0x108]
mov rax, qword [rsi + 0x100]
test rax, rax
je 0x14016f20d
lock dec qword [rsi + 0x100]
inc dword [rsi + 0xc0]
mov rdx, qword [rsi + 0xc8]
test rdx, rdx
je 0x14016f21d
lea rcx, [rsi + 0xc8]
call fcn.14006d370
jmp 0x14016f21d
mov rax, qword [rsi + 0xf8]
cmp rax, qword [rsi + 0xf0]
jne 0x14016f244
xor edi, edi
mov al, 1
lock cmpxchg byte [rsi + 0x40], dil
je 0x14016f145
add rsi, 0x40
mov rcx, rsi
mov rsi, rdx
call fcn.14006e430
mov rdx, rsi
jmp 0x14016f145
mov r14, qword [rsi + 0x98]
test r14, r14
je 0x14016f8c7
lock inc qword [r14]
jle 0x14016f90c
mov rdi, qword [rsi + 0xb8]
mov r12, qword [r8]
mov rbp, qword [r8 + 8]
mov rax, qword [rsi + 0x30]
mov r8, qword [rsi + 0x38]
mov rcx, qword [r8 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rax + rcx]
add rdx, 0x10
lea rcx, [rsp + 0x40]
call qword [r8 + 0x28]
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x14016f29f
mov r8, qword [rsi + 0x18]
jmp 0x14016f29f
mov r13, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov edx, 1
mov ecx, 1
lock xadd qword [rbp], rcx
test r12, r12
je 0x14016f2e9
test rcx, rcx
js 0x14016f90c
movabs r12, 0x8000000000000000
test rax, rax
mov qword [rsp + 0x80], rdx
jne 0x14016f3d2
jmp 0x14016f30f
test rcx, rcx
js 0x14016f90c
xor edx, edx
movabs r12, 0x8000000000000000
test rax, rax
mov qword [rsp + 0x80], rdx
jne 0x14016f3d2
mov r8, qword [0x1402792b0]
test r8, r8
je 0x14016f323
dec r8
jmp 0x14016f3d2
lea rdx, str.RUST_MIN_STACK
lea rcx, [rsp + 0x40]
mov r8d, 0xe
call fcn.140164e80
mov rax, qword [rsp + 0x40]
cmp rax, r12
jne 0x14016f34c
mov r8d, 0x200000
jmp 0x14016f3c7
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x60], rdx
call fcn.140047c20
cmp qword [rsp + 0x68], 0
je 0x14016f37a
mov r8d, 0x200000
jmp 0x14016f3a0
mov rdx, qword [rsp + 0x70]
mov r8, qword [rsp + 0x78]
lea rcx, [rsp + 0x68]
call fcn.14004cc50
cmp byte [rsp + 0x68], 0
mov r8d, 0x200000
jne 0x14016f3a0
mov r8, qword [rsp + 0x70]
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14016f3c7
mov rcx, qword [0x140279280]
xor edx, edx
mov qword [rsp + 0x38], r8
mov r8, qword [rsp + 0x60]
call fcn.1401abdbc
mov r8, qword [rsp + 0x38]
lea rax, [r8 + 1]
mov qword [0x1402792b0], rax
cmp r13, r12
mov qword [rsp + 0x38], r8
jne 0x14016f3e7
mov qword [rsp + 0x40], 2
jmp 0x14016f459
cmp rbx, 0x10
jae 0x14016f40a
test rbx, rbx
je 0x14016f419
xor eax, eax
xor edx, edx
cmp byte [r15 + rdx], 0
je 0x14016f41f
inc rdx
cmp rbx, rdx
jne 0x14016f3f6
mov rdx, rbx
jmp 0x14016f424
xor ecx, ecx
mov rdx, r15
mov r8, rbx
call fcn.14004b8c0
jmp 0x14016f424
xor edx, edx
xor eax, eax
jmp 0x14016f424
mov eax, 1
test rax, rax
jne 0x14016f917
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x40]
call fcn.140041ac0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x40], 1
lea rcx, [rsp + 0x40]
call fcn.140144e10
mov rbx, rax
lock inc qword [rax]
jle 0x14016f90c
movzx eax, byte [0x1402792e0]
mov edx, 0x30
xor ecx, ecx
call fcn.1401685e0
test rax, rax
je 0x14016f8df
mov r15, rax
mov qword [rax], 1
mov qword [rax + 8], 1
pxor xmm0, xmm0
movdqu xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x40], rax
lock inc qword [rax]
jle 0x14016f90c
movzx eax, byte [0x140279208]
test al, al
je 0x14016f50d
mov byte [0x140279208], 1
call fcn.140167060
test rax, rax
je 0x14016f963
mov r12, qword [rax]
mov qword [rax], 0
test r12, r12
je 0x14016f50d
lock inc qword [r12]
jle 0x14016f90c
mov byte [0x140279208], 1
call fcn.140167060
test rax, rax
je 0x14016f954
mov rcx, qword [rax]
mov qword [rax], r12
jmp 0x14016f53e
movzx eax, byte [0x140279208]
test al, al
je 0x14016f539
mov byte [0x140279208], 1
call fcn.140167060
test rax, rax
je 0x14016f963
mov rcx, qword [rax]
mov qword [rax], 0
jmp 0x14016f53b
xor ecx, ecx
xor r12d, r12d
test rcx, rcx
je 0x14016f54e
lock dec qword [rcx]
jne 0x14016f54e
call fcn.14016fbd0
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x60], rax
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14016f56c
lock inc qword [rcx + 0x18]
jle 0x14016f90e
movzx eax, byte [0x1402792e0]
mov edx, 0x38
xor ecx, ecx
call fcn.1401685e0
test rax, rax
je 0x14016f8ee
mov r13, rax
mov qword [rax], rbx
mov qword [rax + 8], r15
mov qword [rax + 0x10], r12
mov rax, qword [rsp + 0x80]
mov qword [r13 + 0x18], rax
mov qword [r13 + 0x20], rbp
mov qword [r13 + 0x28], r14
mov qword [r13 + 0x30], rdi
movzx eax, byte [0x1402792e0]
mov edx, 0x10
xor ecx, ecx
call fcn.1401685e0
test rax, rax
je 0x14016f8fd
mov r15, rax
mov qword [rax], r13
lea rax, [0x14020d950]
mov qword [r15 + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x140168510]
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
mov r9, r15
call sub.KERNEL32.dll_CreateThread
test rax, rax
je 0x14016f782
mov r14, rax
mov qword [rsp + 0x38], rbx
lock inc qword [rsi + 0xf8]
inc qword [rsi + 0xb8]
mov r15, qword [rsi + 0x88]
mov r12, qword [rsi + 0x90]
mov rcx, r15
mov rdx, r12
mov r8, rdi
call fcn.14016fc20
cmp qword [rsi + 0x78], 0
je 0x14016f82e
mov rcx, qword [rsi + 0x68]
mov r8, qword [rsi + 0x70]
mov rdx, rax
shr rdx, 0x39
movd xmm0, edx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rbp, [rcx - 0x20]
xor r11d, r11d
pcmpeqd xmm1, xmm1
xor r15d, r15d
and rax, r8
movdqu xmm2, xmmword [rcx + rax]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r13d, xmm3
nop dword [rax]
test r13w, r13w
je 0x14016f6bf
tzcnt r12d, r13d
lea ebx, [r13 - 1]
and ebx, r13d
add r12, rax
and r12, r8
mov r13, r12
shl r13, 5
mov r10, rbp
sub r10, r13
mov r13d, ebx
cmp qword [r10], rdi
jne 0x14016f690
jmp 0x14016f707
cmp r15, 1
mov r15d, 1
je 0x14016f6e5
pmovmskb r9d, xmm2
xor r15d, r15d
test r9d, r9d
setne r15b
tzcnt r9d, r9d
add r9, rax
and r9, r8
pcmpeqb xmm2, xmm1
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x14016f848
add rax, r11
add rax, 0x10
add r11, 0x10
jmp 0x14016f678
neg r12
shl r12, 5
mov rax, qword [rcx + r12 - 8]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rcx + r12 - 0x18]
movaps xmmword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0x38]
mov qword [rcx + r12 - 0x18], rax
mov rax, qword [rsp + 0x60]
mov qword [rcx + r12 - 0x10], rax
mov qword [rcx + r12 - 8], r14
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x14016f21d
mov rcx, qword [rsp + 0x50]
call sub.KERNEL32.dll_CloseHandle
lock dec qword [rdi]
jne 0x14016f764
mov rcx, qword [rsp + 0x40]
call fcn.14016e350
mov rax, qword [rsp + 0x48]
lock dec qword [rax]
jne 0x14016f21d
lea rcx, [rsp + 0x48]
call fcn.14000e080
jmp 0x14016f21d
mov rdi, qword [r15]
mov r14, qword [r15 + 8]
mov rcx, rdi
call qword [r14]
cmp qword [r14 + 8], 0
je 0x14016f7b2
cmp qword [r14 + 0x10], 0x11
jb 0x14016f7a1
mov rdi, qword [rdi - 8]
mov rcx, qword [0x140279280]
xor edx, edx
mov r8, rdi
call fcn.1401abdbc
mov rcx, qword [0x140279280]
xor edx, edx
mov r8, r15
call fcn.1401abdbc
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
mov rcx, qword [rsp + 0x60]
lock dec qword [rcx]
jne 0x14016f7e7
lea rcx, [rsp + 0x40]
mov rdi, rax
call fcn.14000e080
mov rax, rdi
or rax, 2
lock dec qword [rbx]
jne 0x14016f7ff
mov rcx, rbx
mov rdi, rax
call fcn.14016e350
mov rax, rdi
mov rdi, rax
mov rcx, rax
call fcn.140074110
cmp al, 0xd
jne 0x14016f826
mov rax, qword [rsi + 0xf8]
test rax, rax
mov rdx, rdi
jne 0x14016f21d
jmp 0x14016f131
mov rdx, rdi
jmp 0x14016f131
lea rcx, [rsi + 0x68]
mov rdx, r15
mov r8, r12
mov r15, rax
call fcn.14016fda0
mov rax, r15
jmp 0x14016f649
movzx eax, byte [rcx + r9]
test al, al
js 0x14016f863
movdqa xmm0, xmmword [rcx]
pmovmskb eax, xmm0
tzcnt r9d, eax
movzx eax, byte [rcx + r9]
and al, 1
movzx eax, al
sub qword [rsi + 0x78], rax
lea rax, [r9 - 0x10]
and rax, r8
mov byte [rcx + r9], dl
mov byte [rcx + rax + 0x10], dl
inc qword [rsi + 0x80]
shl r9, 5
mov rax, rcx
sub rax, r9
neg r9
mov qword [rcx + r9 - 0x20], rdi
mov rcx, qword [rsp + 0x38]
mov qword [rax - 0x18], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rax - 0x10], rcx
mov qword [rax - 8], r14
jmp 0x14016f21d
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x14020ff90]
mov edx, 0x27
call fcn.140046f60
lea rcx, str.assertion_failed:_shared.shutdown_tx.is_some___home_dreamingcodes_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tokio_1.38.0_src_runtime_blocking_pool.rs
lea r8, [0x140210160]
mov edx, 0x2e
call fcn.140046f60
mov ecx, 8
mov edx, 0x30
call fcn.140041910
mov ecx, 8
mov edx, 0x38
call fcn.140041910
mov ecx, 8
mov edx, 0x10
call fcn.140041910
ud2
add rcx, 0x10
call fcn.140148800
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdx
lea rax, str._rustc_129f3b9964af4d4a709d1383930ade12dfe7c081library_std_src_threadmod.rs
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x14020d9e8]
lea r8, [rsp + 0x40]
mov edx, 0x2f
call fcn.140048d20
lock dec qword [r12]
jne 0x14016f963
mov rcx, r12
call fcn.1401671d0
lea rax, str.library_std_srcio_stdio.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_129f3b9964af4d4a709d1383930ade12dfe7c081library_std_src_threadlocal.rs
lea r9, [0x14020a520]
lea r8, [rsp + 0x68]
mov edx, 0x46
call fcn.140048d20
mov rsi, rax
cmp qword [r14 + 8], 0
je 0x14016f9b2
cmp qword [r14 + 0x10], 0x11
jb 0x14016f9a1
mov rdi, qword [rdi - 8]
mov rcx, qword [0x140279280]
xor edx, edx
mov r8, rdi
call fcn.1401abdbc
mov rcx, qword [0x140279280]
xor edx, edx
mov r8, r15
call fcn.1401abdbc
mov rcx, rsi
call fcn.1401ac490
mov rsi, rax
lock dec qword [r12]
jne 0x14016f9f7
mov rcx, r12
call fcn.1401671d0
mov rcx, rsi
call fcn.1401ac490
mov rsi, rax
lea rdx, [0x14020d950]
mov rcx, r13
call fcn.140147a60
mov rcx, rsi
call fcn.1401ac490
call fcn.14004a090
int3