Function at 0x140010ab0
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, rcx
movabs r12, 0x8000000000000000
mov rdi, qword [rcx + 0x20]
cmp qword [rcx + 0x10], r12
jne 0x140010aeb
cmp qword [r14], 0
mov r15, r12
jne 0x140010b3c
mov r15, r12
jmp 0x140010bb2
mov rsi, qword [r14 + 0x18]
test rdi, rdi
je 0x140010b20
js 0x140011213
movzx eax, byte [0x1401b51a8]
xor ecx, ecx
mov rdx, rdi
call fcn.14003e800
mov rbx, rax
test rax, rax
jne 0x140010b25
mov ecx, 1
mov rdx, rdi
call fcn.140005ca0
mov ebx, 1
mov rcx, rbx
mov rdx, rsi
mov r8, rdi
call sub.msvcrt.dll_memcpy
cmp qword [r14], 0
je 0x140010baf
mov r15, rdi
mov rsi, qword [r14 + 8]
mov rax, qword [r14 + 0x60]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [r14 + 0x50]
movaps xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [r14 + 0x40]
movaps xmmword [rsp + 0xd0], xmm0
movdqu xmm0, xmmword [r14]
movdqu xmm1, xmmword [r14 + 0x10]
movdqu xmm2, xmmword [r14 + 0x20]
movups xmm3, xmmword [r14 + 0x30]
movaps xmmword [rsp + 0xc0], xmm3
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
cmp r15, r12
jne 0x140010c2d
xor ecx, ecx
jmp 0x140010d2f
mov r15, rdi
mov rax, qword [r14 + 0x60]
mov qword [rsp + 0xf0], rax
movups xmm0, xmmword [r14 + 0x50]
movaps xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [r14 + 0x40]
movaps xmmword [rsp + 0xd0], xmm0
movdqu xmm0, xmmword [r14]
movdqu xmm1, xmmword [r14 + 0x10]
movdqu xmm2, xmmword [r14 + 0x20]
movups xmm3, xmmword [r14 + 0x30]
movaps xmmword [rsp + 0xc0], xmm3
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
mov rsi, qword [0x1401b5148]
test rsi, rsi
je 0x140011005
dec rsi
cmp r15, r12
je 0x140010ba8
cmp rdi, 0x10
jae 0x140010c57
test rdi, rdi
je 0x140010d13
xor ecx, ecx
nop
cmp byte [rbx + rcx], 0
je 0x140011129
inc rcx
cmp rdi, rcx
jne 0x140010c40
jmp 0x140010d13
lea rax, [rbx + 7]
and rax, 0xfffffffffffffff8
sub rax, rbx
je 0x140010c9d
cmp rax, rdi
cmovae rax, rdi
test rax, rax
je 0x140010c9d
xor ecx, ecx
nop word cs:[rax + rax]
cmp byte [rbx + rcx], 0
je 0x140011129
inc rcx
cmp rax, rcx
jne 0x140010c80
lea rcx, [rdi - 0x10]
cmp rax, rcx
jbe 0x140010ca3
jmp 0x140010ced
lea rcx, [rdi - 0x10]
xor eax, eax
movdqa xmm0, xmmword [0x140057360]
movabs rdx, 0x8080808080808080
nop word cs:[rax + rax]
movdqu xmm1, xmmword [rbx + rax]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r8, xmm2
test r8, rdx
jne 0x140010ced
add rax, 0x10
cmp rax, rcx
jbe 0x140010cc0
mov rdx, rdi
sub rdx, rax
je 0x140010d13
lea r8, [rbx + rax]
xor ecx, ecx
nop dword [rax + rax]
cmp byte [r8 + rcx], 0
je 0x140011126
inc rcx
cmp rdx, rcx
jne 0x140010d00
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rdi
lea rcx, [rsp + 0x30]
call fcn.140005fb0
mov rcx, rax
call fcn.14001c680
lock inc qword [rax]
jle 0x140011193
mov rdi, rax
movzx eax, byte [0x1401b51a8]
mov edx, 0x30
xor ecx, ecx
call fcn.14003e800
test rax, rax
je 0x140011166
mov rbx, rax
mov qword [rax], 1
mov qword [rax + 8], 1
pxor xmm0, xmm0
movdqu xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x60], rax
lock inc qword [rax]
jle 0x140011193
movzx eax, byte [0x1401b50e0]
test al, al
je 0x140010de2
mov byte [0x1401b50e0], 1
call fcn.14003d750
test rax, rax
je 0x1400111ea
mov r14, qword [rax]
mov qword [rax], 0
test r14, r14
je 0x140010de2
lock inc qword [r14]
jle 0x140011193
mov byte [0x1401b50e0], 1
call fcn.14003d750
test rax, rax
je 0x1400111dc
mov rcx, qword [rax]
mov qword [rax], r14
test rcx, rcx
jne 0x140010e18
jmp 0x140010e23
movzx eax, byte [0x1401b50e0]
test al, al
je 0x140010fea
mov byte [0x1401b50e0], 1
call fcn.14003d750
test rax, rax
je 0x1400111ea
mov rcx, qword [rax]
mov qword [rax], 0
xor r14d, r14d
test rcx, rcx
je 0x140010e23
lock dec qword [rcx]
jne 0x140010e23
call fcn.140011290
mov r12, qword [rsp + 0x60]
mov rcx, qword [r12 + 0x10]
test rcx, rcx
je 0x140010e3d
lock inc qword [rcx + 0x18]
jle 0x140011195
movzx eax, byte [0x1401b51a8]
mov edx, pe_nt_image_headers64
xor ecx, ecx
call fcn.14003e800
test rax, rax
je 0x140011175
mov r15, rax
mov qword [rax], rdi
mov qword [rax + 8], rbx
mov qword [rax + 0x10], r14
movaps xmm0, xmmword [rsp + 0x90]
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm2, xmmword [rsp + 0xb0]
movaps xmm3, xmmword [rsp + 0xc0]
movups xmmword [rax + 0x18], xmm0
movdqu xmmword [rax + 0x28], xmm1
movdqu xmmword [rax + 0x38], xmm2
movups xmmword [rax + 0x48], xmm3
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rax + 0x58], xmm0
movdqa xmm0, xmmword [rsp + 0xe0]
movdqu xmmword [rax + 0x68], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [r15 + 0x78], rax
movzx eax, byte [0x1401b51a8]
mov edx, 0x10
xor ecx, ecx
call fcn.14003e800
test rax, rax
je 0x140011184
mov rbx, rax
mov qword [rax], r15
lea rax, [0x1401a95f8]
mov qword [rbx + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x14003e150]
xor ecx, ecx
mov rdx, rsi
mov r9, rbx
call sub.KERNEL32.dll_CreateThread
test rax, rax
je 0x140010f64
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], rax
mov rcx, rax
call sub.KERNEL32.dll_CloseHandle
lock dec qword [rdi]
jne 0x140010f45
mov rcx, qword [rsp + 0x78]
call fcn.14001cfa0
mov rax, qword [rsp + 0x80]
lock dec qword [rax]
jne 0x140010f60
lea rcx, [rsp + 0x80]
call fcn.1400112e0
xor esi, esi
jmp 0x140010fd3
mov r14, qword [rbx]
mov r15, qword [rbx + 8]
mov rcx, r14
call qword [r15]
cmp qword [r15 + 8], 0
je 0x140010f94
cmp qword [r15 + 0x10], 0x11
jb 0x140010f83
mov r14, qword [r14 - 8]
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, r14
call fcn.140053cc4
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, rbx
call fcn.140053cc4
call sub.KERNEL32.dll_GetLastError
mov esi, eax
shl rsi, 0x20
lock dec qword [r12]
jne 0x140010fc1
lea rcx, [rsp + 0x60]
call fcn.1400112e0
or rsi, 2
lock dec qword [rdi]
jne 0x140010fd3
mov rcx, rdi
call fcn.14001cfa0
mov rax, rsi
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor r14d, r14d
mov r12, qword [rsp + 0x60]
mov rcx, qword [r12 + 0x10]
test rcx, rcx
jne 0x140010e32
jmp 0x140010e3d
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.14003bc80
mov r13, qword [rsp + 0x30]
cmp r13, r12
je 0x140011108
mov r14, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
lea rcx, [rsp + 0x60]
mov rdx, r14
call fcn.1400084a0
cmp qword [rsp + 0x60], 0
mov bpl, 1
jne 0x1400110ed
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x1400110ed
mov r8, qword [rsp + 0x68]
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x14001107b
cmp eax, 0x2b
jne 0x140011081
dec rcx
je 0x1400110ed
inc r8
jmp 0x140011081
cmp rcx, 1
je 0x1400110ed
cmp rcx, 0x11
jae 0x1400110b3
xor eax, eax
xor esi, esi
nop dword [rax + rax]
movzx edx, byte [r8 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1400110ed
lea r9, [rsi + rsi*4]
mov edx, edx
lea rsi, [rdx + r9*2]
inc rax
cmp rcx, rax
jne 0x140011090
xor ebp, ebp
jmp 0x1400110ed
xor r9d, r9d
mov r10d, 0xa
xor esi, esi
cmp rcx, r9
je 0x1400110af
movzx r11d, byte [r8 + r9]
mov rax, rsi
mul r10
seto dl
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x1400110ed
test dl, dl
jne 0x1400110ed
mov rsi, rax
mov eax, r11d
inc r9
add rsi, rax
jae 0x1400110be
test r13, r13
je 0x140011103
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, r14
call fcn.140053cc4
test bpl, bpl
je 0x14001110d
mov esi, 0x200000
lea rax, [rsi + 1]
mov qword [0x1401b5148], rax
cmp r15, r12
je 0x140010ba8
jmp 0x140010c2d
add rcx, rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rcx
lea rax, [0x1401a95e0]
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes_rustc_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04library_std_src_threadmod.rs
lea r9, [0x1401a9658]
lea r8, [rsp + 0x30]
mov edx, 0x2f
call fcn.140008b30
mov ecx, 8
mov edx, 0x30
call fcn.140005ca0
mov ecx, 8
mov edx, pe_nt_image_headers64
call fcn.140005ca0
mov ecx, 8
mov edx, 0x10
call fcn.140005ca0
ud2
add rcx, 0x10
xor edx, edx
call fcn.14001fd20
lea rax, str.too_many_running_threads_in_thread_scope0
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, [0x1401ae058]
mov qword [rsp + 0x40], rax
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
lea rdx, str.library_std_src_thread_scoped.rs
lea rcx, [rsp + 0x30]
call fcn.140006ea0
lock dec qword [r14]
jne 0x1400111ea
mov rcx, r14
call fcn.14003d880
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_25ef9e3d85d934b27d9dada2f9dd52b1dc63bb04library_std_src_threadlocal.rs
lea r9, [0x1401aa920]
lea r8, [rsp + 0x30]
mov edx, 0x46
call fcn.140008b30
call fcn.140005c60
mov rsi, rax
cmp qword [r15 + 8], 0
je 0x14001123e
cmp qword [r15 + 0x10], 0x11
jb 0x14001122d
mov r14, qword [r14 - 8]
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, r14
call fcn.140053cc4
mov rcx, qword [0x1401b5178]
xor edx, edx
mov r8, rbx
call fcn.140053cc4
mov rcx, rsi
call fcn.1400542a0
mov rsi, rax
lock dec qword [r14]
jne 0x140011282
mov rcx, r14
call fcn.14003d880
mov rcx, rsi
call fcn.1400542a0
mov rsi, rax
lea rdx, [0x1401a95f8]
mov rcx, r15
call fcn.14001f3d0
mov rcx, rsi
call fcn.1400542a0
call fcn.140009100
int3