Function at 0x1401042e0
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 0x14010434c
cmp byte [rsi + 0xcc], 0
je 0x14010436a
lock sub qword [rdx], 0x40
jb 0x140104ba6
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 0x140104b6d
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.1400618d0
mov rdx, rbx
mov r8, rdi
cmp byte [rsi + 0xcc], 0
jne 0x14010430a
mov rcx, qword [rsi + 0x68]
mov rax, qword [rsi + 0x80]
cmp rax, rcx
jne 0x14010439a
lea rcx, [rsi + 0x68]
mov rdi, r8
mov rbx, rdx
call fcn.140104e90
mov rdx, rbx
mov r8, rdi
mov rcx, qword [rsi + 0x68]
mov rax, qword [rsi + 0x80]
mov r9, qword [rsi + 0x78]
add r9, rax
xor r10d, r10d
cmp r9, rcx
cmovae r10, rcx
sub r9, r10
mov rcx, qword [rsi + 0x70]
shl r9, 4
mov qword [rcx + r9], rdx
mov byte [rcx + r9 + 8], 1
inc rax
mov qword [rsi + 0x80], rax
lock inc qword [rsi + 0x110]
mov rax, qword [rsi + 0x108]
test rax, rax
je 0x14010440d
lock dec qword [rsi + 0x108]
inc dword [rsi + 0xc8]
mov rdx, qword [rsi + 0xd0]
test rdx, rdx
je 0x140104b5d
lea rcx, [rsi + 0xd0]
call fcn.140060420
jmp 0x140104b5d
mov rax, qword [rsi + 0x100]
cmp rax, qword [rsi + 0xf8]
je 0x140104b5d
mov rax, qword [rsi + 0xb8]
test rax, rax
je 0x140104c0f
lock inc qword [rax]
jle 0x140104c5f
mov rax, qword [rsi + 0xb8]
mov qword [rsp + 0x80], rax
mov rdi, qword [rsi + 0xc0]
mov r14, 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 + 0x30]
call qword [r8 + 0x28]
mov rax, qword [rsi + 0x10]
cmp rax, 1
jne 0x14010448a
mov rbx, qword [rsi + 0x18]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov edx, 1
mov ecx, 1
lock xadd qword [rbp], rcx
test r14b, 1
je 0x1401044b9
test rcx, rcx
jns 0x1401044c4
jmp 0x140104c5f
test rcx, rcx
js 0x140104c5f
xor edx, edx
mov qword [rsp + 0x70], rdx
movabs r14, 0x8000000000000000
test al, al
mov qword [rsp + 0x78], rbp
jne 0x14010458b
mov rbx, qword [0x1401b2158]
test rbx, rbx
je 0x1401044f4
dec rbx
jmp 0x14010458b
lea rdx, str.RUST_MIN_STACK__
lea rcx, [rsp + 0x30]
mov r8d, 0xe
call fcn.1400fd0e0
mov rbp, qword [rsp + 0x30]
cmp rbp, r14
jne 0x14010451c
mov ebx, 0x200000
jmp 0x140104580
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x68], rdx
call fcn.14001be80
test byte [rsp + 0x50], 1
je 0x140104543
mov ebx, 0x200000
jmp 0x140104568
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
lea rcx, [rsp + 0x50]
call fcn.140020730
cmp byte [rsp + 0x50], 0
mov ebx, 0x200000
jne 0x140104568
mov rbx, qword [rsp + 0x58]
test rbp, rbp
je 0x140104580
mov rcx, qword [0x1401b2100]
xor edx, edx
mov r8, qword [rsp + 0x68]
call fcn.14011d4ec
lea rax, [rbx + 1]
mov qword [0x1401b2158], rax
mov rax, qword [0x1401b20e0]
nop word cs:[rax + rax]
cmp rax, 0xffffffffffffffff
je 0x140104ba1
lea rbp, [rax + 1]
lock cmpxchg qword [0x1401b20e0], rbp
jne 0x1401045a0
cmp r13, r14
jne 0x1401045f9
movzx eax, byte [0x1401b2168]
mov edx, 0x30
xor ecx, ecx
call fcn.1400ff580
test rax, rax
je 0x140104c00
mov r14, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x18], 0
jmp 0x140104718
cmp r15, 0xf
ja 0x140104628
test r15, r15
je 0x1401046c3
xor ecx, ecx
nop word [rax + rax]
cmp byte [r12 + rcx], 0
je 0x140104bc1
inc rcx
cmp r15, rcx
jne 0x140104610
jmp 0x1401046c3
lea rax, [r12 + 7]
and rax, 0xfffffffffffffff8
sub rax, r12
jne 0x14010463e
lea rcx, [r15 - 0x10]
xor eax, eax
jmp 0x14010465c
xor ecx, ecx
cmp byte [r12 + rcx], 0
je 0x140104bc1
inc rcx
cmp rax, rcx
jne 0x140104640
lea rcx, [r15 - 0x10]
cmp rax, rcx
ja 0x14010469f
movabs rdx, 0x8080808080808080
movabs r8, 0x101010101010100
mov r9, qword [r12 + rax]
mov r10, qword [r12 + rax + 8]
mov r11, r8
sub r11, r10
or r11, r10
mov r10, r8
sub r10, r9
or r10, r9
and r10, rdx
and r10, r11
cmp r10, rdx
jne 0x14010469f
add rax, 0x10
cmp rax, rcx
jbe 0x140104670
mov rdx, r15
sub rdx, rax
je 0x1401046c3
lea r8, [r12 + rax]
xor ecx, ecx
nop dword [rax]
cmp byte [r8 + rcx], 0
je 0x140104bbe
inc rcx
cmp rdx, rcx
jne 0x1401046b0
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r15
lea rcx, [rsp + 0x30]
call fcn.140017820
mov r15, rax
mov r12, rdx
movzx eax, byte [0x1401b2168]
mov edx, 0x30
xor ecx, ecx
call fcn.1400ff580
test rax, rax
je 0x140104c50
mov r14, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x18], r15
mov qword [rax + 0x20], r12
mov qword [r14 + 0x10], rbp
mov byte [r14 + 0x28], 0
lock inc qword [r14]
jle 0x140104c5f
movzx eax, byte [0x1401b2168]
mov edx, 0x30
xor ecx, ecx
call fcn.1400ff580
test rax, rax
je 0x140104c00
mov r12, rax
mov qword [r12], 1
mov qword [r12 + 8], 1
pxor xmm0, xmm0
movdqu xmmword [r12 + 0x10], xmm0
lock inc qword [r12]
jle 0x140104c5f
mov r15, r12
movzx eax, byte [0x1401b2070]
test al, al
je 0x1401047d4
mov byte [0x1401b2070], 1
call fcn.1400fe630
test rax, rax
je 0x140104c70
mov r13, qword [rax]
mov qword [rax], 0
test r13, r13
je 0x1401047d4
lock inc qword [r13]
jle 0x140104c5f
mov byte [0x1401b2070], 1
call fcn.1400fe630
test rax, rax
je 0x140104c61
mov rcx, qword [rax]
mov qword [rax], r13
add r12, 0x10
test rcx, rcx
jne 0x14010481a
jmp 0x140104825
movzx eax, byte [0x1401b2070]
test al, al
je 0x14010480c
mov byte [0x1401b2070], 1
call fcn.1400fe630
test rax, rax
je 0x140104c70
mov rcx, qword [rax]
mov qword [rax], 0
xor r13d, r13d
add r12, 0x10
test rcx, rcx
jne 0x14010481a
jmp 0x140104825
xor ecx, ecx
xor r13d, r13d
add r12, 0x10
test rcx, rcx
je 0x140104825
lock dec qword [rcx]
jne 0x140104825
call fcn.140104f30
mov rcx, qword [r12]
test rcx, rcx
je 0x140104839
lock inc qword [rcx + 0x20]
jle 0x140104c47
movzx eax, byte [0x1401b2168]
mov edx, 0x40
xor ecx, ecx
call fcn.1400ff580
test rax, rax
je 0x140104c27
mov rbp, rax
mov qword [rax], 1
mov qword [rax + 8], r14
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r13
mov rax, qword [rsp + 0x70]
mov qword [rbp + 0x20], rax
mov rax, qword [rsp + 0x78]
mov qword [rbp + 0x28], rax
mov rax, qword [rsp + 0x80]
mov qword [rbp + 0x30], rax
mov qword [rbp + 0x38], rdi
movzx eax, byte [0x1401b2168]
mov edx, 0x10
xor ecx, ecx
call fcn.1400ff580
test rax, rax
je 0x140104c36
mov r12, rax
mov qword [rax], rbp
lea rax, [0x14017b570]
mov qword [r12 + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x1400ff4d0]
xor ecx, ecx
mov rdx, rbx
mov r9, r12
call sub.kernel32.dll_CreateThread
test rax, rax
je 0x140104a52
mov rbx, rax
lock inc qword [rsi + 0x100]
inc qword [rsi + 0xc0]
mov r12, qword [rsi + 0xa8]
mov r13, qword [rsi + 0xb0]
mov rcx, r12
mov rdx, r13
mov r8, rdi
call fcn.140104f80
cmp qword [rsi + 0x98], 0
je 0x140104b84
mov rdx, qword [rsi + 0x88]
mov r8, qword [rsi + 0x90]
mov rcx, rax
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r10, [rdx - 0x28]
xor r11d, r11d
pcmpeqd xmm1, xmm1
xor r12d, r12d
and rax, r8
movdqu xmm2, xmmword [rdx + rax]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r13d, xmm3
test r13d, r13d
je 0x1401049a6
nop word cs:[rax + rax]
tzcnt ebp, r13d
add rbp, rax
and rbp, r8
neg rbp
lea rbp, [rbp + rbp*4]
cmp qword [r10 + rbp*8], rdi
je 0x1401049ec
lea ebp, [r13 - 1]
and bp, r13w
mov r13d, ebp
jne 0x140104980
cmp r12, 1
mov r12d, 1
je 0x1401049cc
pmovmskb r9d, xmm2
xor r12d, r12d
test r9d, r9d
setne r12b
tzcnt r9d, r9d
add r9, rax
and r9, r8
pcmpeqb xmm2, xmm1
pmovmskb ebp, xmm2
test ebp, ebp
jne 0x140104afc
add rax, r11
add rax, 0x10
add r11, 0x10
jmp 0x14010495a
mov r13, qword [rdx + rbp*8 - 0x20]
mov r12, qword [rdx + rbp*8 - 0x18]
mov rdi, qword [rdx + rbp*8 - 0x10]
mov rcx, qword [rdx + rbp*8 - 8]
mov qword [rdx + rbp*8 - 0x20], 1
mov qword [rdx + rbp*8 - 0x18], r14
mov qword [rdx + rbp*8 - 0x10], r15
mov qword [rdx + rbp*8 - 8], rbx
cmp r13, 2
je 0x140104b5d
call sub.kernel32.dll_CloseHandle
test r13, r13
je 0x140104a3b
lock dec qword [r12]
jne 0x140104a3b
mov rcx, r12
call fcn.1400039f0
lock dec qword [rdi]
jne 0x140104b5d
mov rcx, rdi
call fcn.1400034d0
jmp 0x140104b5d
mov rdi, qword [r12]
mov rbx, qword [r12 + 8]
mov rax, qword [rbx]
test rax, rax
je 0x140104a68
mov rcx, rdi
call rax
cmp qword [rbx + 8], 0
je 0x140104a8b
cmp qword [rbx + 0x10], 0x11
jb 0x140104a7a
mov rdi, qword [rdi - 8]
mov rcx, qword [0x1401b2100]
xor edx, edx
mov r8, rdi
call fcn.14011d4ec
mov rcx, qword [0x1401b2100]
xor edx, edx
mov r8, r12
call fcn.14011d4ec
call sub.kernel32.dll_GetLastError
shl rax, 0x20
lock dec qword [r15]
jne 0x140104ab9
mov rcx, r15
mov rdi, rax
call fcn.1400034d0
mov rax, rdi
or rax, 2
lock dec qword [r14]
jne 0x140104ad1
mov rcx, r14
mov rdi, rax
call fcn.1400039f0
mov rax, rdi
mov rdi, rax
mov rcx, rax
call fcn.140029e40
cmp al, 0xd
jne 0x140104af4
mov rax, qword [rsi + 0x100]
test rax, rax
mov rdx, rdi
jne 0x140104b5d
jmp 0x140104321
mov rdx, rdi
jmp 0x140104321
movzx eax, byte [rdx + r9]
test al, al
js 0x140104b17
movdqa xmm0, xmmword [rdx]
pmovmskb eax, xmm0
tzcnt r9d, eax
movzx eax, byte [rdx + r9]
and al, 1
movzx eax, al
sub qword [rsi + 0x98], rax
lea rax, [r9 - 0x10]
and rax, r8
mov byte [rdx + r9], cl
mov byte [rdx + rax + 0x10], cl
inc qword [rsi + 0xa0]
neg r9
lea rax, [r9 + r9*4]
mov qword [rdx + rax*8 - 0x28], rdi
mov qword [rdx + rax*8 - 0x20], 1
mov qword [rdx + rax*8 - 0x18], r14
mov qword [rdx + rax*8 - 0x10], r15
mov qword [rdx + rax*8 - 8], rbx
xor edi, edi
mov al, 1
lock cmpxchg byte [rsi + 0x40], dil
je 0x140104335
add rsi, 0x40
mov rcx, rsi
mov rsi, rdx
call fcn.1400615d0
mov rdx, rsi
jmp 0x140104335
lea rcx, [rsi + 0x88]
mov rdx, r12
mov r8, r13
mov r12, rax
call fcn.140105100
mov rax, r12
jmp 0x140104925
call fcn.1400db720
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x14017db10]
mov edx, 0x27
call fcn.14001b280
add rcx, rax
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], rcx
lea rax, str.std_src_threadmod.rsfailed_to_generate_unique_thread_ID:_bitspace_exhausted
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x140178718]
lea r8, [rsp + 0x30]
mov edx, 0x2f
call fcn.14001cec0
jmp 0x140104c5f
mov ecx, 8
mov edx, 0x30
call fcn.140017699
lea rcx, str.assertion_failed:_shared.shutdown_tx.is_some__
lea r8, str.src_index.crates.io_6f17d22bba15001f_tokio_1.41.0_src_runtime_blocking_pool.rs
mov edx, 0x2e
call fcn.14001b280
mov ecx, 8
mov edx, 0x40
call fcn.140017699
mov ecx, 8
mov edx, 0x10
call fcn.140017699
jmp 0x140104c5f
add rcx, 0x10
call fcn.1400db9d0
mov ecx, 8
mov edx, 0x30
call fcn.140017699
ud2
lock dec qword [r13]
jne 0x140104c70
mov rcx, r13
call fcn.1400fe710
lea rax, str.std_srcio_stdio.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_759e07f063fb8e6306ff1bdaeb70af56a878b415library_std_src_threadlocal.rs
lea r9, [0x14017b5e8]
lea r8, [rsp + 0x30]
mov edx, 0x46
call fcn.14001cec0
mov rsi, rax
cmp qword [rbx + 8], 0
je 0x140104cbf
cmp qword [rbx + 0x10], 0x11
jb 0x140104cae
mov rdi, qword [rdi - 8]
mov rcx, qword [0x1401b2100]
xor edx, edx
mov r8, rdi
call fcn.14011d4ec
mov rcx, qword [0x1401b2100]
xor edx, edx
mov r8, r12
jmp 0x140104d33
call fcn.14011d4ec
mov rcx, rsi
call fcn.14011da00
int3