Function at 0x14007b4e6
Capabilities:
Create thread

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movdqa xmmword [rsp + 0xd0], xmm8
movdqa xmmword [rsp + 0xc0], xmm7
movdqa xmmword [rsp + 0xb0], xmm6
mov r14, r8
mov rbx, rdx
mov rdi, rcx
lea rsi, [rcx + 0x40]
mov rcx, rsi
call fcn.14006b9de
cmp byte [rdi + 0xc4], 0
je 0x14007b54f
mov rcx, rbx
call fcn.1400778bf
xor ebx, ebx
mov rcx, rsi
call fcn.14006b9cf
mov eax, 1
jmp 0x14007ba33
mov rcx, qword [rdi + 0x50]
mov rax, qword [rdi + 0x60]
cmp rax, rcx
jne 0x14007b56d
lea rcx, [rdi + 0x48]
call fcn.14007a7df
mov rcx, qword [rdi + 0x50]
mov rax, qword [rdi + 0x60]
mov rdx, qword [rdi + 0x58]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rdi + 0x48]
shl rdx, 4
mov qword [rcx + rdx], rbx
mov byte [rcx + rdx + 8], 1
inc rax
mov qword [rdi + 0x60], rax
lock inc qword [rdi + 0x108]
mov rax, qword [rdi + 0x100]
test rax, rax
je 0x14007b5cf
lock dec qword [rdi + 0x100]
inc dword [rdi + 0xc0]
add rdi, 0xc8
mov rcx, rdi
call fcn.1400778d2
jmp 0x14007ba29
mov rax, qword [rdi + 0xf8]
cmp rax, qword [rdi + 0xf0]
je 0x14007ba29
mov r12, qword [rdi + 0x98]
test r12, r12
je 0x14007bb6f
lock inc qword [r12]
jle 0x14007bb6f
mov rbx, qword [rdi + 0xb8]
mov rax, qword [rdi + 0x30]
mov r8, qword [rdi + 0x38]
mov rcx, qword [r8 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
lea rdx, [rcx + rax]
add rdx, 0x10
lea rcx, [rsp + 0x60]
call qword [r8 + 0x28]
mov r15, qword [rdi + 0x10]
test r15, r15
mov qword [rsp + 0x48], r12
je 0x14007b63d
mov r12, qword [rdi + 0x18]
jmp 0x14007b63d
mov r13, qword [rsp + 0x60]
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x40], rax
mov rbp, qword [rsp + 0x70]
mov rcx, qword [r14]
mov rdx, qword [r14 + 8]
call fcn.140077e91
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x50], rdx
test r15, r15
jne 0x14007b714
mov r12, qword [0x1401060b8]
test r12, r12
je 0x14007b684
dec r12
jmp 0x14007b714
lea rdx, [0x1400d5b81]
lea r14, [rsp + 0x60]
mov r8d, 0xe
mov rcx, r14
call fcn.14007564e
movzx eax, byte [r14 + 0x18]
cmp eax, 2
je 0x14007b702
cmp eax, 3
jne 0x14007b6f3
mov r14, qword [rsp + 0x60]
test r14, r14
je 0x14007b702
lea r12, [rsp + 0x60]
mov rax, qword [r12 + 8]
mov qword [rsp + 0x38], rax
mov r8, qword [r12 + 0x10]
mov rcx, r12
mov rdx, r14
call fcn.140013c0b
mov r15b, byte [r12]
mov r12, qword [r12 + 8]
mov rcx, r14
mov rdx, qword [rsp + 0x38]
call fcn.14000b1af
test r15b, r15b
jne 0x14007b702
jmp 0x14007b708
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
call fcn.14000b1af
mov r12d, 0x200000
lea rax, [r12 + 1]
mov qword [0x1401060b8], rax
test r13, r13
mov qword [rsp + 0x38], r12
je 0x14007b73a
cmp rbp, 0xf
ja 0x14007b73e
xor eax, eax
xor ecx, ecx
cmp rbp, rcx
je 0x14007b752
cmp byte [r13 + rcx], 0
je 0x14007b74d
inc rcx
jmp 0x14007b728
xor ecx, ecx
jmp 0x14007b778
xor ecx, ecx
mov rdx, r13
mov r8, rbp
call fcn.140011bdb
jmp 0x14007b752
mov eax, 1
test rax, rax
jne 0x14007bb6f
lea rcx, [rsp + 0x60]
mov qword [rcx], r13
mov rax, qword [rsp + 0x40]
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rbp
call fcn.14000b37e
mov rcx, rax
call fcn.14007438c
mov qword [rsp + 0x88], rax
lock inc qword [rax]
jle 0x14007bb6f
mov r13, rax
mov ecx, 0x30
mov edx, 8
call fcn.140077478
mov rbp, rax
mov eax, 1
mov qword [rbp], rax
mov qword [rbp + 8], rax
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x10], xmm0
mov qword [rsp + 0x80], rbp
lock inc qword [rbp]
jle 0x14007bb6f
xor ecx, ecx
call fcn.1400754af
mov r14, rax
test rax, rax
je 0x14007b7eb
lock inc qword [r14]
jle 0x14007bb6f
mov rcx, r14
jmp 0x14007b7ed
xor ecx, ecx
call fcn.1400754af
lea rcx, [rsp + 0x60]
mov qword [rcx], rax
call fcn.14007549b
mov rax, qword [rsp + 0x80]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x14007b81b
lock inc qword [rcx + 0x18]
jle 0x14007bb64
mov ecx, 0x38
mov edx, 8
call fcn.140077478
mov r15, rax
mov qword [rax], r13
mov qword [rax + 8], rbp
mov qword [rax + 0x10], r14
mov rax, qword [rsp + 0x58]
mov qword [r15 + 0x18], rax
mov rax, qword [rsp + 0x50]
mov qword [r15 + 0x20], rax
mov rax, qword [rsp + 0x48]
mov qword [r15 + 0x28], rax
mov qword [r15 + 0x30], rbx
mov ecx, 0x10
mov edx, 8
call fcn.140074b74
mov r14, rax
mov qword [rax], r15
lea rax, [0x1400d6670]
mov qword [r14 + 8], rax
and qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10000
lea r8, [0x1400754f3]
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
mov r9, r14
call sub.kernel32.dll_CreateThread
test rax, rax
je 0x14007ba63
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x48], rax
lock inc qword [rdi + 0xf8]
inc qword [rdi + 0xb8]
mov rcx, qword [rdi + 0x88]
mov rdx, qword [rdi + 0x90]
mov r8, rbx
call fcn.140077c7a
mov r14, rax
cmp qword [rdi + 0x78], 0
je 0x14007bacf
mov r15, qword [rdi + 0x68]
mov r12, qword [rdi + 0x70]
mov rbp, r12
and rbp, r14
shr r14, 0x39
mov qword [rsp + 0x98], r14
movd xmm0, r14d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
lea r14, [r15 - 0x20]
xor eax, eax
mov qword [rsp + 0x50], rax
lea r13, [rsp + 0x60]
pcmpeqd xmm7, xmm7
xor eax, eax
mov qword [rsp + 0x58], rax
movdqu xmm8, xmmword [r15 + rbp]
movdqa xmm0, xmm6
pcmpeqb xmm0, xmm8
pmovmskb eax, xmm0
mov word [rsp + 0x60], ax
mov rcx, r13
call fcn.14003813a
test rax, rax
je 0x14007b97d
add rdx, rbp
and rdx, r12
mov rax, rdx
shl rax, 5
mov rcx, r14
sub rcx, rax
cmp qword [rcx], rbx
jne 0x14007b956
jmp 0x14007b9e3
cmp qword [rsp + 0x58], 0
mov eax, 1
jne 0x14007b9af
movdqa xmmword [rsp + 0xa0], xmm8
mov rcx, r12
lea rdx, [rsp + 0xa0]
mov r8, rbp
call fcn.140054094
mov qword [rsp + 0x90], rdx
pcmpeqb xmm8, xmm7
pmovmskb ecx, xmm8
test ecx, ecx
jne 0x14007bae4
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x50]
add rbp, rax
add rbp, 0x10
add rax, 0x10
mov qword [rsp + 0x50], rax
and rbp, r12
jmp 0x14007b93e
neg rdx
shl rdx, 5
mov rax, qword [r15 + rdx - 8]
mov qword [rsp + 0x70], rax
movdqu xmm0, xmmword [r15 + rdx - 0x18]
movdqa xmmword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0x40]
mov qword [r15 + rdx - 0x18], rax
mov rax, qword [rsp + 0x48]
mov qword [r15 + rdx - 0x10], rax
mov rax, qword [rsp + 0x38]
mov qword [r15 + rdx - 8], rax
lea rcx, [rsp + 0x60]
call fcn.140076cc3
mov rcx, rsi
call fcn.14006b9cf
xor eax, eax
mov rdx, rbx
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r14]
mov rax, qword [r14 + 8]
call qword [rax]
mov rcx, qword [r14]
mov rdx, qword [r14 + 8]
call fcn.1400747fa
mov rcx, r14
call fcn.14007480d
call fcn.140034700
mov rbx, rax
lea rcx, [rsp + 0x80]
call fcn.140076d76
lea rcx, [rsp + 0x88]
call fcn.14007443e
mov rcx, rbx
call fcn.140077553
cmp al, 0xd
jne 0x14007b53d
mov rax, qword [rdi + 0xf8]
test rax, rax
je 0x14007b53d
mov rcx, rbx
call fcn.14001c4c0
jmp 0x14007ba29
lea rcx, [rdi + 0x68]
lea rdx, [rdi + 0x88]
call fcn.14007b04a
jmp 0x14007b8f6
mov rdx, qword [rsp + 0x90]
mov al, byte [r15 + rdx]
test al, al
js 0x14007bb04
movdqa xmm0, xmmword [r15]
pmovmskb eax, xmm0
bsf edx, eax
mov al, byte [r15 + rdx]
and al, 1
movzx eax, al
sub qword [rdi + 0x78], rax
lea rax, [rdx - 0x10]
and rax, r12
mov rcx, qword [rsp + 0x98]
mov byte [r15 + rdx], cl
mov byte [rax + r15 + 0x10], cl
inc qword [rdi + 0x80]
shl rdx, 5
mov rax, r15
sub rax, rdx
neg rdx
mov qword [r15 + rdx - 0x20], rbx
mov rcx, qword [rsp + 0x40]
mov qword [rax - 0x18], rcx
mov rcx, qword [rsp + 0x48]
mov qword [rax - 0x10], rcx
mov rcx, qword [rsp + 0x38]
mov qword [rax - 8], rcx
and qword [rsp + 0x60], 0
jmp 0x14007ba1f
add rcx, 0x10
xor edx, edx
call fcn.14007463f
ud2