Function at 0x14001abf0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x50
mov r14, rdx
xor ebp, ebp
movzx edx, byte [rcx + 0x324]
mov rbx, r8
mov rdi, rcx
sub edx, 1
je 0x14001ae07
sub edx, 3
je 0x14001adf0
sub edx, 2
je 0x14001ad76
sub edx, 1
je 0x14001ac49
cmp edx, 1
je 0x14001ac49
mov ebp, 0xfffffec6
jmp 0x14001ae7d
mov rax, qword [rdi + 0x110]
xor ecx, ecx
mov qword [rax], rcx
mov dword [rax + 8], ecx
mov byte [rax + 0xc], cl
test byte [rdi + 0x44a], 1
mov rdx, qword [rdi + 0x110]
jne 0x14001ac8d
mov ecx, dword [rdi + 0x438]
mov ebp, dword [rdi + 0x434]
lea eax, [rcx + 1]
mov dword [rdi + 0x438], eax
cmp ecx, eax
jbe 0x14001ac8d
lea eax, [rbp + 1]
mov dword [rdi + 0x434], eax
mov byte [rdx + 7], cl
mov eax, ebp
shr eax, 0x18
mov byte [rdx], al
mov eax, ebp
shr eax, 0x10
mov byte [rdx + 1], al
mov eax, ebp
mov byte [rdx + 3], bpl
shr eax, 8
mov byte [rdx + 2], al
mov eax, ecx
shr eax, 0x18
mov byte [rdx + 4], al
mov eax, ecx
shr eax, 0x10
mov byte [rdx + 5], al
mov eax, ecx
shr eax, 8
mov byte [rdx + 6], al
movzx eax, word [r8 - 5]
mov rcx, qword [rdi + 0x110]
mov dword [rsp + 0x48], recv
mov word [rcx + 8], ax
movzx eax, byte [r8 - 3]
add r8, 8
mov byte [rcx + 0xa], al
movzx ecx, r9w
sub cx, word [rdi + 0x322]
mov rdx, qword [rdi + 0x110]
sub cx, 8
movzx eax, cx
shr ax, 8
mov byte [rdx + 0xc], cl
mov byte [rdx + 0xb], al
lea rdx, [r14 + 8]
movzx r11d, word [rdi + 0x322]
mov r10, qword [rdi + 0x110]
mov rax, qword [rdi + 0x118]
movzx ecx, r9w
mov qword [rsp + 0x40], r10
sub rcx, r11
mov dword [rsp + 0x38], r11d
add rcx, r14
mov qword [rsp + 0x30], rcx
mov rcx, qword [rdi + 0x108]
movzx r9d, r9w
sub r9d, r11d
mov dword [rsp + 0x28], recv
sub r9d, 8
mov qword [rsp + 0x20], rax
call fcn.140041f40
mov rcx, qword [rdi + 0x118]
mov ebp, eax
mov rdx, qword [rcx + 4]
mov qword [r14], rdx
jmp 0x14001ae7d
mov r15, qword [rcx + 0x108]
movzx esi, r9w
shr esi, 4
test r15, r15
je 0x14001ade6
test r14, r14
je 0x14001ade6
test rbx, rbx
je 0x14001ade6
test esi, esi
je 0x14001ae7d
sub r14, rbx
nop
mov r8d, reloc.WS2_32.dll_recv
lea rcx, [r15 + 0xf8]
mov rdx, rbx
call fcn.14003f190
lea r8, [r15 + 0xf8]
mov rcx, r15
lea rdx, [r15 + 0xf8]
call fcn.14003f360
movups xmm0, xmmword [r15 + 0xf8]
movups xmmword [r14 + rbx], xmm0
add rbx, 0x10
add esi, 0xffffffff
jne 0x14001ada0
jmp 0x14001ae7d
mov ebp, 0xffffff53
jmp 0x14001ae7d
mov rcx, qword [rcx + 0x100]
mov rdx, r14
movzx r9d, r9w
call fcn.140043570
mov ebp, eax
jmp 0x14001ae7d
mov rdi, qword [rcx + 0xf8]
movzx r9d, r9w
test rdi, rdi
je 0x14001ae7d
test r14, r14
je 0x14001ae7d
test rbx, rbx
je 0x14001ae7d
movzx r10d, byte [rdi]
movzx r11d, byte [rdi + 1]
test r9d, r9d
je 0x14001ae76
sub r14, rbx
movzx r8d, byte [r10 + rdi + 2]
lea rbx, [rbx + 1]
lea eax, [r8 + r11]
movzx r11d, al
lea eax, [r10 + 1]
movzx ecx, byte [r11 + rdi + 2]
mov byte [r10 + rdi + 2], cl
movzx r10d, al
mov byte [r11 + rdi + 2], r8b
lea eax, [r8 + rcx]
movzx ecx, al
movzx eax, byte [rcx + rdi + 2]
xor al, byte [rbx - 1]
mov byte [r14 + rbx - 1], al
add r9d, 0xffffffff
jne 0x14001ae32
mov byte [rdi], r10b
mov byte [rdi + 1], r11b
mov rbx, qword [rsp + 0x70]
mov eax, ebp
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
ret