Function at 0x14011e230
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rsi, r9
mov rdi, rcx
mov r14, qword [rsp + 0xb0]
movzx ebx, word [rcx + 8]
test r8, r8
je 0x14011e4d6
mov r15, r8
mov rax, rdx
xor ebp, ebp
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x34], 0
mov qword [rsp + 0x40], rsi
mov r9, rax
cmp r9, r15
je 0x14011e51b
mov r13, r9
movzx r12d, word [r13]
cmp r12w, bx
jae 0x14011e2a3
add r13, 2
mov r14, r13
mov r13, r14
cmp r14, r15
jne 0x14011e284
jmp 0x14011e384
mov rcx, qword [rdi + 0x20]
mov rax, qword [rcx]
mov rsi, qword [rcx + 8]
mov rdx, r12
shr rdx, 6
movzx eax, word [rax + rdx*2]
mov edx, r12d
and edx, 0x3f
add rdx, rax
movzx ebp, word [rsi + rdx*2]
movzx edx, word [rdi + 0xe]
cmp dx, bp
ja 0x14011e28f
mov eax, ebp
and eax, 0xfdff
movzx eax, ax
cmp eax, 0xfc00
je 0x14011e28f
mov eax, r12d
and eax, 0xfc00
cmp eax, 0xd800
jne 0x14011e435
lea r14, [r13 + 2]
cmp r14, r15
je 0x14011e384
movzx eax, word [r14]
mov r8d, eax
and r8d, 0xfc00
cmp r8d, 0xdc00
jne 0x14011e296
shl r12d, 0xa
add r12d, eax
add r12d, 0xfca02400
cmp r12d, dword [rcx + 0x18]
jge 0x14011e343
mov edx, r12d
mov r14, r9
call fcn.140065310
mov r9, r14
movzx edx, word [rdi + 0xe]
jmp 0x14011e349
mov eax, dword [rcx + 0x14]
add eax, 0xfffffffe
cdqe
movzx ebp, word [rsi + rax*2]
cmp dx, bp
setbe al
mov ecx, ebp
and ecx, 0xfdff
cmp ecx, 0xfc00
setne cl
and cl, al
mov eax, ecx
xor al, 1
movzx eax, al
lea r14, [rax*4]
add r14, r13
test cl, cl
je 0x14011e296
jmp 0x14011e387
mov r14, r15
cmp r14, r9
je 0x14011e401
mov rsi, qword [rsp + 0x40]
test rsi, rsi
mov r13, qword [rsp + 0xb0]
je 0x14011e43d
mov rcx, rsi
mov rdx, r9
mov r8, r14
mov r9, r13
call fcn.14011e0c0
test al, al
je 0x14011e4bf
cmp r14, r15
je 0x14011e4bf
xor eax, eax
cmp r12d, 0x10000
setae al
lea rax, [r14 + rax*2]
add rax, 2
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov edx, r12d
mov r8d, ebp
mov r14, rax
mov r9, rsi
call fcn.14011e540
mov r9, r14
test al, al
jne 0x14011e278
jmp 0x14011e4c2
cmp r9, r15
mov rsi, qword [rsp + 0x40]
mov r13, qword [rsp + 0xb0]
je 0x14011e51b
xor eax, eax
cmp r12d, 0x10000
setae al
lea rax, [r14 + rax*2]
add rax, 2
test rsi, rsi
jne 0x14011e3d8
jmp 0x14011e4b8
mov r14, r13
jmp 0x14011e387
cmp r14, r15
je 0x14011e51b
xor eax, eax
cmp r12d, 0x10000
setae al
lea rax, [r14 + rax*2]
add rax, 2
mov dword [rsp + 0x34], 0
mov r9, r14
cmp word [rdi + 0xe], bp
ja 0x14011e471
cmp word [rdi + 0x1e], bp
ja 0x14011e4c2
movzx ecx, bp
mov edx, ecx
shr edx, 1
cmp ecx, 0xfc00
mov ecx, 0
cmovb edx, ecx
cmp byte [rsp + 0x34], dl
setbe cl
test dl, dl
sete r8b
or r8b, cl
mov rcx, r9
cmovne rcx, rax
cmp dl, 2
cmovae rcx, r9
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x34], edx
test r8b, r8b
jne 0x14011e275
jmp 0x14011e4c2
mov r9, qword [rsp + 0x38]
jmp 0x14011e465
mov r9, r14
mov rax, r9
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
movzx ecx, word [rdx + rax]
add rax, 2
cmp cx, bx
jae 0x14011e4ea
test cx, cx
jne 0x14011e4d8
lea r9, [rdx + rax]
add r9, 0xfffffffffffffffe
test rsi, rsi
je 0x14011e4fd
cmp rax, 2
jne 0x14011e520
cmp dword [r14], 0
jg 0x14011e4c2
mov rcx, r9
xor edx, edx
mov r14, r9
call fcn.1400573a0
mov rdx, r14
mov r15, rax
jmp 0x14011e25e
mov r9, r15
jmp 0x14011e4c2
mov rcx, rsi
mov r8, r9
mov r15, r9
mov r9, r14
call fcn.14011e0c0
mov r9, r15
jmp 0x14011e4fd