Function at 0x1800314a0
Capabilities:
Create thread

Disassembly:
mov rax, rsp
push r14
sub rsp, 0xa0
mov qword [rax - 0x30], 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 + 0x98], rax
mov r14, rcx
cmp edx, 1
jne 0x180031735
xor edi, edi
mov ebx, edi
lea rsi, [0x1800f3150]
mov dword [rsp + 0x30], ebx
cmp ebx, 5
jge 0x18003150d
movsxd rax, ebx
lea rcx, [rax + rax*2]
shl rcx, 5
add rcx, rsi
call fcn.18005c230
test al, al
jne 0x180031520
inc ebx
jmp 0x1800314e9
mov rcx, r14
call fcn.18005c5f0
test al, al
jne 0x180031520
xor eax, eax
jmp 0x18003173a
mov rcx, r14
call fcn.18005c5f0
test al, al
je 0x180031536
mov eax, 1
jmp 0x18003173a
mov qword [0x1800f30c8], r14
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x1800f30c0], eax
mov rcx, r14
call fcn.1800312c0
call fcn.180031770
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 0x180031582
mov r8, rdi
jmp 0x180031590
mov r8, rsi
inc r8
cmp word [rax + r8*2], 0
jne 0x180031585
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.180012660
nop
call fcn.180031870
mov r8, rax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x58]
call fcn.1800329d0
nop
mov rcx, rax
call fcn.180031270
nop
cmp qword [rsp + 0x70], 8
jb 0x1800315d1
mov rcx, qword [rsp + 0x58]
call fcn.18008fef0
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], rdi
mov word [rsp + 0x58], di
cmp qword [rsp + 0x50], 8
jb 0x1800315f6
mov rcx, qword [rsp + 0x38]
call fcn.18008fef0
mov qword [rsp + 0x50], 7
mov qword [rsp + 0x48], rdi
mov word [rsp + 0x38], di
mov rcx, r14
call fcn.18005d750
nop
call fcn.1800114e0
test al, al
je 0x180031620
call fcn.18004df30
call fcn.180011630
test al, al
je 0x18003162e
call fcn.18004df30
call fcn.1800115c0
test al, al
je 0x18003168a
call fcn.18005bed0
test al, al
je 0x180031647
xor eax, eax
jmp 0x18003173a
call fcn.18004df30
mov dword [rsp + 0x84], edi
lea rax, [rsp + 0x84]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x180030ca0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
call fcn.18005e230
mov eax, 1
jmp 0x18003173a
mov dword [rsp + 0x80], edi
xor eax, eax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
xor r9d, r9d
lea r8, [0x180030ca0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.180072d70
nop
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x1800316e9
mov rdi, qword [rax]
mov rcx, rdi
call fcn.18005e230
mov ecx, 0x5dc
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
mov rbx, qword [rsp + 0x90]
test rbx, rbx
je 0x180031735
mov eax, esi
lock xadd dword [rbx + 8], eax
dec eax
jne 0x180031735
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], esi
dec esi
jne 0x180031735
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x180031735
mov eax, 1
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.1800b33d0
lea r11, [rsp + 0xa0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret