Function at 0x1400f0940
Capabilities:
Create thread

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x20], 0xfffffffffffffffe
mov rbx, r9
mov r14, r8
mov rdi, rdx
mov rsi, rcx
mov cl, 1
xor eax, eax
lock cmpxchg byte [rsi + 0x60], cl
jne 0x1400f09c8
cmp byte [rsi + 0xf0], 0
je 0x1400f09da
lock sub qword [rdi], 0x40
jb 0x1400f1349
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [rax + 0x40]
xor edi, edi
xor ecx, ecx
mov al, 1
lock cmpxchg byte [rsi + 0x60], cl
mov ebx, 1
jne 0x1400f1166
mov rax, rbx
mov rdx, rdi
add rsp, 0xa8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [rsi + 0x60]
call fcn.14010e140
cmp byte [rsi + 0xf0], 0
jne 0x1400f0983
mov rcx, qword [rsi + 0x68]
mov rax, qword [rsi + 0x80]
cmp rax, rcx
jne 0x1400f09fe
lea rcx, [rsi + 0x68]
call fcn.1400f3330
mov rcx, qword [rsi + 0x68]
mov rax, qword [rsi + 0x80]
mov rdx, qword [rsi + 0x78]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rsi + 0x70]
shl rdx, 4
mov qword [rcx + rdx], rdi
mov byte [rcx + rdx + 8], 1
inc rax
mov qword [rsi + 0x80], rax
mov eax, dword [rsi + 0xe8]
test eax, eax
je 0x1400f0a66
dec eax
mov dword [rsi + 0xe8], eax
inc dword [rsi + 0xec]
mov rdx, qword [rsi + 0xf8]
test rdx, rdx
je 0x1400f1157
lea rcx, [rsi + 0xf8]
call fcn.14010d530
jmp 0x1400f1157
mov rax, qword [rsi + 0xb8]
cmp rax, qword [rsi + 0x100]
je 0x1400f1157
mov rax, qword [rsi + 0xc0]
test rax, rax
je 0x1400f1390
lock inc qword [rax]
jle 0x1400f1363
mov qword [rbp + 8], rax
mov rdi, qword [rsi + 0xe0]
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, [rbp - 0x28]
call qword [r8 + 0x28]
mov rax, qword [rbp - 0x28]
mov qword [rbp + 0x10], rax
mov r13, qword [rbp - 0x20]
mov r12, qword [rbp - 0x18]
cmp qword [rsi + 0x50], 0
je 0x1400f0aef
mov r15, qword [rsi + 0x58]
mov rcx, r14
call qword [rbx + 0x18]
mov qword [rbp - 0x48], rax
mov r14, rdx
jmp 0x1400f0c3d
mov rcx, r14
call qword [rbx + 0x18]
mov qword [rbp - 0x48], rax
mov r14, rdx
mov r15, qword [0x14017e220]
test r15, r15
je 0x1400f0b10
dec r15
jmp 0x1400f0c3d
lea rdx, str.RUST_MIN_STACKlibrary_std_src_sys_common_thread_info.rs
lea rcx, [rbp - 0x28]
mov r8d, 0xe
call fcn.1400e7300
movzx eax, byte [rbp - 0x10]
cmp al, 2
je 0x1400f0c2c
mov r11, qword [rbp - 0x28]
mov r8, qword [rbp - 0x20]
mov r9, qword [rbp - 0x18]
test al, al
je 0x1400f0b7c
test r8, r8
je 0x1400f0c2c
test r9, r9
je 0x1400f0c12
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x1400f0c05
cmp eax, 0x2b
jne 0x1400f1236
dec r9
je 0x1400f0c12
lea r10, [r8 + 1]
jmp 0x1400f1239
test r9, r9
je 0x1400f0c12
lea rax, [r8 + r9]
mov r10, r8
jmp 0x1400f0ba1
add r10, 2
cmp rdx, rax
cmovne rdx, r10
mov r10, rdx
cmp rdx, rax
je 0x1400f0b42
lea rdx, [r10 + 1]
movzx ecx, byte [r10]
test cl, cl
jns 0x1400f0b99
cmp cl, 0xe0
jb 0x1400f0b8e
cmp cl, 0xed
jne 0x1400f0bdd
cmp rdx, rax
je 0x1400f0b42
lea rcx, [r10 + 2]
cmp rcx, rax
je 0x1400f0b42
cmp byte [r10 + 1], 0x9f
ja 0x1400f12bd
add r10, 3
mov rdx, r10
jmp 0x1400f0b99
add r10, 2
cmp rdx, rax
cmove r10, rdx
xor edx, edx
cmp r10, rax
setne dl
add rdx, r10
cmp cl, 0xf0
jb 0x1400f0b99
xor ecx, ecx
cmp rdx, rax
setne cl
add rdx, rcx
jmp 0x1400f0b99
mov r10, r8
cmp r9, 1
jne 0x1400f1239
xor ebx, ebx
test r11, r11
je 0x1400f0c28
mov rcx, qword [0x14017e260]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
test bl, bl
jne 0x1400f0c32
mov r15d, 0x200000
lea rax, [r15 + 1]
mov qword [0x14017e220], rax
test r13, r13
je 0x1400f0c75
cmp r12, 0x10
jae 0x1400f0c79
test r12, r12
je 0x1400f0c88
xor eax, eax
xor edx, edx
nop word cs:[rax + rax]
cmp byte [r13 + rdx], 0
je 0x1400f0c8e
inc rdx
cmp r12, rdx
jne 0x1400f0c60
mov rdx, r12
jmp 0x1400f0c93
xor ecx, ecx
jmp 0x1400f0cb8
xor ecx, ecx
mov rdx, r13
mov r8, r12
call fcn.1400201e0
jmp 0x1400f0c93
xor edx, edx
xor eax, eax
jmp 0x1400f0c93
mov eax, 1
test rax, rax
jne 0x1400f13aa
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], r12
lea rcx, [rbp - 0x28]
call fcn.14001bfc0
mov rcx, rax
call fcn.1400e16f0
lock inc qword [rax]
jle 0x1400f1363
mov r12, rax
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x1400f0cef
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1400f1367
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 0x30
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1400f1367
mov r13, rax
mov qword [rax], 1
mov qword [rax + 8], 1
pxor xmm0, xmm0
movdqu xmmword [rax + 0x10], xmm0
lock inc qword [rax]
jle 0x1400f1363
movzx eax, byte [0x14017e1b8]
test al, al
mov qword [rbp + 0x18], r15
je 0x1400f0dbf
mov byte [0x14017e1b8], 1
mov eax, dword [0x14017e2f0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x60], 0
je 0x1400f0d6b
lea rax, [rax + 0x68]
jmp 0x1400f0d79
call fcn.1400eb2e0
test rax, rax
je 0x1400f1442
mov rbx, qword [rax]
mov qword [rax], 0
test rbx, rbx
je 0x1400f0dbf
lock inc qword [rbx]
jle 0x1400f1363
mov byte [0x14017e1b8], 1
mov eax, dword [0x14017e2f0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x60], 0
je 0x1400f0dfb
lea rax, [rax + 0x68]
jmp 0x1400f0e11
movzx eax, byte [0x14017e1b8]
test al, al
je 0x1400f0df7
mov byte [0x14017e1b8], 1
mov eax, dword [0x14017e2f0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x60], 0
je 0x1400f0e19
lea rax, [rax + 0x68]
jmp 0x1400f0e27
xor ebx, ebx
jmp 0x1400f0e43
mov qword [rbp + 0x10], rbx
call fcn.1400eb2e0
test rax, rax
mov rbx, qword [rbp + 0x10]
je 0x1400f1433
mov rcx, qword [rax]
mov qword [rax], rbx
jmp 0x1400f0e33
call fcn.1400eb2e0
test rax, rax
je 0x1400f1442
mov rcx, qword [rax]
mov qword [rax], 0
xor ebx, ebx
test rcx, rcx
je 0x1400f0e43
lock dec qword [rcx]
jne 0x1400f0e43
call fcn.1400eb3b0
mov r15, r14
mov rax, r13
add rax, 0x10
mov rcx, qword [rax]
test rcx, rcx
je 0x1400f0e60
lock inc qword [rcx + 0x10]
jle 0x1400f13e8
mov r14, rbx
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x1400f0e88
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1400f136e
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 0x38
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1400f136e
mov rbx, rax
mov rax, qword [rbp - 0x48]
mov qword [rbx], rax
mov qword [rbx + 8], r15
mov qword [rbx + 0x10], rdi
mov rax, qword [rbp + 8]
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], r14
mov qword [rbx + 0x28], r12
mov qword [rbx + 0x30], r13
mov qword [rbp - 0x28], rbx
lea r14, [0x14014e3c8]
mov qword [rbp - 0x20], r14
mov rcx, qword [0x14017e260]
test rcx, rcx
je 0x1400f0ee6
mov r15, qword [rbp + 0x18]
jmp 0x1400f0f03
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
mov r15, qword [rbp + 0x18]
je 0x1400f137f
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 0x10
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x1400f137f
mov qword [rax], rbx
mov qword [rax + 8], r14
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x1400ebe40]
xor ecx, ecx
mov rdx, r15
mov rbx, rax
mov r9, rax
call qword [sym.imp.kernel32.dll_CreateThread]
test rax, rax
je 0x1400f1097
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], r12
mov qword [rbp - 0x30], r13
inc qword [rsi + 0xb8]
inc qword [rsi + 0xe0]
lea r14, [rsi + 0xa8]
mov rcx, qword [rsi + 0xa8]
mov rdx, qword [rsi + 0xb0]
mov r8, rdi
call fcn.1400f33d0
mov rbx, rax
mov rcx, qword [rsi + 0x88]
mov rax, qword [rsi + 0xa0]
mov r15, rbx
shr r15, 0x39
movd xmm0, r15d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rdx, [rax - 0x20]
xor r8d, r8d
pcmpeqd xmm1, xmm1
mov r9, rbx
and r9, rcx
movdqu xmm2, xmmword [rax + r9]
movdqa xmm3, xmm0
pcmpeqb xmm3, xmm2
pmovmskb r11d, xmm3
nop dword [rax]
test r11w, r11w
je 0x1400f1010
lea r12d, [r11 - 1]
and r12d, r11d
tzcnt r10d, r11d
add r10, r9
and r10, rcx
mov r11, r10
shl r11, 5
mov r13, rdx
sub r13, r11
mov r11d, r12d
cmp qword [r13], rdi
jne 0x1400f0fe0
jmp 0x1400f102f
pcmpeqb xmm2, xmm1
pmovmskb r10d, xmm2
test r10d, r10d
jne 0x1400f1177
add r9, r8
add r9, 0x10
add r8, 0x10
jmp 0x1400f0fc3
neg r10
shl r10, 5
mov rcx, qword [rax + r10 - 0x18]
mov rbx, qword [rax + r10 - 0x10]
mov rdi, qword [rax + r10 - 8]
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rax + r10 - 0x18], xmm0
mov rdx, qword [rbp - 0x30]
mov qword [rax + r10 - 8], rdx
test rbx, rbx
je 0x1400f1147
call qword [sym.imp.kernel32.dll_CloseHandle]
lock dec qword [rbx]
jne 0x1400f1075
mov rcx, rbx
call fcn.14005c620
lock dec qword [rdi]
jne 0x1400f1147
mov rcx, rdi
call fcn.14004da20
cmp qword [rbp - 0x38], 0
jne 0x1400f1157
jmp 0x1400f114e
mov rcx, qword [rbx]
mov qword [rbp + 8], rbx
mov rax, qword [rbx + 8]
call qword [rax]
mov r9, qword [rbp + 8]
mov rax, qword [r9 + 8]
cmp qword [rax + 8], 0
je 0x1400f10db
mov r8, qword [r9]
cmp qword [rax + 0x10], 0x11
jae 0x1400f10c2
mov rdi, r9
jmp 0x1400f10c9
mov rdi, r9
mov r8, qword [r8 - 8]
mov rcx, qword [0x14017e260]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov r9, rdi
mov rcx, qword [0x14017e260]
xor edx, edx
mov r8, r9
call qword [sym.imp.kernel32.dll_HeapFree]
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
mov rdi, rbx
shl rdi, 0x20
lock dec qword [r13]
jne 0x1400f110b
mov rcx, r13
call fcn.14004da20
or rdi, 2
lock dec qword [r12]
jne 0x1400f111e
mov rcx, r12
call fcn.14005c620
mov qword [rbp - 0x40], rdi
mov qword [rbp - 0x38], 0
mov ecx, ebx
call fcn.1400e2f90
cmp al, 0xd
jne 0x1400f099a
cmp qword [rsi + 0xb8], 0
je 0x1400f099a
cmp qword [rbp - 0x38], 0
jne 0x1400f1157
lea rcx, [rbp - 0x40]
call fcn.1400621c0
xor ebx, ebx
mov al, 1
lock cmpxchg byte [rsi + 0x60], bl
je 0x1400f09ae
add rsi, 0x60
mov rcx, rsi
call fcn.14010dd60
jmp 0x1400f09ae
mov r8, rcx
and r8, rbx
movdqu xmm0, xmmword [rax + r8]
pmovmskb edx, xmm0
test edx, edx
jne 0x1400f11a9
mov r9d, 0x10
add r8, r9
and r8, rcx
movdqu xmm0, xmmword [rax + r8]
pmovmskb edx, xmm0
add r9, 0x10
test edx, edx
je 0x1400f1191
tzcnt edx, edx
add rdx, r8
and rdx, rcx
movzx r12d, byte [rax + rdx]
test r12b, r12b
js 0x1400f11ce
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
tzcnt edx, edx
movzx r12d, byte [rax + rdx]
and r12b, 1
je 0x1400f11e2
cmp qword [rsi + 0x90], 0
je 0x1400f12da
movzx r8d, r12b
sub qword [rsi + 0x90], r8
lea r8, [rdx - 0x10]
and r8, rcx
mov byte [rax + rdx], r15b
mov byte [r8 + rax + 0x10], r15b
inc qword [rsi + 0x98]
shl rdx, 5
mov rcx, rax
sub rcx, rdx
mov qword [rcx - 0x20], rdi
neg rdx
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rax + rdx - 0x18], xmm0
mov rax, qword [rbp - 0x30]
mov qword [rcx - 8], rax
cmp qword [rbp - 0x38], 0
jne 0x1400f1157
jmp 0x1400f114e
mov r10, r8
cmp r9, 0x11
jae 0x1400f126e
xor eax, eax
xor r15d, r15d
movzx ecx, byte [r10 + rax]
add ecx, 0xffffffd0
cmp ecx, 9
ja 0x1400f0c12
lea rdx, [r15 + r15*4]
mov ecx, ecx
lea r15, [rcx + rdx*2]
inc rax
cmp r9, rax
jne 0x1400f1244
mov bl, 1
jmp 0x1400f0c14
mov qword [rbp + 0x18], r11
xor r11d, r11d
xor r15d, r15d
cmp r9, r11
je 0x1400f12b2
movzx ecx, byte [r10 + r11]
mov rax, r15
mov edx, 0xa
mul rdx
seto dl
add ecx, 0xffffffd0
cmp ecx, 0xa
cmovb ebx, ecx
jae 0x1400f12ae
test dl, dl
jne 0x1400f12ae
mov r15, rax
mov eax, ebx
inc r11
mov ebx, ecx
add r15, rax
jae 0x1400f1278
xor ebx, ebx
jmp 0x1400f12b4
mov bl, 1
mov r11, qword [rbp + 0x18]
jmp 0x1400f0c14
test r11, r11
je 0x1400f0c2c
mov rcx, qword [0x14017e260]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x1400f0c2c
lea rcx, [rsi + 0x88]
mov rdx, r14
call fcn.1401135b0
mov rcx, qword [rsi + 0x88]
mov rax, qword [rsi + 0xa0]
and rbx, rcx
movdqu xmm0, xmmword [rax + rbx]
pmovmskb edx, xmm0
test edx, edx
jne 0x1400f1324
mov r8d, 0x10
add rbx, r8
and rbx, rcx
movdqu xmm0, xmmword [rax + rbx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x1400f130d
tzcnt edx, edx
add rdx, rbx
and rdx, rcx
cmp byte [rax + rdx], 0
js 0x1400f11e2
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
tzcnt edx, edx
jmp 0x1400f11e2
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x14014f640]
mov edx, 0x27
call fcn.14010b520
ud2
ud2
mov ecx, 0x30
jmp 0x1400f1373
mov ecx, 0x38
mov edx, 8
call fcn.14010b0b0
ud2
mov ecx, 0x10
mov edx, 8
call fcn.14010b0b0
ud2
lea rcx, str.assertion_failed:_shared.shutdown_tx.is_some__C:Usersmixer.cargo_registry_srcindex.crates.io_6f17d22bba15001f_tokio_1.21.2_src_runtime_blockingpool.rs
lea r8, [0x14014f940]
mov edx, 0x2e
call fcn.14010b520
ud2
mov qword [rbp - 0x28], rdx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], r12
lea rax, [0x14014e418]
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x14014e540]
lea r8, [rbp - 0x28]
mov edx, 0x2f
call fcn.14010b740
ud2
add rcx, 0x10
xor edx, edx
call fcn.1400e48a0
lea rax, str.too_many_running_threads_in_thread_scope
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], 1
mov qword [rbp - 0x28], 0
lea rax, str.internal_error:_entered_unreachable_code:_unknown_state:
mov qword [rbp - 8], rax
mov qword [rbp], 0
lea rdx, str.library_std_src_thread_scoped.rs
lea rcx, [rbp - 0x28]
call fcn.14010b440
ud2
lock dec qword [rbx]
jne 0x1400f1442
mov rcx, qword [rbp + 0x10]
call fcn.1400eb3b0
lea rax, [0x14014ba48]
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destruction_rustc_90c541806f23a127002de5b4038be731ba1458calibrary_std_src_threadlocal.rs
lea r9, [0x14014b758]
lea r8, [rbp - 0x28]
mov edx, 0x46
call fcn.14010b740
ud2