Function at 0x14016ae90
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
test r8d, r8d
js 0x14016b155
mov rax, rcx
movzx r10d, word [rdx + 2]
xor r9d, r9d
test r10d, r10d
mov r11d, 0x8a
mov ecx, 7
cmove ecx, r11d
setne r9b
add r9d, 3
inc r8d
xor r11d, r11d
mov ebp, 0xffffffff
xor edi, edi
jmp 0x14016b127
movzx ebx, word [rax + 0x1764]
cmp edi, 9
jg 0x14016b2a5
movzx r14d, word [rax + 0xb3a]
movzx ebp, word [rax + 0xb38]
mov r15d, ebp
mov ecx, r9d
shl r15d, cl
mov ecx, 0x10
sub ecx, r14d
or ebx, r15d
cmp r9d, ecx
jg 0x14016b208
add r9d, r14d
mov dword [rax + 0x1768], r9d
add edi, 0xfffe
cmp r9d, 0xe
jge 0x14016b353
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
add r9d, 3
jmp 0x14016b050
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], bl
mov cl, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov ebx, dword [rax + 0x28]
lea r15d, [rbx + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + rbx], cl
mov r9d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r9b
shr ebp, cl
add r9d, r14d
add r9d, 0xfffffff0
mov ebx, ebp
jmp 0x14016b027
mov edi, ebx
jmp 0x14016aff5
mov r9d, dword [rax + 0x1768]
test esi, esi
je 0x14016aeda
cmp esi, ebp
je 0x14016af97
mov ecx, esi
movzx ebx, word [rax + rcx*4 + 0xaf6]
mov r15d, 0x10
sub r15d, ebx
movzx ebp, word [rax + rcx*4 + 0xaf4]
mov r14d, ebp
mov ecx, r9d
shl r14d, cl
or r14w, word [rax + 0x1764]
mov word [rax + 0x1764], r14w
cmp r9d, r15d
jg 0x14016b160
add r9d, ebx
mov dword [rax + 0x1768], r9d
movzx r14d, word [rax + 0xb36]
mov r15d, 0x10
movzx ebp, word [rax + 0xb34]
mov ebx, ebp
mov ecx, r9d
shl ebx, cl
sub r15d, r14d
or bx, word [rax + 0x1764]
cmp r9d, r15d
jg 0x14016af47
add r9d, r14d
mov dword [rax + 0x1768], r9d
add edi, 0xfffd
cmp r9d, 0xf
jge 0x14016b1af
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
add r9d, 2
mov dword [rax + 0x1768], r9d
jmp 0x14016b100
mov rcx, qword [rax + 0x10]
mov r15d, dword [rax + 0x28]
lea r12d, [r15 + 1]
mov dword [rax + 0x28], r12d
mov byte [rcx + r15], r14b
mov cl, byte [rax + 0x1765]
mov r14, qword [rax + 0x10]
mov r15d, dword [rax + 0x28]
lea r12d, [r15 + 1]
mov dword [rax + 0x28], r12d
mov byte [r14 + r15], cl
mov r14d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r14b
shr ebp, cl
mov word [rax + 0x1764], bp
lea ecx, [rdi + r14]
add ecx, 0xfffffff0
jmp 0x14016b0f6
cmp ebx, r9d
jge 0x14016af9b
mov r9d, esi
mov ecx, dword [rax + 0x1768]
movzx edi, word [rax + r9*4 + 0xaf6]
mov r15d, 0x10
sub r15d, edi
movzx ebp, word [rax + r9*4 + 0xaf4]
mov r14d, ebp
shl r14d, cl
or r14w, word [rax + 0x1764]
mov word [rax + 0x1764], r14w
cmp ecx, r15d
jg 0x14016b05c
add ecx, edi
mov dword [rax + 0x1768], ecx
dec ebx
jne 0x14016b0ba
xor ebx, ebx
test r10d, r10d
je 0x14016b148
xor ecx, ecx
cmp esi, r10d
sete cl
mov r9d, 4
sub r9d, ecx
xor ecx, 7
inc r11
mov ebp, esi
mov edi, ebx
cmp r11, r8
je 0x14016b155
mov esi, r10d
movzx r10d, word [rdx + r11*4 + 6]
lea ebx, [rdi + 1]
cmp ebx, ecx
jge 0x14016b0a8
cmp esi, r10d
jne 0x14016b0a8
mov esi, ebp
jmp 0x14016b11b
mov ecx, 0x8a
mov r9d, 3
jmp 0x14016b11b
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], r14b
mov cl, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov r14d, dword [rax + 0x28]
lea r15d, [r14 + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + r14], cl
mov r9d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, ebx
add r9d, 0xfffffff0
jmp 0x14016afee
movzx ebp, di
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea edi, [r9 + 1]
mov dword [rax + 0x28], edi
mov byte [rcx + r9], bl
mov cl, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov edi, dword [rax + 0x28]
lea ebx, [rdi + 1]
mov dword [rax + 0x28], ebx
mov byte [r9 + rdi], cl
mov r9d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, 0xfffffff2
jmp 0x14016b050
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], bl
mov cl, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov ebx, dword [rax + 0x28]
lea r15d, [rbx + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + rbx], cl
mov r9d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r9b
shr ebp, cl
add r9d, r14d
add r9d, 0xfffffff0
mov ebx, ebp
jmp 0x14016af19
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea r15d, [r9 + 1]
mov dword [rax + 0x28], r15d
mov byte [rcx + r9], bl
mov cl, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov ebx, dword [rax + 0x28]
lea r15d, [rbx + 1]
mov dword [rax + 0x28], r15d
mov byte [r9 + rbx], cl
mov r9d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r9b
shr ebp, cl
add r9d, r14d
add r9d, 0xfffffff0
mov ebx, ebp
jmp 0x14016b2d0
movzx r14d, word [rax + 0xb3e]
movzx ebp, word [rax + 0xb3c]
mov r15d, ebp
mov ecx, r9d
shl r15d, cl
mov ecx, 0x10
sub ecx, r14d
or ebx, r15d
cmp r9d, ecx
jg 0x14016b258
add r9d, r14d
mov dword [rax + 0x1768], r9d
add edi, 0xfff6
cmp r9d, 0xa
jge 0x14016b2fa
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
add r9d, 7
jmp 0x14016b050
movzx ebp, di
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea edi, [r9 + 1]
mov dword [rax + 0x28], edi
mov byte [rcx + r9], bl
mov cl, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov edi, dword [rax + 0x28]
lea ebx, [rdi + 1]
mov dword [rax + 0x28], ebx
mov byte [r9 + rdi], cl
mov r9d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, 0xfffffff7
jmp 0x14016b050
movzx ebp, di
mov ecx, r9d
shl edi, cl
or ebx, edi
mov word [rax + 0x1764], bx
mov rcx, qword [rax + 0x10]
mov r9d, dword [rax + 0x28]
lea edi, [r9 + 1]
mov dword [rax + 0x28], edi
mov byte [rcx + r9], bl
mov cl, byte [rax + 0x1765]
mov r9, qword [rax + 0x10]
mov edi, dword [rax + 0x28]
lea ebx, [rdi + 1]
mov dword [rax + 0x28], ebx
mov byte [r9 + rdi], cl
mov r9d, dword [rax + 0x1768]
mov cl, 0x10
sub cl, r9b
shr ebp, cl
mov word [rax + 0x1764], bp
add r9d, 0xfffffff3
jmp 0x14016b050