Function at 0x140055ed0
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r15, rcx
movzx ecx, byte [rcx + 0x5b]
xor ebp, ebp
sub ecx, 1
mov rsi, rbp
mov byte [r15 + 0x58], 1
test ecx, ecx
mov dword [rsp + 0x60], ecx
mov r14d, ebp
jle 0x140056009
nop
movzx eax, byte [r15 + 0x5a]
lea eax, [rax + r14 + 1]
cdq
idiv ecx
movsxd rax, edx
imul rax, rax, 0x68
cmp dword [rax + r15 + 0x68], ebp
lea rsi, [rax + r15 + 0x60]
je 0x140055ff7
mov rbx, qword [rsi]
mov r12d, ebp
test rbx, rbx
je 0x140055fee
cmp qword [rbx + 0x10], rbp
mov r12d, 1
je 0x140055f85
mov r13, qword [rbx]
nop
nop
nop
nop
mov r8d, r12d
or edx, 0xffffffff
mov rcx, r13
call qword [0x1400bf8b8]
cmp eax, 0xc0
mov edi, eax
je 0x140055f60
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
jne 0x140055f89
mov r12, qword [rbx + 0x20]
cmp dword [0x1400bf010], ebp
je 0x140055fdb
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140055fa3
call qword [0x1400bf098]
mov rcx, rbx
call qword [0x1400bf050]
sub qword [0x1400c5018], 1
mov rcx, rbx
movsxd rdx, eax
sub qword [0x1400c4fd0], rdx
call qword [0x1400bf040]
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x140055fe4
call qword [0x1400bf0a8]
jmp 0x140055fe4
mov rcx, rbx
call qword [0x1400bf040]
mov ecx, dword [rsp + 0x60]
mov dword [rsi + 8], ebp
mov qword [rsi], rbp
test r12d, r12d
jne 0x1400561ef
cmp qword [rsi], rbp
je 0x140056009
add r14d, 1
cmp r14d, ecx
jl 0x140055f10
cmp r14d, ecx
jne 0x14005602b
movsxd rax, ecx
lea rdx, [r15 + 0x38]
imul rax, rax, 0x68
lea rcx, [rax + r15 + 0x60]
call fcn.14004bfc0
mov r12d, eax
jmp 0x1400561ef
mov r8, qword [rsi + 0x28]
mov rcx, rsi
movabs rax, 0x4ec4ec4ec4ec4ec5
sub rcx, r15
sub rcx, 0x60
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
test r8, r8
mov rax, qword [r15 + 0x38]
mov byte [r15 + 0x5a], dl
mov qword [rsi + 0x20], rax
mov rax, qword [r15 + 0x40]
mov qword [rsi + 0x28], rax
mov rax, qword [r15 + 0x48]
mov qword [rsi + 0x30], rax
mov qword [r15 + 0x38], rbp
mov dword [r15 + 0x48], ebp
je 0x1400560da
mov rcx, r8
mov qword [r15 + 0x40], r8
call qword [0x1400bf050]
mov dword [r15 + 0x54], eax
mov qword [rsi], rbp
cmp dword [0x1400bf010], ebp
je 0x140056155
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x1400560af
call qword [0x1400bf098]
lea rdx, [rsp + 0x60]
mov ecx, 0x28
call fcn.140011830
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x1400560d0
call qword [0x1400bf0a8]
mov rbx, qword [rsp + 0x60]
jmp 0x140056163
cmp qword [r15 + 0x40], rbp
je 0x14005608e
movsxd rbx, dword [r15 + 0x54]
test rbx, rbx
je 0x14005613b
cmp rbx, 0x7fffff00
jae 0x14005613b
cmp dword [0x1400bf010], ebp
je 0x140056131
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14005610c
call qword [0x1400bf098]
lea rdx, [rsp + 0x60]
mov ecx, ebx
call fcn.140011830
mov rcx, qword [0x1400c52b8]
test rcx, rcx
je 0x14005612a
call qword [0x1400bf0a8]
mov rax, qword [rsp + 0x60]
jmp 0x14005613e
mov ecx, ebx
call qword [0x1400bf038]
jmp 0x14005613e
mov rax, rbp
test rax, rax
mov qword [r15 + 0x40], rax
jne 0x14005608e
mov eax, 7
jmp 0x1400561f2
mov ecx, 0x28
call qword [0x1400bf038]
mov rbx, rax
test rbx, rbx
jne 0x14005616d
lea ebp, [rbx + 7]
jmp 0x1400561ec
cmp dword [0x1400bf014], ebp
je 0x1400561ac
lea rax, [0x14004ff80]
lea r8, [0x140008520]
mov r9, rbx
mov qword [rbx + 0x10], rax
lea rax, [rbx + 8]
xor edx, edx
mov qword [rsp + 0x28], rax
xor ecx, ecx
mov qword [rbx + 0x18], rsi
mov dword [rsp + 0x20], ebp
call sub.msvcrt.dll__beginthreadex
test rax, rax
mov qword [rbx], rax
jne 0x1400561c1
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
cmp qword [rbx + 0x10], rbp
jne 0x1400561e9
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rdx, [rsi + 0x20]
mov rcx, rsi
mov dword [rbx + 8], eax
call fcn.14004bfc0
mov dword [rsi + 8], 1
cdqe
mov qword [rbx + 0x20], rax
mov qword [rsi], rbx
mov r12d, ebp
mov eax, r12d
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret