Function at 0x1401152c0
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
mov r15, r8
mov r14, rdx
mov rbx, rcx
lea r12, [rcx + 0x40]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rbx + 0x40], cl
jne 0x140115386
mov rax, qword [0x1401ba118]
shl rax, 1
test rax, rax
je 0x1401153a1
call fcn.1400edde0
mov edi, eax
xor dil, 1
movabs rsi, 0x7fffffffffffffff
movzx eax, byte [rbx + 0x41]
cmp byte [rbx + 0xc4], 0
je 0x1401153be
lock sub qword [r14], 0x40
jb 0x140115c5c
mov rax, qword [r14 + 0x10]
mov rcx, r14
call qword [rax + 0x30]
xor r14d, r14d
test dil, dil
jne 0x140115355
mov rax, qword [0x1401ba118]
test rax, rsi
jne 0x140115561
xor eax, eax
xchg byte [r12], al
mov edi, 1
cmp al, 2
jne 0x14011536c
mov rcx, r12
call fcn.1401333b8
mov rax, rdi
mov rdx, r14
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r12
call fcn.1400edd30
mov rax, qword [0x1401ba118]
shl rax, 1
test rax, rax
jne 0x140115302
xor edi, edi
movabs rsi, 0x7fffffffffffffff
movzx eax, byte [rbx + 0x41]
cmp byte [rbx + 0xc4], 0
jne 0x140115328
mov rcx, qword [rbx + 0x48]
mov rax, qword [rbx + 0x60]
cmp rax, rcx
jne 0x1401153dc
lea rcx, [rbx + 0x48]
call fcn.140116020
mov rcx, qword [rbx + 0x48]
mov rax, qword [rbx + 0x60]
mov rdx, qword [rbx + 0x58]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rbx + 0x50]
shl rdx, 4
mov qword [rcx + rdx], r14
mov byte [rcx + rdx + 8], 1
inc rax
mov qword [rbx + 0x60], rax
lock inc qword [rbx + 0x100]
mov rax, qword [rbx + 0xf8]
test rax, rax
je 0x140115442
lock dec qword [rbx + 0xf8]
inc dword [rbx + 0xc0]
lea rcx, [rbx + 0x108]
lock inc dword [rbx + 0x108]
call fcn.1401333b8
jmp 0x140115ba2
mov rax, qword [rbx + 0xf0]
cmp rax, qword [rbx + 0xe8]
je 0x140115ba2
mov rax, qword [rbx + 0x98]
test rax, rax
je 0x140115ccb
lock inc qword [rax]
jle 0x140115d99
mov r13, qword [rbx + 0x98]
mov r14, qword [rbx + 0xb8]
mov rsi, qword [r15]
mov rbp, qword [r15 + 8]
mov qword [rsp + 0xe0], r13
mov rax, qword [rbx + 0x30]
mov r8, qword [rbx + 0x38]
mov rcx, qword [r8 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rax + rcx]
add rdx, 0x10
lea rcx, [rsp + 0xa0]
mov qword [rsp + 0x30], r12
call qword [r8 + 0x28]
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x1401154c8
mov r9, qword [rbx + 0x18]
jmp 0x1401154c8
mov rcx, qword [rsp + 0xa0]
mov qword [rsp + 0x80], rcx
mov r15, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb0]
mov ecx, 1
mov edx, 1
lock xadd qword [rbp], rdx
test rsi, rsi
je 0x140115507
test rdx, rdx
jns 0x140115512
jmp 0x140115d99
test rdx, rdx
js 0x140115d99
xor ecx, ecx
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], rbp
mov qword [rsp + 0x100], r14
mov qword [rsp + 0xf8], r13
test rax, rax
movabs rsi, 0x7fffffffffffffff
mov rbp, qword [rsp + 0x80]
jne 0x14011563a
mov r9, qword [0x1401ba110]
test r9, r9
je 0x140115577
dec r9
jmp 0x14011563a
call fcn.1400edde0
test al, al
jne 0x140115355
mov byte [rbx + 0x41], 1
jmp 0x140115355
lea rdx, str.RUST_MIN_STACK
lea rcx, [rsp + 0x38]
mov r8d, 0xe
call fcn.14010c280
mov r13, qword [rsp + 0x38]
lea rax, [rsi + 1]
cmp r13, rax
jne 0x1401155a7
mov r9d, 0x200000
jmp 0x14011562f
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x48]
lea rcx, [rsp + 0x88]
mov qword [rsp + 0xd8], rdx
call fcn.140018ab0
cmp qword [rsp + 0x88], 0
je 0x1401155d9
mov r9d, 0x200000
jmp 0x14011560e
mov rdx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x98]
lea rcx, [rsp + 0x88]
call fcn.14001c760
cmp byte [rsp + 0x88], 0
mov r9d, 0x200000
jne 0x14011560e
mov r9, qword [rsp + 0x90]
test r13, r13
je 0x14011562f
mov rcx, qword [0x1401ba0e0]
xor edx, edx
mov r8, qword [rsp + 0xd8]
mov r13, r9
call fcn.1401336c4
mov r9, r13
lea rax, [r9 + 1]
mov qword [0x1401ba110], rax
lea rax, [rsi + 1]
cmp rbp, rax
jne 0x14011565e
mov rsi, r9
mov qword [rsp + 0x38], 2
lea rcx, [rsp + 0x38]
call fcn.1400e7720
jmp 0x14011576c
cmp r12, 0xf
ja 0x140115688
test r12, r12
je 0x140115733
xor ecx, ecx
nop
cmp byte [r15 + rcx], 0
je 0x140115c81
inc rcx
cmp r12, rcx
jne 0x140115670
jmp 0x140115733
lea rax, [r15 + 7]
and rax, 0xfffffffffffffff8
sub rax, r15
jne 0x14011569e
lea rcx, [r12 - 0x10]
xor eax, eax
jmp 0x1401156cd
cmp rax, r12
cmovae rax, r12
xor ecx, ecx
nop word [rax + rax]
cmp byte [r15 + rcx], 0
je 0x140115c81
inc rcx
cmp rax, rcx
jne 0x1401156b0
lea rcx, [r12 - 0x10]
cmp rax, rcx
ja 0x14011570e
movdqa xmm0, xmmword [0x14013c350]
movabs rdx, 0x8080808080808080
nop
movdqu xmm1, xmmword [r15 + rax]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r8, xmm2
test r8, rdx
jne 0x14011570e
add rax, 0x10
cmp rax, rcx
jbe 0x1401156e0
mov rdx, r12
sub rdx, rax
je 0x140115733
lea r8, [r15 + rax]
xor ecx, ecx
nop dword [rax]
cmp byte [r8 + rcx], 0
je 0x140115c7e
inc rcx
cmp rdx, rcx
jne 0x140115720
mov rsi, r9
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r12
lea rcx, [rsp + 0x38]
call fcn.140012f00
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x38], 1
lea rcx, [rsp + 0x38]
call fcn.1400e7720
mov r13, rax
lock inc qword [rax]
jle 0x140115d99
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 1
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x48], xmm0
movzx eax, byte [0x1401ba120]
mov edx, 0x30
xor ecx, ecx
call fcn.14010f230
test rax, rax
je 0x140115ce8
mov r12, rax
movdqu xmm0, xmmword [rsp + 0x38]
movdqu xmm1, xmmword [rsp + 0x48]
movdqu xmm2, xmmword [rsp + 0x58]
movdqu xmmword [rax + 0x20], xmm2
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
lock inc qword [rax]
jle 0x140115d99
movzx eax, byte [0x1401ba049]
test al, al
je 0x14011581d
mov byte [0x1401ba049], 1
call fcn.14010dd80
test rax, rax
je 0x140115d65
mov rbp, qword [rax]
mov qword [rax], 0
test rbp, rbp
je 0x14011581d
lock inc qword [rbp]
jle 0x140115d99
xor r15d, r15d
jmp 0x14011582d
movzx eax, byte [0x1401ba049]
mov r15b, 1
xor ebp, ebp
test al, al
je 0x140115858
mov byte [0x1401ba049], 1
call fcn.14010dd80
test rax, rax
je 0x140115d26
mov rcx, qword [rax]
mov qword [rax], rbp
test rcx, rcx
je 0x140115858
lock dec qword [rcx]
jne 0x140115858
call fcn.140116100
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0xb0], rbp
movdqu xmm0, xmmword [rsp + 0xe8]
movdqu xmm1, xmmword [rsp + 0xf8]
movdqu xmmword [rsp + 0xc8], xmm1
movdqu xmmword [rsp + 0xb8], xmm0
mov qword [rsp + 0xa8], r12
mov rcx, qword [r12 + 0x10]
test rcx, rcx
je 0x1401158a9
lock inc qword [rcx + 0x18]
jle 0x140115d90
movzx eax, byte [0x1401ba120]
mov edx, 0x38
xor ecx, ecx
call fcn.14010f230
test rax, rax
je 0x140115d01
mov r15, rax
mov rax, qword [rsp + 0xd0]
mov qword [r15 + 0x30], rax
movdqu xmm0, xmmword [rsp + 0xa0]
movdqu xmm1, xmmword [rsp + 0xb0]
movdqu xmm2, xmmword [rsp + 0xc0]
movdqu xmmword [r15 + 0x20], xmm2
movdqu xmmword [r15 + 0x10], xmm1
movdqu xmmword [r15], xmm0
movzx eax, byte [0x1401ba120]
mov edx, 0x10
xor ecx, ecx
call fcn.14010f230
test rax, rax
je 0x140115d15
mov rbp, rax
mov qword [rax], r15
lea rax, fcn.140116150
mov qword [rbp + 8], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x14010f160]
xor ecx, ecx
mov rdx, rsi
mov r9, rbp
call sub.kernel32.dll_CreateThread
test rax, rax
je 0x140115ae4
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], rax
lock inc qword [rbx + 0xf0]
inc qword [rbx + 0xb8]
mov r15, qword [rbx + 0x88]
mov r13, qword [rbx + 0x90]
mov rcx, r15
mov rdx, r13
mov r8, r14
call fcn.140116260
mov r12, rax
cmp qword [rbx + 0x78], 0
jne 0x1401159ae
lea rcx, [rbx + 0x68]
mov rdx, r15
mov r8, r13
call fcn.1401163e0
mov rax, qword [rbx + 0x68]
mov rdx, qword [rbx + 0x70]
mov rcx, r12
shr rcx, 0x39
movd xmm0, ecx
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea r15, [rax - 0x20]
xor r10d, r10d
pcmpeqd xmm1, xmm1
xor r11d, r11d
and r12, rdx
movdqu xmm2, xmmword [rax + r12]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb esi, xmm3
test esi, esi
je 0x140115a2a
nop word cs:[rax + rax]
tzcnt r13d, esi
add r13, r12
and r13, rdx
mov rbp, r13
shl rbp, 5
mov r9, r15
sub r9, rbp
cmp qword [r9], r14
je 0x140115a72
lea r9d, [rsi - 1]
and r9w, si
mov esi, r9d
jne 0x140115a00
cmp r11, 1
mov r11d, 1
je 0x140115a50
pmovmskb r8d, xmm2
xor r11d, r11d
test r8d, r8d
setne r11b
tzcnt r8d, r8d
add r8, r12
and r8, rdx
pcmpeqb xmm2, xmm1
pmovmskb r9d, xmm2
test r9d, r9d
jne 0x140115bd7
add r12, r10
add r12, 0x10
add r10, 0x10
jmp 0x1401159dd
neg r13
shl r13, 5
mov r12, qword [rax + r13 - 0x18]
mov r14, qword [rax + r13 - 0x10]
mov rcx, qword [rax + r13 - 8]
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rax + r13 - 0x18], xmm0
mov rdx, qword [rsp + 0x78]
mov qword [rax + r13 - 8], rdx
test r12, r12
movabs rsi, 0x7fffffffffffffff
je 0x140115ace
call sub.kernel32.dll_CloseHandle
lock dec qword [r12]
jne 0x140115ac0
mov rcx, r12
call fcn.14006a960
lock dec qword [r14]
jne 0x140115ace
mov rcx, r14
call fcn.140113670
cmp qword [rsp + 0x68], 0
mov r12, qword [rsp + 0x30]
jne 0x140115ba2
jmp 0x140115b98
mov r14, qword [rbp]
mov rsi, qword [rbp + 8]
mov rax, qword [rsi]
test rax, rax
je 0x140115af9
mov rcx, r14
call rax
cmp qword [rsi + 8], 0
je 0x140115b1c
cmp qword [rsi + 0x10], 0x11
jb 0x140115b0b
mov r14, qword [r14 - 8]
mov rcx, qword [0x1401ba0e0]
xor edx, edx
mov r8, r14
call fcn.1401336c4
mov rcx, qword [0x1401ba0e0]
xor edx, edx
mov r8, rbp
call fcn.1401336c4
call sub.kernel32.dll_GetLastError
mov r14d, eax
lock dec qword [r12]
jne 0x140115b44
mov rcx, r12
call fcn.140113670
shl r14, 0x20
or r14, 2
lock dec qword [r13]
movabs rsi, 0x7fffffffffffffff
jne 0x140115b65
mov rcx, r13
call fcn.14006a960
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x68], 0
mov rcx, r14
call fcn.14001e710
cmp al, 0xd
mov r12, qword [rsp + 0x30]
jne 0x140115340
mov rax, qword [rbx + 0xf0]
test rax, rax
je 0x140115340
lea rcx, [rsp + 0x70]
call fcn.140112800
test dil, dil
jne 0x140115bb3
mov rax, qword [0x1401ba118]
test rax, rsi
jne 0x140115bc8
xor edi, edi
xor eax, eax
xchg byte [r12], al
cmp al, 2
je 0x140115364
jmp 0x14011536c
call fcn.1400edde0
test al, al
jne 0x140115bb3
mov byte [rbx + 0x41], 1
jmp 0x140115bb3
movzx r9d, byte [rax + r8]
test r9b, r9b
js 0x140115bf4
movdqa xmm0, xmmword [rax]
pmovmskb r8d, xmm0
tzcnt r8d, r8d
movzx r9d, byte [rax + r8]
and r9b, 1
movzx r9d, r9b
sub qword [rbx + 0x78], r9
lea r9, [r8 - 0x10]
and r9, rdx
mov byte [rax + r8], cl
mov byte [rax + r9 + 0x10], cl
inc qword [rbx + 0x80]
shl r8, 5
mov rcx, rax
sub rcx, r8
mov qword [rcx - 0x20], r14
neg r8
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rax + r8 - 0x18], xmm0
mov rax, qword [rsp + 0x78]
mov qword [rcx - 8], rax
movabs rsi, 0x7fffffffffffffff
cmp qword [rsp + 0x68], 0
mov r12, qword [rsp + 0x30]
jne 0x140115ba2
jmp 0x140115b98
mov qword [rsp + 0x30], r12
lea rcx, str.assertion_failed:_prev.ref_count_____1
lea r8, [0x140172bb8]
mov edx, 0x27
call fcn.140018100
jmp 0x140115d99
add rcx, rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], rcx
lea rax, [0x14016ddb0]
mov qword [rsp + 0x20], rax
lea rcx, str.thread_name_may_not_contain_interior_null_bytes
lea r9, [0x14016d488]
lea r8, [rsp + 0x38]
mov edx, 0x2f
call fcn.1400192f0
jmp 0x140115d99
lea rcx, str.APOioINnR7fDZzobiI7dmPYF5KdAUHMURgo5uxUB2cCfr8qbmcvhnzDXT0OGTbLcDmdPxiaHVZdydjzoyr58FtoVYR4Bd3Be8l4MVN4VCoIOqP6cAEiFN9GbQOJhuwTySehghmB4zXMqFH3hOSOQLNY
lea r8, [0x140172d80]
mov edx, 0x2e
call fcn.140018100
jmp 0x140115d99
lea r14, [rsp + 0x48]
mov ecx, 8
mov edx, 0x30
call fcn.140012d60
jmp 0x140115d99
mov ecx, 8
mov edx, 0x38
call fcn.140012d60
jmp 0x140115d99
mov ecx, 8
mov edx, 0x10
call fcn.140012d60
jmp 0x140115d99
test r15b, r15b
jne 0x140115d3a
lock dec qword [rbp]
jne 0x140115d3a
mov rcx, rbp
call fcn.14010de60
lea rax, str.yKVP4SAIbLqfB8EUoY4lOt1ptDk
mov qword [rsp + 0x20], rax
lea rcx, str.6qZ6YrLgb37mJqRjfLXxtnfzg5SuLGY0h7B7lvYSmIG7Y9tGmUe3PpzY1HG8KSAnOcnREqnRxNniYIRLjj8ul1tyXYmKXDGhcokmCoh53WiHRS4Wkpeijwv7kNrOPLPn8CGIYT3lnbCScS7dH4MjW
lea r9, [0x140170470]
lea r8, [rsp + 0x38]
mov edx, 0x46
call fcn.1400192f0
jmp 0x140115d99
lea rax, str.yKVP4SAIbLqfB8EUoY4lOt1ptDk
mov qword [rsp + 0x20], rax
lea rcx, str.6qZ6YrLgb37mJqRjfLXxtnfzg5SuLGY0h7B7lvYSmIG7Y9tGmUe3PpzY1HG8KSAnOcnREqnRxNniYIRLjj8ul1tyXYmKXDGhcokmCoh53WiHRS4Wkpeijwv7kNrOPLPn8CGIYT3lnbCScS7dH4MjW
lea r9, [0x140170470]
lea r8, [rsp + 0x38]
mov edx, 0x46
call fcn.1400192f0
jmp 0x140115d99
add rcx, 0x10
call fcn.1400ea490
ud2