Function at 0x14018b2e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
movsxd r13, edx
mov rdi, rcx
lea rdx, [rsp + 0x20]
movsxd rbx, r9d
mov rcx, r8
mov rbp, r13
call qword [rdi + r13*8 + 0xe300]
mov r12d, dword [rsp + 0x20]
mov r11d, 1
movsxd r15, eax
mov r8d, r11d
sub r12d, r15d
xor r10d, r10d
mov dword [rsp + 0xb8], r12d
lea ecx, [r15 + 1]
mov dword [rsp + r15*4 + 0x30], 2
movsxd rdx, ecx
mov dword [rsp + rdx*4 + 0x30], 2
mov eax, dword [rsp + 0x30]
sub r8d, eax
lea ecx, [rax + 1]
mov eax, r11d
or r8, rcx
mov ecx, dword [rsp + 0x34]
sub eax, ecx
shr r8, 0x1f
movsxd rdx, eax
lea eax, [rcx + 1]
movsxd rcx, eax
mov eax, r11d
or rdx, rcx
mov ecx, dword [rsp + 0x38]
sub eax, ecx
sar rdx, 0x1f
and edx, 2
or r8, rdx
movsxd rdx, eax
lea eax, [rcx + 1]
movsxd rcx, eax
lea eax, [r15 - 1]
or rdx, rcx
movsxd r14, eax
sar rdx, 0x1f
lea rcx, [0x140000000]
and edx, 4
mov rax, rbx
or r8, rdx
shl rax, 4
add rax, r14
lea rbx, [0x140000000]
movzx esi, byte [r8 + rcx + 0x326bf0]
lea rax, [rsi + rax*4]
movzx edx, byte [rbx + rax*2 + 0x2ff1f1]
add edx, dword [rdi + 0x92c]
cmp r15d, 0xa
jle 0x14018b3e9
mov ecx, r11d
cmp esi, 3
jb 0x14018b3ec
mov ecx, r10d
lea r8d, [rdx + rsi]
mov dword [rdi + 0x92c], r8d
cmp esi, r15d
jge 0x14018b5a5
movsxd r9, dword [rsp + rsi*4 + 0x30]
mov eax, r9d
mov edx, r9d
sar eax, 0x1f
or eax, r11d
cmp esi, 3
cmovb r10d, eax
lea eax, [r9 + 0x40]
sub edx, r10d
cmp eax, 0x80
jae 0x14018b451
shl rcx, 7
movsxd rax, edx
add rax, rcx
movzx eax, byte [rbx + rax*4 + 0x456402]
add r8d, eax
lea rax, [rcx + r9]
mov dword [rdi + 0x92c], r8d
movzx r9d, byte [rbx + rax*4 + 0x456403]
jmp 0x14018b468
mov r8d, edx
mov edx, ecx
mov rcx, rdi
call fcn.14018b1f0
mov r8d, dword [rdi + 0x92c]
mov r9d, eax
lea edx, [rsi + 1]
mov r11d, r8d
cmp edx, r15d
jge 0x14018b5a5
lea rsi, [rsp + 0x30]
mov ebp, r15d
lea rsi, [rsi + rdx*4]
sub ebp, edx
mov r12d, 1
nop dword [rax + rax]
movsxd rdx, dword [rsi]
lea eax, [rdx + 0x40]
cmp eax, 0x80
jae 0x14018b4ca
movsxd rcx, r9d
shl rcx, 7
add rcx, rdx
movzx eax, byte [rbx + rcx*4 + 0x456402]
add dword [rdi + 0x92c], eax
mov r8d, dword [rdi + 0x92c]
movzx r9d, byte [rbx + rcx*4 + 0x456403]
jmp 0x14018b589
mov eax, edx
mov ecx, r9d
sar eax, 0x1f
mov r8d, reloc.WS2_32.dll_ntohs
mov ebx, eax
xor ebx, edx
sub ebx, eax
lea r10d, [rbx + rbx]
sub r10d, eax
sub r10d, 2
mov eax, r10d
sar eax, cl
cmp eax, r8d
jge 0x14018b4ff
lea r8d, [r11 + rax]
inc r8d
add r8d, r9d
jmp 0x14018b558
mov eax, r8d
shl eax, cl
sub r10d, eax
test r9d, r9d
lea edx, [r10 - 0xf]
cmovne edx, r10d
cmp edx, 0x1000
jl 0x14018b550
cmp dword [rdi + 0x3214], 0x64
jl 0x14018b549
mov eax, 0x1000
mov ecx, listen
nop dword [rax]
sub edx, eax
inc ecx
mov eax, r12d
inc r8d
shl eax, cl
cmp edx, eax
jge 0x14018b530
mov r11d, dword [rdi + 0x92c]
jmp 0x14018b550
add r11d, 0x7d0
lea r8d, [r8 - 1]
lea r8d, [r11 + r8*2]
test r9d, r9d
mov dword [rdi + 0x92c], r8d
lea rcx, [0x140000000]
cmove r9d, r12d
movsxd rdx, r9d
movzx ecx, word [rcx + rdx*2 + 0x326be0]
lea r9d, [rdx + 1]
cmp ebx, ecx
lea rbx, [0x140000000]
cmovle r9d, edx
add rsi, 4
mov r11d, r8d
sub rbp, 1
jne 0x14018b490
mov r12d, dword [rsp + 0xb8]
mov rbp, r13
cmp r13d, 3
jne 0x14018b5fa
mov ecx, dword [rdi + 0x6e10]
mov eax, 8
sar eax, cl
cmp r15d, eax
jge 0x14018b621
movsxd rax, r12d
inc rax
cmp dword [rdi + 0x3318], 1
jne 0x14018b5e3
lea rax, [rax + r14*4]
movzx eax, word [rbx + rax*2 + 0x2ff6d0]
movzx ecx, ax
shr ecx, 8
add r8d, ecx
jmp 0x14018b61a
lea rax, [rax + r14*8]
movzx eax, word [rbx + rax*2 + 0x2ff6f0]
movzx ecx, ax
shr ecx, 8
add r8d, ecx
jmp 0x14018b61a
cmp r15b, byte [rbx + rbp + 0x326bf8]
jae 0x14018b621
shl r14, 4
movsxd rax, r12d
add r14, rax
movzx eax, byte [rbx + r14*2 + 0x2ff4f3]
add r8d, eax
mov dword [rdi + 0x92c], r8d
movsxd rax, dword [rsp + 0x24]
lea r11, [rsp + 0x80]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov ecx, dword [rbx + rax*4 + 0x416300]
mov eax, r15d
mov rbx, qword [r11 + 0x30]
and ecx, 0x1f
add ecx, r8d
mov dword [rdi + 0x92c], ecx
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret