Function at 0x1400fd730
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0x40], cl
jne 0x1400fd7a5
cmp byte [rsi + 0xc4], 0
je 0x1400fd7b7
lock sub qword [rdi], 0x40
jb 0x1400fe148
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [rax + 0x30]
xor edi, edi
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi + 0x40], cl
mov ebx, 1
jne 0x1400fd85c
mov rax, rbx
mov rdx, rdi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsi + 0x40]
call fcn.1400c6f20
cmp byte [rsi + 0xc4], 0
jne 0x1400fd760
mov rcx, qword [rsi + 0x50]
mov rax, qword [rsi + 0x60]
cmp rax, rcx
jne 0x1400fd7d5
lea rcx, [rsi + 0x48]
call fcn.1400fe480
mov rcx, qword [rsi + 0x50]
mov rax, qword [rsi + 0x60]
mov rdx, qword [rsi + 0x58]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rsi + 0x48]
shl rdx, 4
mov qword [rcx + rdx], rdi
mov byte [rcx + rdx + 8], 1
inc rax
mov qword [rsi + 0x60], rax
lock inc qword [rsi + 0x108]
mov rax, qword [rsi + 0x100]
test rax, rax
je 0x1400fd83d
lock dec qword [rsi + 0x100]
inc dword [rsi + 0xc0]
mov rdx, qword [rsi + 0xc8]
test rdx, rdx
je 0x1400fd84d
lea rcx, [rsi + 0xc8]
call fcn.1400c5ae0
jmp 0x1400fd84d
mov rax, qword [rsi + 0xf8]
cmp rax, qword [rsi + 0xf0]
jne 0x1400fd86d
xor ebx, ebx
mov al, 1
lock cmpxchg byte [rsi + 0x40], bl
je 0x1400fd78b
add rsi, 0x40
mov rcx, rsi
call fcn.1400c6b50
jmp 0x1400fd78b
mov rbp, qword [rsi + 0x98]
test rbp, rbp
je 0x1400fe1db
lock inc qword [rbp]
jle 0x1400fe1a4
mov rdi, qword [rsi + 0xb8]
mov r13, qword [rbx]
mov rax, qword [rbx + 8]
mov qword [rsp + 0x80], rax
mov rax, qword [rsi + 0x30]
mov r8, qword [rsi + 0x38]
mov rcx, qword [r8 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rcx + rax]
add rdx, 0x10
lea rcx, [rsp + 0x40]
call qword [r8 + 0x28]
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1400fd8d1
mov rbx, qword [rsi + 0x18]
jmp 0x1400fd8d1
mov r12, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov r8d, 1
mov ecx, 1
mov rdx, qword [rsp + 0x80]
lock xadd qword [rdx], rcx
test r13, r13
je 0x1400fd911
test rcx, rcx
js 0x1400fe1a4
test rax, rax
jne 0x1400fda8c
jmp 0x1400fd926
test rcx, rcx
js 0x1400fe1a4
xor r8d, r8d
test rax, rax
jne 0x1400fda8c
mov rbx, qword [0x1401890d0]
test rbx, rbx
je 0x1400fd93a
dec rbx
jmp 0x1400fda8c
mov r13, r8
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 + 0x40]
mov r8d, 0xe
call fcn.1400f2d00
movzx eax, byte [rsp + 0x58]
cmp al, 2
je 0x1400fda79
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
test al, al
je 0x1400fd9b3
test r8, r8
je 0x1400fda79
test r9, r9
mov qword [rsp + 0x78], rbp
je 0x1400fda5a
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x1400fda4d
cmp eax, 0x2b
jne 0x1400fe0a0
dec r9
je 0x1400fda5a
lea r10, [r8 + 1]
jmp 0x1400fe0a3
test r9, r9
je 0x1400fda46
lea rax, [r8 + r9]
mov r10, r8
jmp 0x1400fd9d8
add r10, 2
cmp rdx, rax
cmovne rdx, r10
mov r10, rdx
cmp rdx, rax
je 0x1400fd974
lea rdx, [r10 + 1]
movzx r11d, byte [r10]
test r11b, r11b
jns 0x1400fd9d0
cmp r11b, 0xe0
jb 0x1400fd9c5
cmp r11b, 0xed
jne 0x1400fda1b
cmp rdx, rax
je 0x1400fd974
lea rdx, [r10 + 2]
cmp rdx, rax
je 0x1400fd974
cmp byte [r10 + 1], 0x9f
ja 0x1400fe12c
add r10, 3
mov rdx, r10
jmp 0x1400fd9d0
add r10, 2
cmp rdx, rax
cmove r10, rdx
xor edx, edx
cmp r10, rax
setne dl
add rdx, r10
cmp r11b, 0xf0
jb 0x1400fd9d0
xor r10d, r10d
cmp rdx, rax
setne r10b
add rdx, r10
jmp 0x1400fd9d0
mov qword [rsp + 0x78], rbp
jmp 0x1400fda5a
mov r10, r8
cmp r9, 1
jne 0x1400fe0a3
xor ebp, ebp
test rcx, rcx
je 0x1400fda6f
mov rcx, qword [0x140189110]
xor edx, edx
call fcn.14011631c
test bpl, bpl
mov rbp, qword [rsp + 0x78]
jne 0x1400fda7e
mov ebx, 0x200000
lea rax, [rbx + 1]
mov qword [0x1401890d0], rax
mov r8, r13
test r12, r12
mov qword [rsp + 0x90], r8
je 0x1400fdac8
cmp r14, 0x10
jae 0x1400fdacf
test r14, r14
je 0x1400fdb83
xor ecx, ecx
nop word [rax + rax]
cmp byte [r12 + rcx], 0
je 0x1400fe165
inc rcx
cmp r14, rcx
jne 0x1400fdab0
jmp 0x1400fdb83
xor ecx, ecx
jmp 0x1400fdb9f
lea rax, [r12 + 7]
and rax, 0xfffffffffffffff8
sub rax, r12
je 0x1400fdb0e
cmp rax, r14
cmovae rax, r14
test rax, rax
je 0x1400fdb0e
xor ecx, ecx
nop dword [rax + rax]
cmp byte [r12 + rcx], 0
je 0x1400fe165
inc rcx
cmp rax, rcx
jne 0x1400fdaf0
lea rcx, [r14 - 0x10]
cmp rax, rcx
jbe 0x1400fdb14
jmp 0x1400fdb5e
lea rcx, [r14 - 0x10]
xor eax, eax
movdqa xmm0, xmmword [0x14011e050]
movabs rdx, 0x8080808080808080
nop word cs:[rax + rax]
movdqu xmm1, xmmword [r12 + rax]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r8, xmm2
test r8, rdx
jne 0x1400fdb5e
add rax, 0x10
cmp rax, rcx
jbe 0x1400fdb30
mov rdx, r14
sub rdx, rax
je 0x1400fdb83
lea r8, [r12 + rax]
xor ecx, ecx
nop dword [rax]
cmp byte [r8 + rcx], 0
je 0x1400fe162
inc rcx
cmp rdx, rcx
jne 0x1400fdb70
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r14
lea rcx, [rsp + 0x40]
call fcn.140083350
mov rcx, rax
call fcn.1400d22a0
lock inc qword [rax]
jle 0x1400fe1a4
mov r14, rax
movzx eax, byte [0x1401891c0]
mov rcx, qword [0x140189110]
test rcx, rcx
jne 0x1400fdbdc
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400fe1a8
mov rcx, rax
mov qword [0x140189110], rax
mov r8d, 0x30
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x1400fe1a8
mov r15, rax
mov qword [rax], 1
mov qword [rax + 8], 1
pxor xmm0, xmm0
movdqu xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x88], rax
lock inc qword [rax]
jle 0x1400fe1a4
movzx eax, byte [0x140189068]
test al, al
je 0x1400fdc84
mov byte [0x140189068], 1
mov qword [rsp + 0x40], 0
call fcn.1400f51f0
test rax, rax
je 0x1400fe24f
mov r13, qword [rax]
mov qword [rax], 0
test r13, r13
je 0x1400fdc84
lock inc qword [r13]
jle 0x1400fe1a4
mov byte [0x140189068], 1
mov qword [rsp + 0x40], r13
call fcn.1400f51f0
test rax, rax
je 0x1400fe23e
mov rcx, qword [rax]
mov qword [rax], r13
jmp 0x1400fdcba
movzx eax, byte [0x140189068]
test al, al
je 0x1400fdccc
mov byte [0x140189068], 1
mov qword [rsp + 0x40], 0
call fcn.1400f51f0
test rax, rax
je 0x1400fe24f
mov rcx, qword [rax]
mov qword [rax], 0
xor r13d, r13d
test rcx, rcx
je 0x1400fdccf
lock dec qword [rcx]
jne 0x1400fdccf
call fcn.1400fe520
jmp 0x1400fdccf
xor r13d, r13d
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1400fdceb
lock inc qword [rcx + 0x18]
jle 0x1400fe1f5
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x38], r14
movzx eax, byte [0x1401891c0]
mov rcx, qword [0x140189110]
test rcx, rcx
jne 0x1400fdd20
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400fe1b9
mov rcx, rax
mov qword [0x140189110], rax
mov r8d, 0x38
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x1400fe1b9
mov r12, rax
mov rax, qword [rsp + 0x38]
mov qword [r12], rax
mov qword [r12 + 8], r15
mov qword [r12 + 0x10], r13
mov rax, qword [rsp + 0x90]
mov qword [r12 + 0x18], rax
mov rax, qword [rsp + 0x80]
mov qword [r12 + 0x20], rax
mov qword [r12 + 0x28], rbp
mov qword [r12 + 0x30], rdi
movzx eax, byte [0x1401891c0]
mov rcx, qword [0x140189110]
test rcx, rcx
jne 0x1400fdd9b
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400fe1ca
mov rcx, rax
mov qword [0x140189110], rax
mov r8d, 0x10
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x1400fe1ca
mov r15, rax
mov qword [rax], r12
lea rax, [0x1401526e0]
mov qword [r15 + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x1400f6360]
xor ecx, ecx
mov rdx, rbx
mov r9, r15
call sub.KERNEL32.dll_CreateThread
test rax, rax
je 0x1400fdf62
mov rbx, rax
lock inc qword [rsi + 0xf8]
inc qword [rsi + 0xb8]
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov r8, rdi
call fcn.1400fe570
mov r15, rax
cmp qword [rsi + 0x78], 0
je 0x1400fe01e
mov rax, qword [rsi + 0x68]
mov rdx, qword [rsi + 0x70]
mov rcx, r15
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rbp, [rax - 0x20]
xor r10d, r10d
pcmpeqd xmm1, xmm1
xor r11d, r11d
and r15, rdx
movdqu xmm2, xmmword [rax + r15]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm2
pmovmskb r13d, xmm3
nop dword [rax + rax]
test r13w, r13w
je 0x1400fde9f
lea r14d, [r13 - 1]
and r14d, r13d
tzcnt r12d, r13d
add r12, r15
and r12, rdx
mov r13, r12
shl r13, 5
mov r9, rbp
sub r9, r13
mov r13d, r14d
cmp qword [r9], rdi
jne 0x1400fde70
jmp 0x1400fdee7
cmp r11, 1
mov r11d, 1
je 0x1400fdec5
pmovmskb r8d, xmm2
xor r11d, r11d
test r8d, r8d
setne r11b
tzcnt r8d, r8d
add r8, r15
and r8, rdx
pcmpeqb xmm2, xmm1
pmovmskb r9d, xmm2
test r9d, r9d
jne 0x1400fe033
add r15, r10
add r15, 0x10
add r10, 0x10
jmp 0x1400fde55
neg r12
shl r12, 5
mov rcx, qword [rax + r12 - 8]
mov qword [rsp + 0x50], rcx
movups xmm0, xmmword [rax + r12 - 0x18]
movaps xmmword [rsp + 0x40], xmm0
mov rcx, qword [rsp + 0x38]
mov qword [rax + r12 - 0x18], rcx
mov rcx, qword [rsp + 0x70]
mov qword [rax + r12 - 0x10], rcx
mov qword [rax + r12 - 8], rbx
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x1400fd84d
mov rcx, qword [rsp + 0x50]
call sub.KERNEL32.dll_CloseHandle
lock dec qword [rdi]
jne 0x1400fdf44
mov rcx, qword [rsp + 0x40]
call fcn.14007fc80
mov rax, qword [rsp + 0x48]
lock dec qword [rax]
jne 0x1400fd84d
lea rcx, [rsp + 0x48]
call fcn.1400fc780
jmp 0x1400fd84d
mov rdi, qword [r15]
mov rbx, qword [r15 + 8]
mov rcx, rdi
call qword [rbx]
cmp qword [rbx + 8], 0
mov r14, qword [rsp + 0x38]
je 0x1400fdf96
cmp qword [rbx + 0x10], 0x11
jb 0x1400fdf85
mov rdi, qword [rdi - 8]
mov rcx, qword [0x140189110]
xor edx, edx
mov r8, rdi
call fcn.14011631c
mov rcx, qword [0x140189110]
xor edx, edx
mov r8, r15
call fcn.14011631c
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
mov rdi, rbx
shl rdi, 0x20
mov rax, qword [rsp + 0x70]
lock dec qword [rax]
jne 0x1400fdfe8
lea rcx, [rsp + 0x88]
call fcn.1400fc780
or rdi, 2
lock dec qword [r14]
je 0x1400fdff2
mov ecx, ebx
call fcn.1400d62c0
cmp al, 0xd
jne 0x1400fd777
jmp 0x1400fe009
or rdi, 2
lock dec qword [r14]
jne 0x1400fdfd7
mov rcx, r14
call fcn.14007fc80
mov ecx, ebx
call fcn.1400d62c0
cmp al, 0xd
jne 0x1400fd777
mov rax, qword [rsi + 0xf8]
test rax, rax
jne 0x1400fd84d
jmp 0x1400fd777
lea rcx, [rsi + 0x68]
lea rdx, [rsi + 0x88]
call fcn.1400fe6f0
jmp 0x1400fde26
movzx r9d, byte [rax + r8]
test r9b, r9b
js 0x1400fe050
movdqa xmm0, xmmword [rax]
pmovmskb r8d, xmm0
tzcnt r8d, r8d
movzx r9d, byte [rax + r8]
and r9b, 1
movzx r9d, r9b
sub qword [rsi + 0x78], r9
lea r9, [r8 - 0x10]
and r9, rdx
mov byte [rax + r8], cl
mov byte [r9 + rax + 0x10], cl
inc qword [rsi + 0x80]
shl r8, 5
mov rcx, rax
sub rcx, r8
neg r8
mov qword [rax + r8 - 0x20], rdi
mov rax, qword [rsp + 0x38]
mov qword [rcx - 0x18], rax
mov rax, qword [rsp + 0x70]
mov qword [rcx - 0x10], rax
mov qword [rcx - 8], rbx
jmp 0x1400fd84d
mov r10, r8
cmp r9, 0x11
jae 0x1400fe0d8
xor eax, eax
xor ebx, ebx
movzx edx, byte [r10 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1400fda5a
lea r11, [rbx + rbx*4]
mov edx, edx
lea rbx, [rdx + r11*2]
inc rax
cmp r9, rax
jne 0x1400fe0ad
mov bpl, 1
jmp 0x1400fda5c
mov qword [rsp + 0x38], rcx
xor r11d, r11d
mov ecx, 0xa
xor ebx, ebx
cmp r9, r11
je 0x1400fe11f
movzx ebp, byte [r10 + r11]
mov rax, rbx
mul rcx
seto dl
add ebp, 0xffffffd0
cmp ebp, 9
ja 0x1400fe113
test dl, dl
jne 0x1400fe113
mov rbx, rax
mov eax, ebp
inc r11
add rbx, rax
jae 0x1400fe0e7
xor ebp, ebp
mov rcx, qword [rsp + 0x38]
jmp 0x1400fda5c
mov bpl, 1
mov rcx, qword [rsp + 0x38]
jmp 0x1400fda5c
test rcx, rcx
je 0x1400fda79
mov rcx, qword [0x140189110]
xor edx, edx
call fcn.14011631c
jmp 0x1400fda79
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x140154fc8]
mov edx, 0x27
call fcn.140086940
ud2
add rcx, rax
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], rcx
lea rax, [0x1401526c8]
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x140152928]
lea r8, [rsp + 0x40]
mov edx, 0x2f
call fcn.140088240
ud2
ud2
mov ecx, 8
mov edx, 0x30
call fcn.140083160
ud2
mov ecx, 8
mov edx, 0x38
call fcn.140083160
ud2
mov ecx, 8
mov edx, 0x10
call fcn.140083160
ud2
lea rcx, str.assertion_failed:_shared.shutdown_tx.is_some___Users_no_.cargo_registry_src_index.crates.io_6f17d22bba15001f_tokio_1.35.0_src_runtime_blocking_pool.rs
lea r8, [0x140155190]
mov edx, 0x2e
call fcn.140086940
ud2
add rcx, 0x10
xor edx, edx
call fcn.1400d5890
lea rax, str.too_many_running_threads_in_thread_scope
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
lea rax, [0x140178ba0]
mov qword [rsp + 0x50], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
lea rdx, str.library_std_src_thread_scoped.rs
lea rcx, [rsp + 0x40]
call fcn.140085be0
ud2
lock dec qword [r13]
jne 0x1400fe24f
mov rcx, qword [rsp + 0x40]
call fcn.1400fe520
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_a28077b28a02b92985b3a3faecf92813155f1ea1library_std_src_threadlocal.rs
lea r9, [0x14014f588]
lea r8, [rsp + 0x40]
mov edx, 0x46
call fcn.140088240
ud2