Function at 0x47d320
Capabilities:
Create thread

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
xor ebp, ebp
mov qword [rax - 0x10], r13
mov qword [rax - 0x18], r14
mov qword [rax - 0x20], r15
mov r15, rcx
movzx ecx, byte [rcx + 0x5b]
mov rdi, rbp
dec ecx
mov byte [r15 + 0x58], 1
mov r14d, ebp
test ecx, ecx
mov dword [rsp + 0x30], ecx
jle 0x47d48b
nop
nop
movzx eax, byte [r15 + 0x5a]
lea eax, [rax + r14 + 1]
cdq
idiv ecx
movsxd rax, edx
lea rdi, [rax + rax*2 + 3]
shl rdi, 5
add rdi, r15
cmp dword [rdi + 8], ebp
je 0x47d47a
mov rbx, qword [rdi]
mov r12d, ebp
test rbx, rbx
je 0x47d471
cmp qword [rbx + 0x10], rbp
mov r12d, 1
je 0x47d3da
mov r13, qword [rbx]
mov edx, 0xffffffff
mov r8d, r12d
mov rcx, r13
call qword [0x0072da88]
cmp eax, 0xc0
mov esi, eax
je 0x47d3b3
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x47d3de
mov r12, qword [rbx + 0x20]
cmp dword [reloc.WS2_32.dll_accept], ebp
je 0x47d45e
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x47d3f8
call qword [0x0072d0f8]
mov rcx, rbx
call qword [0x0072d0b0]
mov edx, dword [0x00772960]
mov rcx, rbx
neg eax
add edx, eax
mov eax, dword [0x00772988]
cmp edx, eax
mov dword [0x00772960], edx
cmovg eax, edx
mov edx, dword [0x00772984]
dec edx
mov dword [0x00772988], eax
mov eax, dword [0x007729ac]
cmp edx, eax
mov dword [0x00772984], edx
cmovg eax, edx
mov dword [0x007729ac], eax
call qword [0x0072d0a0]
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x47d467
call qword [0x0072d108]
jmp 0x47d467
mov rcx, rbx
call qword [0x0072d0a0]
mov ecx, dword [rsp + 0x30]
mov dword [rdi + 8], ebp
mov qword [rdi], rbp
test r12d, r12d
jne 0x47d69f
cmp qword [rdi], rbp
je 0x47d48b
inc r14d
cmp r14d, ecx
jl 0x47d370
cmp r14d, ecx
jne 0x47d4b0
movsxd rax, ecx
lea rdx, [r15 + 0x38]
lea rcx, [rax + rax*2 + 3]
shl rcx, 5
add rcx, r15
call fcn.0047cb20
mov r12d, eax
jmp 0x47d69f
mov r8, qword [rdi + 0x28]
mov rcx, rdi
movabs rax, 0x2aaaaaaaaaaaaaab
sub rcx, r15
sub rcx, 0x60
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
test r8, r8
mov rax, qword [r15 + 0x38]
mov byte [r15 + 0x5a], dl
mov qword [rdi + 0x20], rax
mov rax, qword [r15 + 0x40]
mov qword [rdi + 0x28], rax
mov rax, qword [r15 + 0x48]
mov qword [rdi + 0x30], rax
mov qword [r15 + 0x38], rbp
mov dword [r15 + 0x48], ebp
je 0x47d563
mov rcx, r8
mov qword [r15 + 0x40], r8
call qword [0x0072d0b0]
mov dword [r15 + 0x54], eax
mov qword [rdi], rbp
cmp dword [reloc.WS2_32.dll_accept], ebp
je 0x47d5e5
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x47d534
call qword [0x0072d0f8]
lea rdx, [rsp + 0x30]
mov ecx, Ordinal_41
call fcn.0043a720
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x47d5f5
call qword [0x0072d108]
mov rbx, qword [rsp + 0x30]
jmp 0x47d5fa
cmp qword [r15 + 0x40], rbp
je 0x47d513
movsxd rbx, dword [r15 + 0x54]
test rbx, rbx
je 0x47d5c4
cmp rbx, 0x7fffff00
jae 0x47d5c4
cmp dword [reloc.WS2_32.dll_accept], ebp
je 0x47d5ba
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x47d595
call qword [0x0072d0f8]
lea rdx, [rsp + 0x30]
mov ecx, ebx
call fcn.0043a720
mov rcx, qword [0x00772b88]
test rcx, rcx
je 0x47d5c9
call qword [0x0072d108]
mov rax, qword [rsp + 0x30]
jmp 0x47d5ce
mov ecx, ebx
call qword [0x0072d098]
jmp 0x47d5ce
mov rax, rbp
jmp 0x47d5ce
mov rax, qword [rsp + 0x30]
test rax, rax
mov qword [r15 + 0x40], rax
jne 0x47d513
mov eax, 7
jmp 0x47d6a2
mov ecx, Ordinal_41
call qword [0x0072d098]
mov rbx, rax
jmp 0x47d5fa
mov rbx, qword [rsp + 0x30]
test rbx, rbx
jne 0x47d607
lea ebp, [rbx + 7]
jmp 0x47d69c
cmp dword [reloc.WS2_32.dll_accept], ebp
jne 0x47d626
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
jmp 0x47d671
lea rax, [0x0047d2f0]
lea r8, [0x00426130]
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], rdi
mov dword [rsp + 0x20], ebp
call qword [sym.imp.msvcrt.dll__beginthreadex]
test rax, rax
mov qword [rbx], rax
jne 0x47d671
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 0x47d699
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rdx, [rdi + 0x20]
mov rcx, rdi
mov dword [rbx + 8], eax
call fcn.0047cb20
mov dword [rdi + 8], 1
cdqe
mov qword [rbx + 0x20], rax
mov qword [rdi], rbx
mov r12d, ebp
mov eax, r12d
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x50]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
add rsp, 0x68
ret