Function at 0x1401ea0f0
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rdi, rcx
lea rsi, [rcx + 0x40]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdi + 0x40], cl
jne 0x1401ea1a4
mov rax, qword [0x14031a2c0]
shl rax, 1
test rax, rax
jne 0x1401ea1cb
xor ebx, ebx
movabs r12, 0x7fffffffffffffff
movzx eax, byte [rdi + 0x41]
cmp byte [rdi + 0xc4], 0
je 0x1401ea1fc
lock sub qword [rdx], 0x40
jb 0x1401eac93
mov rax, qword [rdx + 0x10]
mov rcx, rdx
call qword [rax + 0x30]
xor r15d, r15d
test bl, bl
jne 0x1401ea175
mov rax, qword [0x14031a2c0]
test rax, r12
jne 0x1401ea44d
xor eax, eax
xchg byte [rsi], al
mov edi, 1
cmp al, 2
jne 0x1401ea18a
mov rcx, rsi
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
mov rax, rdi
mov rdx, r15
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
mov rbx, r8
mov r14, rdx
call fcn.1401b9360
mov rdx, r14
mov r8, rbx
mov rax, qword [0x14031a2c0]
shl rax, 1
test rax, rax
je 0x1401ea12c
mov rbx, r8
mov r14, rdx
call fcn.1401b9410
mov rdx, r14
mov r8, rbx
mov ebx, eax
xor bl, 1
movabs r12, 0x7fffffffffffffff
movzx eax, byte [rdi + 0x41]
cmp byte [rdi + 0xc4], 0
jne 0x1401ea149
mov rcx, qword [rdi + 0x48]
mov rax, qword [rdi + 0x60]
cmp rax, rcx
jne 0x1401ea226
lea rcx, [rdi + 0x48]
mov r14, r8
mov r15, rdx
call fcn.1401ede70
mov rdx, r15
mov r8, r14
mov rcx, qword [rdi + 0x48]
mov rax, qword [rdi + 0x60]
mov r9, qword [rdi + 0x58]
add r9, rax
xor r10d, r10d
cmp r9, rcx
cmovae r10, rcx
sub r9, r10
mov rcx, qword [rdi + 0x50]
shl r9, 4
mov qword [rcx + r9], rdx
mov byte [rcx + r9 + 8], 1
inc rax
mov qword [rdi + 0x60], rax
lock inc qword [rdi + 0x100]
mov rax, qword [rdi + 0xf8]
test rax, rax
je 0x1401ea28a
lock dec qword [rdi + 0xf8]
inc dword [rdi + 0xc0]
lea rcx, [rdi + 0x108]
lock inc dword [rdi + 0x108]
call sub.api_ms_win_core_synch_l1_2_0.dll_WakeByAddressSingle
jmp 0x1401ea29a
mov rax, qword [rdi + 0xf0]
cmp rax, qword [rdi + 0xe8]
jne 0x1401ea2c1
test bl, bl
jne 0x1401ea2ae
mov rax, qword [0x14031a2c0]
test rax, r12
jne 0x1401ea463
xor edi, edi
xor eax, eax
xchg byte [rsi], al
cmp al, 2
je 0x1401ea182
jmp 0x1401ea18a
mov rax, qword [rdi + 0x98]
test rax, rax
je 0x1401eacf2
lock inc qword [rax]
jle 0x1401ead37
mov rax, qword [rdi + 0x98]
mov qword [rsp + 0x78], rax
mov r14, qword [rdi + 0xb8]
mov r12, qword [r8]
mov rax, qword [r8 + 8]
mov qword [rsp + 0x70], rax
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 + 0x40]
call qword [r8 + 0x28]
mov rax, qword [rdi + 0x10]
cmp rax, 1
jne 0x1401ea32c
mov r15, qword [rdi + 0x18]
mov r10, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov r8d, 1
mov ecx, 1
mov rdx, qword [rsp + 0x70]
lock xadd qword [rdx], rcx
test r12b, 1
je 0x1401ea38d
test rcx, rcx
movabs r12, 0x7fffffffffffffff
js 0x1401ead37
test al, al
mov qword [rsp + 0xa0], r8
je 0x1401ea3af
lea rax, [r12 + 1]
cmp r10, rax
jne 0x1401ea3c8
mov qword [rsp + 0x40], 2
jmp 0x1401ea53f
test rcx, rcx
movabs r12, 0x7fffffffffffffff
js 0x1401ead37
xor r8d, r8d
test al, al
mov qword [rsp + 0xa0], r8
jne 0x1401ea375
mov r15, qword [0x14031a2b8]
test r15, r15
je 0x1401ea413
dec r15
lea rax, [r12 + 1]
cmp r10, rax
je 0x1401ea37f
cmp r13, 0xf
ja 0x1401ea3f8
test r13, r13
je 0x1401ea513
xor ecx, ecx
nop dword [rax]
cmp byte [rbp + rcx], 0
je 0x1401eacab
inc rcx
cmp r13, rcx
jne 0x1401ea3e0
jmp 0x1401ea513
mov r12, r10
lea rax, [rbp + 7]
and rax, 0xfffffffffffffff8
sub rax, rbp
jne 0x1401ea479
lea rcx, [r13 - 0x10]
xor eax, eax
jmp 0x1401ea49c
mov qword [rsp + 0x38], r10
lea rdx, str.RUST_MIN_STACKTOKIO_WORKER_THREADS
lea rcx, [rsp + 0x40]
mov r8d, 0xe
call fcn.1401d80d0
mov rcx, qword [rsp + 0x40]
lea rax, [r12 + 1]
cmp rcx, rax
jne 0x1401eaab4
mov r15d, 0x200000
jmp 0x1401eab51
call fcn.1401b9410
test al, al
jne 0x1401ea175
mov byte [rdi + 0x41], 1
jmp 0x1401ea175
call fcn.1401b9410
test al, al
jne 0x1401ea2ae
mov byte [rdi + 0x41], 1
jmp 0x1401ea2ae
xor ecx, ecx
nop dword [rax + rax]
cmp byte [rbp + rcx], 0
je 0x1401eacb3
inc rcx
cmp rax, rcx
jne 0x1401ea480
lea rcx, [r13 - 0x10]
cmp rax, rcx
ja 0x1401ea4e0
movabs rdx, 0x8080808080808080
movabs r8, 0x101010101010100
mov r9, qword [rbp + rax]
mov r10, qword [rbp + rax + 8]
mov r11, r8
sub r11, r10
or r11, r10
mov r10, r8
sub r10, r9
or r10, r9
and r10, rdx
and r10, r11
cmp r10, rdx
jne 0x1401ea4e0
add rax, 0x10
cmp rax, rcx
jbe 0x1401ea4b0
mov rdx, r13
sub rdx, rax
mov r10, r12
je 0x1401ea513
lea r8, [rax + rbp]
xor ecx, ecx
nop word cs:[rax + rax]
cmp byte [r8 + rcx], 0
je 0x1401eacb0
inc rcx
cmp rdx, rcx
jne 0x1401ea500
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], r13
lea rcx, [rsp + 0x40]
call fcn.140034060
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x40], 1
lea rcx, [rsp + 0x40]
call fcn.1401b2d60
mov r13, rax
lock inc qword [rax]
jle 0x1401ead37
movzx eax, byte [0x14031a2c8]
mov edx, 0x30
xor ecx, ecx
call fcn.1401dbaa0
test rax, rax
je 0x1401ead0a
mov r12, rax
mov qword [rsp + 0x38], r13
mov qword [rax], 1
mov qword [rax + 8], 1
pxor xmm0, xmm0
movdqu xmmword [rax + 0x10], xmm0
mov qword [rsp + 0x40], rax
lock inc qword [rax]
jle 0x1401ead37
movzx eax, byte [0x14031a215]
test al, al
je 0x1401ea5fd
mov byte [0x14031a215], 1
call fcn.1401da5c0
test rax, rax
je 0x1401ead51
mov r13, qword [rax]
mov qword [rax], 0
test r13, r13
je 0x1401ea5fd
lock inc qword [r13]
jle 0x1401ead37
mov byte [0x14031a215], 1
call fcn.1401da5c0
test rax, rax
je 0x1401ead42
mov rcx, qword [rax]
mov qword [rax], r13
test rcx, rcx
jne 0x1401ea63b
jmp 0x1401ea646
movzx eax, byte [0x14031a215]
test al, al
je 0x1401ea631
mov byte [0x14031a215], 1
call fcn.1401da5c0
test rax, rax
je 0x1401ead51
mov rcx, qword [rax]
mov qword [rax], 0
xor r13d, r13d
test rcx, rcx
jne 0x1401ea63b
jmp 0x1401ea646
xor ecx, ecx
xor r13d, r13d
test rcx, rcx
je 0x1401ea646
lock dec qword [rcx]
jne 0x1401ea646
call fcn.1401e46c0
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x68], rax
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x1401ea664
lock inc qword [rcx + 0x18]
jle 0x1401ead39
movzx eax, byte [0x14031a2c8]
mov edx, 0x38
xor ecx, ecx
call fcn.1401dbaa0
test rax, rax
je 0x1401ead19
mov rbp, rax
mov rax, qword [rsp + 0x38]
mov qword [rbp], rax
mov qword [rbp + 8], r12
mov qword [rbp + 0x10], r13
mov rax, qword [rsp + 0xa0]
mov qword [rbp + 0x18], rax
mov rax, qword [rsp + 0x70]
mov qword [rbp + 0x20], rax
mov rax, qword [rsp + 0x78]
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x30], r14
movzx eax, byte [0x14031a2c8]
mov edx, 0x10
xor ecx, ecx
call fcn.1401dbaa0
test rax, rax
je 0x1401ead28
mov r12, rax
mov qword [rax], rbp
lea rax, [0x1402dc410]
mov qword [r12 + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x1401db950]
xor ecx, ecx
mov rdx, r15
mov r9, r12
call sub.kernel32.dll_CreateThread
mov qword [rsp + 0x70], rax
test rax, rax
je 0x1401ea9d7
lock inc qword [rdi + 0xf0]
inc qword [rdi + 0xb8]
mov rdx, qword [rdi + 0x88]
mov r8, qword [rdi + 0x90]
movabs r9, 0x736f6d6570736575
xor r9, rdx
movabs rcx, 0x646f72616e646f6d
xor rcx, r8
movabs r10, 0x6c7967656e657261
xor r10, rdx
mov r11, r8
xor r11, r14
movabs r15, 0x7465646279746573
xor r15, r11
add r10, r15
rol r15, 0x10
xor r15, r10
add r9, rcx
rol rcx, 0xd
xor rcx, r9
rol r9, 0x20
add r9, r15
mov r11, r9
xor r11, r14
add r10, rcx
rol rcx, 0x11
xor rcx, r10
rol r10, 0x20
rol r15, 0x15
movabs r12, 0x800000000000000
xor r9, r12
xor r9, r15
add r11, rcx
rol rcx, 0xd
add r10, r9
xor rcx, r11
rol r9, 0x10
xor r9, r10
rol r11, 0x20
add r10, rcx
add r11, r9
rol rcx, 0x11
xor rcx, r10
rol r9, 0x15
rol r10, 0x20
xor r9, r11
xor r11, r12
xor r10, 0xff
add r11, rcx
add r10, r9
rol rcx, 0xd
xor rcx, r11
rol r9, 0x10
rol r11, 0x20
xor r9, r10
add r10, rcx
rol rcx, 0x11
add r11, r9
xor rcx, r10
rol r9, 0x15
xor r9, r11
rol r10, 0x20
add r11, rcx
add r10, r9
rol rcx, 0xd
xor rcx, r11
rol r9, 0x10
rol r11, 0x20
xor r9, r10
add r10, rcx
rol rcx, 0x11
add r11, r9
xor rcx, r10
rol r9, 0x15
xor r9, r11
rol r10, 0x20
add r11, rcx
add r10, r9
rol rcx, 0xd
xor rcx, r11
rol r9, 0x10
xor r9, r10
add r10, rcx
rol rcx, 0x11
rol r9, 0x15
xor r9, rcx
mov r15, r10
rol r15, 0x20
xor r15, r10
xor r15, r9
cmp qword [rdi + 0x78], 0
je 0x1401eabf3
mov rcx, qword [rdi + 0x68]
mov r8, qword [rdi + 0x70]
mov rax, r15
shr rax, 0x39
mov qword [rsp + 0x78], rax
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea rax, [rcx - 0x20]
xor r11d, r11d
pcmpeqd xmm1, xmm1
xor r12d, r12d
and r15, r8
movdqu xmm2, xmmword [rcx + r15]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r13d, xmm3
test r13d, r13d
je 0x1401ea90a
nop word cs:[rax + rax]
tzcnt ebp, r13d
add rbp, r15
and rbp, r8
mov rdx, rbp
shl rdx, 5
mov r10, rax
sub r10, rdx
cmp r14, qword [r10]
je 0x1401ea94e
lea edx, [r13 - 1]
and dx, r13w
mov r13d, edx
jne 0x1401ea8e0
cmp r12, 1
mov r12d, 1
je 0x1401ea92e
pmovmskb edx, xmm2
xor r12d, r12d
test edx, edx
setne r12b
tzcnt r9d, edx
add r9, r15
and r9, r8
pcmpeqb xmm2, xmm1
pmovmskb edx, xmm2
test edx, edx
jne 0x1401eab74
add r15, r11
add r15, 0x10
add r11, 0x10
jmp 0x1401ea8b9
neg rbp
shl rbp, 5
mov rax, qword [rcx + rbp - 8]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rcx + rbp - 0x18]
movaps xmmword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0x38]
mov qword [rcx + rbp - 0x18], rax
mov rax, qword [rsp + 0x68]
mov qword [rcx + rbp - 0x10], rax
mov rax, qword [rsp + 0x70]
mov qword [rcx + rbp - 8], rax
mov r14, qword [rsp + 0x40]
test r14, r14
movabs r12, 0x7fffffffffffffff
je 0x1401ea29a
mov rcx, qword [rsp + 0x50]
call sub.kernel32.dll_CloseHandle
lock dec qword [r14]
jne 0x1401ea9b9
mov rcx, qword [rsp + 0x40]
call fcn.1400a1af0
mov rax, qword [rsp + 0x48]
lock dec qword [rax]
jne 0x1401ea29a
lea rcx, [rsp + 0x48]
call fcn.140153db0
jmp 0x1401ea29a
mov r15, qword [r12]
mov r14, qword [r12 + 8]
mov rax, qword [r14]
test rax, rax
je 0x1401ea9ed
mov rcx, r15
call rax
cmp qword [r14 + 8], 0
mov r13, qword [rsp + 0x38]
je 0x1401eaa15
cmp qword [r14 + 0x10], 0x11
jb 0x1401eaa04
mov r15, qword [r15 - 8]
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, r15
call fcn.1401fb9c4
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, r12
call fcn.1401fb9c4
call sub.kernel32.dll_GetLastError
mov r15d, eax
shl r15, 0x20
mov rax, qword [rsp + 0x68]
lock dec qword [rax]
jne 0x1401eaa70
lea rcx, [rsp + 0x40]
call fcn.140153db0
or r15, 2
lock dec qword [r13]
movabs r12, 0x7fffffffffffffff
je 0x1401eaa85
mov rax, r15
shr rax, 0x20
cmp eax, 0x2733
jne 0x1401ea161
jmp 0x1401eaa9f
or r15, 2
lock dec qword [r13]
movabs r12, 0x7fffffffffffffff
jne 0x1401eaa5c
mov rcx, r13
call fcn.1400a1af0
mov rax, r15
shr rax, 0x20
cmp eax, 0x2733
jne 0x1401ea161
mov rax, qword [rdi + 0xf0]
test rax, rax
jne 0x1401ea29a
jmp 0x1401ea161
mov qword [rsp + 0x68], rcx
mov r15, qword [rsp + 0x48]
mov r8, qword [rsp + 0x50]
lea rcx, [rsp + 0x80]
mov rdx, r15
call fcn.14005a730
test byte [rsp + 0x80], 1
mov qword [rsp + 0x98], r15
je 0x1401eaaf2
mov r15d, 0x200000
mov r10, qword [rsp + 0x38]
jmp 0x1401eab33
mov r8, qword [rsp + 0x90]
test r8, r8
mov r10, qword [rsp + 0x38]
je 0x1401eab2d
mov rcx, qword [rsp + 0x88]
cmp r8, 1
jne 0x1401eac01
movzx eax, byte [rcx]
cmp eax, 0x2b
je 0x1401eab2d
mov r8d, 1
cmp eax, 0x2d
jne 0x1401eac67
mov r15d, 0x200000
cmp qword [rsp + 0x68], 0
je 0x1401eab56
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, qword [rsp + 0x98]
call fcn.1401fb9c4
mov r10, qword [rsp + 0x38]
lea rax, [r15 + 1]
mov qword [0x14031a2b8], rax
lea rax, [r12 + 1]
cmp r10, rax
je 0x1401ea37f
jmp 0x1401ea3c8
movzx r10d, byte [rcx + r9]
test r10b, r10b
js 0x1401eab90
movdqa xmm0, xmmword [rcx]
pmovmskb eax, xmm0
tzcnt r9d, eax
movzx r10d, byte [rcx + r9]
and r10b, 1
movzx eax, r10b
sub qword [rdi + 0x78], rax
lea rax, [r9 - 0x10]
and rax, r8
mov rdx, qword [rsp + 0x78]
mov byte [rcx + r9], dl
mov byte [rcx + rax + 0x10], dl
inc qword [rdi + 0x80]
shl r9, 5
mov rdx, rcx
sub rdx, r9
neg r9
mov qword [rcx + r9 - 0x20], r14
mov rax, qword [rsp + 0x38]
mov qword [rdx - 0x18], rax
mov rax, qword [rsp + 0x68]
mov qword [rdx - 0x10], rax
mov rax, qword [rsp + 0x70]
mov qword [rdx - 8], rax
movabs r12, 0x7fffffffffffffff
jmp 0x1401ea29a
lea rcx, [rdi + 0x68]
call fcn.1401e3340
jmp 0x1401ea885
cmp byte [rcx], 0x2b
jne 0x1401eac61
inc rcx
lea rax, [r8 - 1]
cmp r8, 0x12
mov r8, rax
jb 0x1401eac67
xor r9d, r9d
mov r10d, 0xa
xor r15d, r15d
cmp r8, r9
je 0x1401eaaeb
mov rax, r15
mul r10
seto r11b
movzx edx, byte [rcx + r9]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1401eaae5
test r11b, r11b
jne 0x1401eaae5
mov r15, rax
mov eax, edx
inc r9
add r15, rax
jae 0x1401eac22
jmp 0x1401eaae5
cmp r8, 0x11
jae 0x1401eac16
xor eax, eax
xor r15d, r15d
movzx edx, byte [rcx + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1401eab2d
lea r9, [r15 + r15*4]
mov edx, edx
lea r15, [rdx + r9*2]
inc rax
cmp r8, rax
jne 0x1401eac6c
jmp 0x1401eab33
lea rcx, [0x1402dd2b2]
lea r8, str._redacted_
mov edx, 0x27
call fcn.1400576c0
mov r12, r10
jmp 0x1401eacb3
add rcx, rax
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x58], rcx
lea rax, [0x1402d9b70]
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x1402d9258]
lea r8, [rsp + 0x40]
mov edx, 0x2f
call fcn.14005b770
jmp 0x1401ead37
lea rcx, str.assertion_failed:_shared.shutdown_tx.is_some__num_idle_threads_underflowed_on_thread_exit
lea r8, str._redacted_
mov edx, 0x2e
call fcn.1400576c0
mov ecx, 8
mov edx, 0x30
call fcn.140033f80
mov ecx, 8
mov edx, 0x38
call fcn.140033f80
mov ecx, 8
mov edx, 0x10
call fcn.140033f80
ud2
add rcx, 0x10
call fcn.1401b5920
lock dec qword [r13]
jne 0x1401ead51
mov rcx, r13
call fcn.1401da6a0
lea rax, str.std_srcio_stdio.rs
mov qword [rsp + 0x20], rax
lea rcx, str.cannot_access_a_Thread_Local_Storage_value_during_or_after_destructioninconsistent_park_state__actual__n
lea r9, [0x1402dcca8]
lea r8, [rsp + 0x80]
mov edx, 0x46
call fcn.14005b770
mov rsi, rax
cmp qword [r14 + 8], 0
je 0x1401eada3
cmp qword [r14 + 0x10], 0x11
jb 0x1401ead92
mov r15, qword [r15 - 8]
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, r15
call fcn.1401fb9c4
mov rcx, qword [0x14031a288]
xor edx, edx
mov r8, r12
jmp 0x1401eadfd
call fcn.1401fb9c4
mov rcx, rsi
call fcn.1401fbf00
int3