Function at 0x180029bd0
Capabilities:
Create thread

Disassembly:
mov rax, rsp
push r14
sub rsp, 0xb0
mov qword [rax - 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x180001b10]
xor rax, rsp
mov qword [rsp + 0xa0], rax
mov r14, rcx
cmp edx, 1
jne 0x180029e80
xor edi, edi
mov ebx, edi
lea rsi, [0x1800ed810]
mov dword [rsp + 0x30], ebx
cmp ebx, 5
jge 0x180029c3d
movsxd rax, ebx
lea rcx, [rax + rax*2]
shl rcx, 5
add rcx, rsi
call fcn.180058bc0
test al, al
jne 0x180029c4d
inc ebx
jmp 0x180029c19
call fcn.180058f80
test al, al
jne 0x180029c4d
xor eax, eax
jmp 0x180029e85
call fcn.180058f80
test al, al
je 0x180029c60
mov eax, 1
jmp 0x180029e85
mov qword [0x1800ed778], r14
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x1800ed770], eax
mov rcx, r14
call fcn.1800299f0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x88], rax
call fcn.180029eb0
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], rdi
mov word [rsp + 0x38], di
or rsi, 0xffffffffffffffff
cmp word [rax], 0
jne 0x180029cb9
mov r8, rdi
jmp 0x180029ccb
mov r8, rsi
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x180029cc0
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1800126e0
nop
call fcn.180029fb0
mov r8, rax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x60]
call fcn.18002b320
nop
mov rcx, rax
call fcn.18005a260
nop
cmp qword [rsp + 0x50], 8
jb 0x180029d0c
mov rcx, qword [rsp + 0x38]
call fcn.18008c220
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], rdi
mov word [rsp + 0x38], di
mov rcx, r14
call fcn.180059e60
nop
lea rcx, [0x1800ed870]
call fcn.180058bc0
test al, al
je 0x180029d3d
call fcn.180048760
lea rcx, [0x1800ed990]
call fcn.180058bc0
test al, al
je 0x180029d52
call fcn.180048760
lea rcx, [0x1800ed930]
call fcn.180058bc0
test al, al
je 0x180029dc6
call fcn.180058870
test al, al
je 0x180029d72
xor eax, eax
jmp 0x180029e85
call fcn.180048760
mov dword [rsp + 0x88], edi
lea rax, [rsp + 0x88]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x180029420]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, 0xf
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
test eax, eax
jne 0x180029dbc
call fcn.18005a370
jmp 0x180029dbc
mov eax, 1
jmp 0x180029e85
mov dword [rsp + 0x80], edi
xor eax, eax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x180029420]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.180074400
nop
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x180029e25
mov rdi, qword [rax]
mov edx, 0xf
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
test eax, eax
jne 0x180029e3c
call fcn.18005a370
mov ecx, 0x5dc
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
mov rbx, qword [rsp + 0x98]
test rbx, rbx
je 0x180029e80
mov eax, esi
lock xadd dword [rbx + 8], eax
dec eax
jne 0x180029e80
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
dec esi
jne 0x180029e80
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
jmp 0x180029e80
mov eax, 1
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.1800ae4f0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret