Function at 0x14009cb50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x14009cb50
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x20
mov rax, qword [rdx + 0x10]
xor r11d, r11d
mov rsi, qword [rdx]
mov r15d, 0xffffffff
mov r13, rdx
mov rbx, rcx
mov r8d, r11d
mov edx, r11d
movzx r12d, word [rax + 0x12]
mov r9, qword [rax]
lea ebp, [r15 + 2]
mov dword [rcx + 0x14a4], r11d
mov dword [rcx + 0x14a8], 0x23d
test r12d, r12d
je 0x14009cbf0
cmp word [rsi + rdx*4], r11w
je 0x14009cbd0
movsxd rcx, dword [rbx + 0x14a4]
mov r15d, r8d
lea eax, [rcx + 1]
mov dword [rbx + 0x14a4], eax
mov dword [rbx + rcx*4 + 0xbb4], r8d
mov byte [rbx + rdx + 0x14ac], r11b
jmp 0x14009cbd6
mov word [rsi + rdx*4 + 2], r11w
inc r8d
inc rdx
cmp rdx, r12
jl 0x14009cba4
mov edx, dword [rbx + 0x14a4]
cmp edx, 2
jge 0x14009cc4a
nop dword [rax]
cmp r15d, 2
lea eax, [rdx + 1]
mov dword [rbx + 0x14a4], eax
lea ecx, [r15 + 1]
movsxd rax, edx
mov r8d, ecx
cmovge ecx, r11d
cmovge r8d, r15d
mov dword [rbx + rax*4 + 0xbb4], ecx
movsxd rax, ecx
mov word [rsi + rax*4], bp
mov byte [rax + rbx + 0x14ac], r11b
dec dword [rbx + 0x1708]
test r9, r9
je 0x14009cc3c
movzx eax, word [r9 + rax*4 + 2]
sub dword [rbx + 0x170c], eax
mov edx, dword [rbx + 0x14a4]
mov r15d, r8d
cmp edx, 2
jl 0x14009cbf0
mov dword [r13 + 8], r15d
mov ecx, dword [rbx + 0x14a4]
mov eax, ecx
cdq
sub eax, edx
mov edx, ecx
sar eax, 1
movsxd r11, eax
cmp r11d, ebp
jl 0x14009cd40
mov qword [rsp + 0x50], r14
lea r14, [rbx + 0xbb0]
lea r14, [r14 + r11*4]
nop dword [rax]
mov edx, dword [rbx + 0x14a4]
lea ecx, [r11 + r11]
movsxd rbp, dword [r14]
mov r10d, r11d
cmp ecx, edx
jg 0x14009cd10
jge 0x14009cccc
movsxd rax, ecx
movsxd r9, dword [rbx + rax*4 + 0xbb0]
movsxd r8, dword [rbx + rax*4 + 0xbb4]
movzx eax, word [rsi + r8*4]
cmp ax, word [rsi + r9*4]
jb 0x14009ccca
jne 0x14009cccc
movzx eax, byte [r9 + rbx + 0x14ac]
cmp byte [r8 + rbx + 0x14ac], al
ja 0x14009cccc
inc ecx
movsxd rax, ecx
movsxd r9, dword [rbx + rax*4 + 0xbb0]
movzx eax, word [rsi + rbp*4]
cmp ax, word [rsi + r9*4]
jb 0x14009cd10
jne 0x14009ccf6
movzx eax, byte [r9 + rbx + 0x14ac]
cmp byte [rbp + rbx + 0x14ac], al
jbe 0x14009cd10
movsxd rax, r10d
mov r10d, ecx
add ecx, ecx
mov dword [rbx + rax*4 + 0xbb0], r9d
mov edx, dword [rbx + 0x14a4]
cmp ecx, edx
jle 0x14009cc94
movsxd rax, r10d
dec r11d
sub r14, 4
mov dword [rbx + rax*4 + 0xbb0], ebp
cmp r11d, 1
jge 0x14009cc80
mov ecx, dword [rbx + 0x14a4]
mov ebp, 1
mov r14, qword [rsp + 0x50]
mov edx, ecx
nop dword [rax]
movsxd rdi, dword [rbx + 0xbb4]
mov r8d, ebp
movsxd rax, ecx
mov ecx, dword [rbx + rax*4 + 0xbb0]
lea eax, [rdx - 1]
mov dword [rbx + 0xbb4], ecx
mov rdx, rsi
mov rcx, rbx
mov dword [rbx + 0x14a4], eax
call fcn.140015d00
movsxd rcx, dword [rbx + 0x14a8]
mov r10d, ebp
movsxd rdx, dword [rbx + 0xbb4]
mov r8, rdx
movsxd r11, r12d
lea eax, [rcx - 1]
mov dword [rbx + 0x14a8], eax
mov dword [rbx + rcx*4 + 0xbac], edi
movsxd rcx, dword [rbx + 0x14a8]
lea eax, [rcx - 1]
mov dword [rbx + 0x14a8], eax
mov dword [rbx + rcx*4 + 0xbac], edx
mov ecx, 2
movzx eax, word [rsi + rdx*4]
add ax, word [rsi + rdi*4]
mov word [rsi + r11*4], ax
movzx edx, byte [rdi + rbx + 0x14ac]
movzx eax, byte [r8 + rbx + 0x14ac]
cmp dl, al
cmovb edx, eax
inc dl
mov byte [r11 + rbx + 0x14ac], dl
mov word [rsi + r8*4 + 2], r12w
mov word [rsi + rdi*4 + 2], r12w
mov edi, r12d
mov dword [rbx + 0xbb4], r12d
inc r12d
mov eax, dword [rbx + 0x14a4]
cmp eax, ecx
jl 0x14009ce85
cmp ecx, eax
jge 0x14009ce3f
movsxd rax, ecx
movsxd r9, dword [rbx + rax*4 + 0xbb0]
movsxd r8, dword [rbx + rax*4 + 0xbb4]
movzx eax, word [rsi + r8*4]
cmp ax, word [rsi + r9*4]
jb 0x14009ce3d
jne 0x14009ce3f
movzx eax, byte [r9 + rbx + 0x14ac]
cmp byte [r8 + rbx + 0x14ac], al
ja 0x14009ce3f
inc ecx
movsxd rax, ecx
movsxd r9, dword [rbx + rax*4 + 0xbb0]
movzx eax, word [rsi + r11*4]
cmp ax, word [rsi + r9*4]
jb 0x14009ce85
jne 0x14009ce6b
movzx eax, byte [r9 + rbx + 0x14ac]
cmp byte [r11 + rbx + 0x14ac], al
jbe 0x14009ce85
movsxd rax, r10d
mov r10d, ecx
add ecx, ecx
mov dword [rbx + rax*4 + 0xbb0], r9d
mov eax, dword [rbx + 0x14a4]
cmp ecx, eax
jle 0x14009ce07
movsxd rax, r10d
mov dword [rbx + rax*4 + 0xbb0], edi
mov ecx, dword [rbx + 0x14a4]
mov edx, ecx
cmp ecx, 2
jge 0x14009cd40
movsxd r8, dword [rbx + 0x14a8]
mov rdx, r13
mov rcx, rbx
lea eax, [r8 - 1]
mov dword [rbx + 0x14a8], eax
mov eax, dword [rbx + 0xbb4]
mov dword [rbx + r8*4 + 0xbac], eax
call fcn.140006790
lea r8, [rbx + 0xb90]
mov edx, r15d
mov rcx, rsi
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rsi
jmp fcn.14001db80