Function at 0x14024a330
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov r14, r8
mov rdi, rcx
mov qword [rsp + 0x88], rdx
mov byte [rsp + 0x90], 1
lea rsi, [rcx + 0x40]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x40], cl
je 0x14024a370
mov rcx, rsi
call fcn.14012a8f0
cmp byte [rdi + 0xc4], 0
je 0x14024a3c5
mov rbx, qword [rsp + 0x88]
lock sub qword [rbx], 0x40
jb 0x14024ac01
mov rax, qword [rbx + 0x10]
mov rcx, rbx
call qword [rax + 0x30]
xor ebx, ebx
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi], cl
mov edi, 1
jne 0x14024aafa
mov rax, rdi
mov rdx, rbx
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x88]
movzx ebp, byte [rsp + 0x90]
mov qword [rsp + 0x30], rbx
mov byte [rsp + 0x38], bpl
mov rcx, qword [rdi + 0x48]
mov rax, qword [rdi + 0x60]
cmp rax, rcx
jne 0x14024a3fd
lea rcx, [rdi + 0x48]
call fcn.14024b370
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], bpl
inc rax
mov qword [rdi + 0x60], rax
lock inc qword [rdi + 0x108]
mov rax, qword [rdi + 0x100]
test rax, rax
je 0x14024a46f
lock dec qword [rdi + 0x100]
inc dword [rdi + 0xc0]
mov rdx, qword [rdi + 0xc8]
test rdx, rdx
je 0x14024aaeb
add rdi, 0xc8
mov rcx, rdi
call fcn.1401294c0
jmp 0x14024aaeb
mov rax, qword [rdi + 0xf8]
cmp rax, qword [rdi + 0xf0]
je 0x14024aaeb
mov rbp, qword [rdi + 0x98]
test rbp, rbp
je 0x14024ac5f
lock inc qword [rbp]
jle 0x14024af66
mov rbx, qword [rdi + 0xb8]
mov r13, qword [r14]
mov r12, qword [r14 + 8]
mov qword [rsp + 0xa0], rbp
mov rax, qword [rdi + 0x30]
mov r8, qword [rdi + 0x38]
mov rcx, qword [r8 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rcx + rax]
add rdx, 0x10
lea rcx, [rsp + 0x30]
call qword [r8 + 0x28]
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14024a4e7
mov r8, qword [rdi + 0x18]
jmp 0x14024a4e7
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x80], rcx
mov r14, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov ecx, 1
mov edx, 1
lock xadd qword [r12], rdx
test r13, r13
je 0x14024a51d
test rdx, rdx
jns 0x14024a528
jmp 0x14024af66
test rdx, rdx
js 0x14024af66
xor ecx, ecx
movabs r13, 0x8000000000000001
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xb8], rbp
test rax, rax
mov r12, r8
jne 0x14024a641
mov r12, qword [0x14037f2a0]
test r12, r12
je 0x14024a572
dec r12
jmp 0x14024a641
lea rdx, str.RUST_MIN_STACKfatal_runtime_error:_assertion_failed:_thread_info.stack_guard.get__.is_none____thread_info.thread.get__.is_none___n
lea rcx, [rsp + 0x30]
mov r8d, 0xe
call fcn.14021b440
mov rbp, qword [rsp + 0x30]
lea rax, [r13 - 1]
cmp rbp, rax
je 0x14024a62f
mov r12, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
lea rcx, [rsp + 0xc8]
mov rdx, r12
call fcn.1400abce0
cmp qword [rsp + 0xc8], 0
mov r10b, 1
mov qword [rsp + 0x98], r12
jne 0x14024a609
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x14024a609
mov r8, qword [rsp + 0xd0]
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x14024a5ff
cmp eax, 0x2b
jne 0x14024ab07
dec rcx
je 0x14024a609
inc r8
jmp 0x14024ab07
cmp rcx, 1
jne 0x14024ab07
test rbp, rbp
je 0x14024a62a
mov rcx, qword [0x14037f2d0]
xor edx, edx
mov r8, qword [rsp + 0x98]
mov ebp, r10d
call fcn.1402699cc
mov r10d, ebp
test r10b, r10b
je 0x14024a635
mov r12d, 0x200000
lea rax, [r12 + 1]
mov qword [0x14037f2a0], rax
dec r13
mov rax, qword [rsp + 0x80]
cmp rax, r13
jne 0x14024a655
xor ecx, ecx
jmp 0x14024a6ba
mov r13, rax
cmp r15, 0x10
jae 0x14024a67b
test r15, r15
je 0x14024a68a
xor eax, eax
xor edx, edx
cmp byte [r14 + rdx], 0
je 0x14024a690
inc rdx
cmp r15, rdx
jne 0x14024a667
mov rdx, r15
jmp 0x14024a695
xor ecx, ecx
mov rdx, r14
mov r8, r15
call fcn.1400b02a0
jmp 0x14024a695
xor edx, edx
xor eax, eax
jmp 0x14024a695
mov eax, 1
test rax, rax
jne 0x14024ad05
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r15
lea rcx, [rsp + 0x30]
call fcn.140054d10
mov rcx, rax
call fcn.1401f8b50
mov r14, rax
lock inc qword [rax]
jle 0x14024af66
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x30], 1
mov qword [rsp + 0x38], 1
movzx eax, byte [0x14037f348]
mov rcx, qword [0x14037f2d0]
test rcx, rcx
jne 0x14024a713
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14024ac1e
mov rcx, rax
mov qword [0x14037f2d0], rax
mov r8d, 0x30
xor edx, edx
call fcn.1402699c4
test rax, rax
je 0x14024ac1e
mov r15, rax
movdqu xmm0, xmmword [rsp + 0x30]
movdqu xmm1, xmmword [rsp + 0x40]
movdqu xmm2, xmmword [rsp + 0x50]
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
lock inc qword [rax]
jle 0x14024af66
movzx eax, byte [0x14037f238]
mov bpl, 1
test al, al
je 0x14024a797
mov byte [0x14037f238], 1
call fcn.14021f580
test rax, rax
je 0x14024ac7c
mov r13, qword [rax]
mov qword [rax], 0
test r13, r13
je 0x14024a797
lock inc qword [r13]
jle 0x14024af66
xor ebp, ebp
jmp 0x14024a79a
xor r13d, r13d
mov rcx, r13
call fcn.14021f4e0
test rax, rax
je 0x14024a7b5
lock dec qword [rax]
jne 0x14024a7b5
mov rcx, rax
call fcn.14024b410
movdqu xmm0, xmmword [rsp + 0xa8]
movdqu xmm1, xmmword [rsp + 0xb8]
movdqu xmmword [rsp + 0x58], xmm1
movdqu xmmword [rsp + 0x48], xmm0
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r15
mov rcx, qword [r15 + 0x10]
test rcx, rcx
je 0x14024a7f6
lock inc qword [rcx + 0x18]
jle 0x14024acaa
movzx eax, byte [0x14037f348]
mov rcx, qword [0x14037f2d0]
test rcx, rcx
jne 0x14024a821
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14024ac37
mov rcx, rax
mov qword [0x14037f2d0], rax
mov r8d, 0x38
xor edx, edx
call fcn.1402699c4
test rax, rax
je 0x14024ac37
mov rbp, rax
mov rax, qword [rsp + 0x60]
mov qword [rbp + 0x30], rax
movdqu xmm0, xmmword [rsp + 0x30]
movdqu xmm1, xmmword [rsp + 0x40]
movdqu xmm2, xmmword [rsp + 0x50]
movdqu xmmword [rbp + 0x20], xmm2
movdqu xmmword [rbp + 0x10], xmm1
movdqu xmmword [rbp], xmm0
movzx eax, byte [0x14037f348]
mov rcx, qword [0x14037f2d0]
test rcx, rcx
jne 0x14024a88f
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14024ac4b
mov rcx, rax
mov qword [0x14037f2d0], rax
mov r8d, 0x10
xor edx, edx
call fcn.1402699c4
test rax, rax
je 0x14024ac4b
mov r13, rax
mov qword [rax], rbp
lea rax, fcn.14024b460
mov qword [r13 + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x140221410]
xor ecx, ecx
mov rdx, r12
mov r9, r13
call sub.kernel32.dll_CreateThread
test rax, rax
je 0x14024aa43
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x78], rax
lock inc qword [rdi + 0xf8]
inc qword [rdi + 0xb8]
mov rcx, qword [rdi + 0x88]
mov rdx, qword [rdi + 0x90]
mov r8, rbx
call fcn.14024b570
mov r14, rax
cmp qword [rdi + 0x78], 0
jne 0x14024a932
lea rcx, [rdi + 0x68]
lea rdx, [rdi + 0x88]
call fcn.14024b6f0
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 word [rax + rax]
test r12w, r12w
je 0x14024a9b1
lea ebp, [r12 - 1]
and ebp, r12d
tzcnt r15d, 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 0x14024a980
jmp 0x14024a9f7
cmp r11, 1
mov r11d, 1
je 0x14024a9d7
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 0x14024ab41
add r14, r10
add r14, 0x10
add r10, 0x10
jmp 0x14024a961
neg r15
shl r15, 5
mov rcx, qword [rax + r15 - 8]
mov qword [rsp + 0x40], rcx
movups xmm0, xmmword [rax + r15 - 0x18]
movaps xmmword [rsp + 0x30], 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 + 0x30], 0
je 0x14024aaeb
lea rcx, [rsp + 0x30]
call fcn.140248820
jmp 0x14024aaeb
mov rbx, qword [r13]
mov r12, qword [r13 + 8]
mov rcx, rbx
call qword [r12]
cmp qword [r12 + 8], 0
je 0x14024aa77
cmp qword [r12 + 0x10], 0x11
jb 0x14024aa66
mov rbx, qword [rbx - 8]
mov rcx, qword [0x14037f2d0]
xor edx, edx
mov r8, rbx
call fcn.1402699cc
mov rcx, qword [0x14037f2d0]
xor edx, edx
mov r8, r13
call fcn.1402699cc
call sub.kernel32.dll_GetLastError
mov ebx, eax
lock dec qword [r15]
jne 0x14024aa9d
mov rcx, r15
call fcn.1402488a0
shl rbx, 0x20
or rbx, 2
lock dec qword [r14]
jne 0x14024aab3
mov rcx, r14
call fcn.14013adf0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x68], 0
mov rcx, rbx
call fcn.14024afb0
cmp al, 0xd
jne 0x14024a398
mov rax, qword [rdi + 0xf8]
test rax, rax
je 0x14024a398
lea rcx, [rsp + 0x70]
call fcn.140013140
xor edi, edi
mov al, 1
lock cmpxchg byte [rsi], dil
je 0x14024a3ab
mov rcx, rsi
call fcn.14012a570
jmp 0x14024a3ab
cmp rcx, 0x11
jae 0x14024abba
xor eax, eax
xor r12d, r12d
movzx edx, byte [r8 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x14024a609
lea r9, [r12 + r12*4]
mov edx, edx
lea r12, [rdx + r9*2]
inc rax
cmp rcx, rax
jne 0x14024ab16
xor r10d, r10d
jmp 0x14024a609
movzx r9d, byte [rax + r8]
test r9b, r9b
js 0x14024ab5e
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 [r9 + rax + 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 0x14024a3ab
jmp 0x14024aafa
xor r9d, r9d
mov r10d, 0xa
xor r12d, r12d
cmp rcx, r9
je 0x14024ab39
movzx r11d, byte [r8 + r9]
mov rax, r12
mul r10
seto dl
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x14024abf9
test dl, dl
jne 0x14024abf9
mov r12, rax
mov eax, r11d
inc r9
add r12, rax
jae 0x14024abc6
mov r10b, 1
jmp 0x14024a609
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x140344738]
mov edx, 0x27
call fcn.1400a7990
jmp 0x14024af66
lea rbx, [rsp + 0x40]
mov ecx, 8
mov edx, 0x30
call fcn.140054b50
jmp 0x14024af66
mov ecx, 8
mov edx, 0x38
call fcn.140054b50
jmp 0x14024af66
mov ecx, 8
mov edx, 0x10
call fcn.140054b50
jmp 0x14024af66
lea rcx, str.assertion_failed:_shared.shutdown_tx.is_some___usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_tokio_1.38.0_src_runtime_blocking_pool.rs
lea r8, [0x140344900]
mov edx, 0x2e
call fcn.1400a7990
jmp 0x14024af66
lea rax, str.library_std_src_threadlocal.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_std_src_threadlocal.rs
lea r9, [0x14033dea0]
lea r8, [rsp + 0x30]
mov edx, 0x46
call fcn.1400aced0
jmp 0x14024af66
add rcx, 0x10
xor edx, edx
call fcn.1401fbda0
lea rax, str.too_many_running_threads_in_thread_scope
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], 1
lea rax, [0x140347980]
mov qword [rsp + 0xd8], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0xe0], xmm0
lea rdx, str.library_std_src_thread_scoped.rs_b
lea rcx, [rsp + 0xc8]
call fcn.1400a6c30
jmp 0x14024af66
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], rdx
lea rax, [0x140341e08]
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x140342058]
lea r8, [rsp + 0x30]
mov edx, 0x2f
call fcn.1400aced0
jmp 0x14024af66
ud2