Function at 0x14018da00
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
mov r14, r8
mov rbx, rdx
mov rdi, rcx
lea rsi, [rcx + 0x40]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x40], cl
je 0x14018da33
mov rcx, rsi
call fcn.140079ca0
cmp byte [rdi + 0xc4], 0
je 0x14018da7d
lock sub qword [rbx], 0x40
jb 0x14018e288
mov rax, qword [rbx + 0x10]
mov rcx, rbx
call qword [rax + 0x30]
xor edx, edx
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi], cl
mov edi, 1
jne 0x14018e1d2
mov rax, rdi
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rdi + 0x48]
mov rax, qword [rdi + 0x60]
cmp rax, rcx
jne 0x14018da9b
lea rcx, [rdi + 0x48]
call fcn.14018e7f0
mov rcx, qword [rdi + 0x48]
mov rax, qword [rdi + 0x60]
mov rdx, qword [rdi + 0x58]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rdi + 0x50]
shl rdx, 4
mov qword [rcx + rdx], rbx
mov byte [rcx + rdx + 8], 1
inc rax
mov qword [rdi + 0x60], rax
lock inc qword [rdi + 0x108]
mov rax, qword [rdi + 0x100]
test rax, rax
je 0x14018db1b
lock dec qword [rdi + 0x100]
mov eax, dword [rdi + 0xc0]
inc eax
je 0x14018e266
mov dword [rdi + 0xc0], eax
mov rdx, qword [rdi + 0xc8]
test rdx, rdx
je 0x14018e1c3
add rdi, 0xc8
mov rcx, rdi
call fcn.140078690
jmp 0x14018e1c3
mov rax, qword [rdi + 0xf8]
cmp rax, qword [rdi + 0xf0]
je 0x14018e1c3
mov r12, qword [rdi + 0x98]
test r12, r12
je 0x14018e2a5
lock inc qword [r12]
jle 0x14018e3b5
mov rbx, qword [rdi + 0xb8]
mov r13, qword [r14]
mov rbp, qword [r14 + 8]
mov qword [rsp + 0xf0], r12
mov rax, qword [rdi + 0x30]
mov r8, qword [rdi + 0x38]
mov rcx, qword [r8 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rax + rcx]
add rdx, 0x10
lea rcx, [rsp + 0x90]
call qword [r8 + 0x28]
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14018db96
mov r8, qword [rdi + 0x18]
jmp 0x14018db96
mov rcx, qword [rsp + 0x90]
mov qword [rsp + 0x88], rcx
mov r14, qword [rsp + 0x98]
mov r15, qword [rsp + 0xa0]
mov ecx, 1
mov edx, 1
lock xadd qword [rbp], rdx
test r13, r13
je 0x14018dbd5
test rdx, rdx
jns 0x14018dbe0
jmp 0x14018e3b5
test rdx, rdx
js 0x14018e3b5
xor ecx, ecx
movabs r13, 0x8000000000000001
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rbp
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x108], r12
mov qword [rsp + 0x80], 0
test rax, rax
mov r12, r8
jne 0x14018dcf5
mov r12, qword [0x1402f9128]
test r12, r12
je 0x14018dc36
dec r12
jmp 0x14018dcf5
lea rdx, str.RUST_MIN_STACK___rustc_129f3b9964af4d4a709d1383930ade12dfe7c081librarycore_src_nummod.rs
lea rcx, [rsp + 0x38]
mov r8d, 0xe
call fcn.1401829a0
mov r12, qword [rsp + 0x38]
lea rax, [r13 - 1]
cmp r12, rax
jne 0x14018dc66
mov r12d, 0x200000
jmp 0x14018dce9
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
lea rcx, [rsp + 0xd0]
mov qword [rsp + 0xe8], rdx
call fcn.14002a090
cmp qword [rsp + 0xd0], 0
je 0x14018dc97
mov ebp, 0x200000
jmp 0x14018dccb
mov rdx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xe0]
lea rcx, [rsp + 0xd0]
call fcn.14002f280
cmp byte [rsp + 0xd0], 0
mov ebp, 0x200000
jne 0x14018dccb
mov rbp, qword [rsp + 0xd8]
test r12, r12
je 0x14018dce6
mov rcx, qword [0x1402f90f8]
xor edx, edx
mov r8, qword [rsp + 0xe8]
call fcn.1401d02bc
mov r12, rbp
lea rax, [r12 + 1]
mov qword [0x1402f9128], rax
dec r13
mov rax, qword [rsp + 0x88]
cmp rax, r13
jne 0x14018dd1a
mov qword [rsp + 0x38], 2
lea rcx, [rsp + 0x38]
call fcn.140162910
jmp 0x14018dd99
mov r13, rax
cmp r15, 0x10
jae 0x14018dd40
test r15, r15
je 0x14018dd4f
xor eax, eax
xor edx, edx
cmp byte [r14 + rdx], 0
je 0x14018dd55
inc rdx
cmp r15, rdx
jne 0x14018dd2c
mov rdx, r15
jmp 0x14018dd5a
xor ecx, ecx
mov rdx, r14
mov r8, r15
call fcn.14002de40
jmp 0x14018dd5a
xor edx, edx
xor eax, eax
jmp 0x14018dd5a
mov eax, 1
test rax, rax
jne 0x14018e378
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r15
lea rcx, [rsp + 0x38]
call fcn.1400259d0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x38], 1
lea rcx, [rsp + 0x38]
call fcn.140162910
mov r14, rax
lock inc qword [rax]
jle 0x14018e3b5
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 1
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 0
movzx eax, byte [0x1402f9139]
mov edx, 0x30
xor ecx, ecx
call fcn.1401860d0
test rax, rax
je 0x14018e2c2
mov r15, rax
movdqu xmm0, xmmword [rsp + 0x38]
movdqu xmm1, xmmword [rsp + 0x48]
movdqu xmm2, xmmword [rsp + 0x58]
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
lock inc qword [rax]
jle 0x14018e3b5
movzx eax, byte [0x1402f9080]
test al, al
je 0x14018de55
mov byte [0x1402f9080], 1
call fcn.140184610
test rax, rax
je 0x14018e342
mov r13, qword [rax]
mov qword [rax], 0
test r13, r13
je 0x14018de55
lock inc qword [r13]
jle 0x14018e3b5
xor ebp, ebp
jmp 0x14018de66
movzx eax, byte [0x1402f9080]
mov bpl, 1
xor r13d, r13d
test al, al
je 0x14018de91
mov byte [0x1402f9080], 1
call fcn.140184610
test rax, rax
je 0x14018e303
mov rcx, qword [rax]
mov qword [rax], r13
test rcx, rcx
je 0x14018de91
lock dec qword [rcx]
jne 0x14018de91
call fcn.14018e8d0
mov qword [rsp + 0x90], r14
mov qword [rsp + 0xa0], r13
movdqu xmm0, xmmword [rsp + 0xf8]
movdqu xmm1, xmmword [rsp + 0x108]
movdqu xmmword [rsp + 0xb8], xmm1
movdqu xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0x98], r15
mov rcx, qword [r15 + 0x10]
test rcx, rcx
je 0x14018dee1
lock inc qword [rcx + 0x18]
jle 0x14018e36d
movzx eax, byte [0x1402f9139]
mov edx, 0x38
xor ecx, ecx
call fcn.1401860d0
test rax, rax
je 0x14018e2db
mov rbp, rax
mov rax, qword [rsp + 0xc0]
mov qword [rbp + 0x30], rax
movdqu xmm0, xmmword [rsp + 0x90]
movdqu xmm1, xmmword [rsp + 0xa0]
movdqu xmm2, xmmword [rsp + 0xb0]
movdqu xmmword [rbp + 0x20], xmm2
movdqu xmmword [rbp + 0x10], xmm1
movdqu xmmword [rbp], xmm0
movzx eax, byte [0x1402f9139]
mov edx, 0x10
xor ecx, ecx
call fcn.1401860d0
test rax, rax
je 0x14018e2ef
mov r13, rax
mov qword [rax], rbp
lea rax, fcn.14018e920
mov qword [r13 + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x140185f60]
xor ecx, ecx
mov rdx, r12
mov r9, r13
call sub.kernel32.dll_CreateThread
test rax, rax
je 0x14018e10f
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], rax
lock inc qword [rdi + 0xf8]
mov rax, qword [rdi + 0xb8]
inc rax
je 0x14018e277
mov qword [rdi + 0xb8], rax
mov r15, qword [rdi + 0x88]
mov r12, qword [rdi + 0x90]
mov rcx, r15
mov rdx, r12
mov r8, rbx
call fcn.14018ea30
mov r14, rax
cmp qword [rdi + 0x78], 0
jne 0x14018dff4
lea rcx, [rdi + 0x68]
mov rdx, r15
mov r8, r12
call fcn.14018ebb0
mov rax, qword [rdi + 0x68]
mov rdx, qword [rdi + 0x70]
mov rcx, r14
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r9, [rax - 0x20]
xor r10d, r10d
pcmpeqd xmm1, xmm1
xor r11d, r11d
and r14, rdx
movdqu xmm2, xmmword [rax + r14]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r12d, xmm3
nop dword [rax]
test r12w, r12w
je 0x14018e071
tzcnt r15d, r12d
lea ebp, [r12 - 1]
and ebp, r12d
add r15, r14
and r15, rdx
mov r12, r15
shl r12, 5
mov r13, r9
sub r13, r12
mov r12d, ebp
cmp qword [r13], rbx
jne 0x14018e040
jmp 0x14018e0b7
cmp r11, 1
mov r11d, 1
je 0x14018e097
pmovmskb r8d, xmm2
xor r11d, r11d
test r8d, r8d
setne r11b
tzcnt r8d, r8d
add r8, r14
and r8, rdx
pcmpeqb xmm2, xmm1
pmovmskb ebp, xmm2
test ebp, ebp
jne 0x14018e1ed
add r14, r10
add r14, 0x10
add r10, 0x10
jmp 0x14018e023
neg r15
shl r15, 5
mov rcx, qword [rax + r15 - 8]
mov qword [rsp + 0xa0], rcx
movups xmm0, xmmword [rax + r15 - 0x18]
movaps xmmword [rsp + 0x90], xmm0
mov rcx, qword [rsp + 0x78]
mov qword [rax + r15 - 8], rcx
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rax + r15 - 0x18], xmm0
cmp qword [rsp + 0x90], 0
je 0x14018e1c3
lea rcx, [rsp + 0x90]
call fcn.14018c0f0
jmp 0x14018e1c3
mov rbx, qword [r13]
mov r12, qword [r13 + 8]
mov rcx, rbx
call qword [r12]
cmp qword [r12 + 8], 0
je 0x14018e143
cmp qword [r12 + 0x10], 0x11
jb 0x14018e132
mov rbx, qword [rbx - 8]
mov rcx, qword [0x1402f90f8]
xor edx, edx
mov r8, rbx
call fcn.1401d02bc
mov rcx, qword [0x1402f90f8]
xor edx, edx
mov r8, r13
call fcn.1401d02bc
call sub.kernel32.dll_GetLastError
lock dec qword [r15]
jne 0x14018e16d
mov rcx, r15
mov rbx, rax
call fcn.14018c250
mov rax, rbx
shl rax, 0x20
or rax, 2
lock dec qword [r14]
jne 0x14018e189
mov rcx, r14
mov rbx, rax
call fcn.14008c470
mov rax, rbx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], 0
mov rbx, rax
mov rcx, rax
call fcn.140039800
cmp al, 0xd
jne 0x14018e1e5
mov rax, qword [rdi + 0xf8]
test rax, rax
mov rdx, rbx
je 0x14018da53
lea rcx, [rsp + 0x70]
call fcn.14018b3e0
xor edi, edi
mov al, 1
lock cmpxchg byte [rsi], dil
je 0x14018da66
mov rcx, rsi
mov rsi, rdx
call fcn.1400798d0
mov rdx, rsi
jmp 0x14018da66
mov rdx, rbx
jmp 0x14018da53
movzx r9d, byte [rax + r8]
test r9b, r9b
js 0x14018e20a
movdqa xmm0, xmmword [rax]
pmovmskb r8d, xmm0
tzcnt r8d, r8d
movzx r9d, byte [rax + r8]
and r9b, 1
movzx r9d, r9b
sub qword [rdi + 0x78], r9
lea r9, [r8 - 0x10]
and r9, rdx
mov byte [rax + r8], cl
mov byte [rax + r9 + 0x10], cl
inc qword [rdi + 0x80]
shl r8, 5
mov rcx, rax
sub rcx, r8
mov qword [rcx - 0x20], rbx
neg r8
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rax + r8 - 0x18], xmm0
mov rax, qword [rsp + 0x78]
mov qword [rcx - 8], rax
xor edi, edi
mov al, 1
lock cmpxchg byte [rsi], dil
je 0x14018da66
jmp 0x14018e1d2
lea rcx, str.C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.36.0_src_runtime_blockingpool.rs
call fcn.14002f520
jmp 0x14018e3b5
lea rcx, str.C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.36.0_src_runtime_blockingpool.rs
call fcn.14002f520
jmp 0x14018e3b5
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x1402751f0]
mov edx, 0x27
call fcn.1400293d0
jmp 0x14018e3b5
lea rcx, str.assertion_failed:_shared.shutdown_tx.is_some__
lea r8, str.C:UsersUser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.36.0_src_runtime_blockingpool.rs
mov edx, 0x2e
call fcn.1400293d0
jmp 0x14018e3b5
lea rbx, [rsp + 0x48]
mov ecx, 8
mov edx, 0x30
call fcn.140025820
jmp 0x14018e3b5
mov ecx, 8
mov edx, 0x38
call fcn.140025820
jmp 0x14018e3b5
mov ecx, 8
mov edx, 0x10
call fcn.140025820
jmp 0x14018e3b5
test bpl, bpl
jne 0x14018e317
lock dec qword [r13]
jne 0x14018e317
mov rcx, r13
call fcn.140184780
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, [0x14026f2a0]
lea r8, [rsp + 0x38]
mov edx, 0x46
call fcn.14002b190
jmp 0x14018e3b5
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, [0x14026f2a0]
lea r8, [rsp + 0x38]
mov edx, 0x46
call fcn.14002b190
jmp 0x14018e3b5
add rcx, 0x10
call fcn.140166570
jmp 0x14018e3b5
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], 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, [0x1402725f8]
lea r8, [rsp + 0x38]
mov edx, 0x2f
call fcn.14002b190
ud2