Function at 0x180083378
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x20
mov rax, qword [rdx + 0x10]
xor r10d, r10d
mov r14, qword [rdx]
or esi, 0xffffffff
mov r15, rdx
mov rdi, rcx
mov r8d, r10d
movsxd rbp, dword [rax + 0x14]
mov r9, qword [rax]
lea r12d, [rsi + 2]
mov dword [rcx + 0x149c], r10d
mov dword [rcx + 0x14a0], 0x23d
test ebp, ebp
jle 0x18008345a
mov ecx, r10d
cmp word [r14 + rcx*4], r10w
je 0x1800833fc
add dword [rdi + 0x149c], r12d
mov esi, r8d
movsxd rax, dword [rdi + 0x149c]
mov dword [rdi + rax*4 + 0xba8], r8d
mov byte [rcx + rdi + 0x14a4], r10b
jmp 0x180083402
mov word [r14 + rcx*4 + 2], r10w
add r8d, r12d
add rcx, r12
cmp rcx, rbp
jl 0x1800833d2
jmp 0x18008345a
cmp esi, 2
jge 0x18008341b
add esi, r12d
mov ecx, esi
jmp 0x18008341e
mov ecx, r10d
add dword [rdi + 0x149c], r12d
movsxd rax, dword [rdi + 0x149c]
mov dword [rdi + rax*4 + 0xba8], ecx
movsxd rax, ecx
mov word [r14 + rax*4], r12w
mov byte [rax + rdi + 0x14a4], r10b
dec dword [rdi + 0x1700]
test r9, r9
je 0x18008345a
movzx eax, word [r9 + rax*4 + 2]
sub dword [rdi + 0x1704], eax
cmp dword [rdi + 0x149c], 2
jl 0x18008340f
mov dword [rdx + 8], esi
mov eax, dword [rdi + 0x149c]
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
cmp eax, r12d
jl 0x18008348e
mov r8d, ebx
mov rdx, r14
mov rcx, rdi
call fcn.180083d70
sub ebx, r12d
cmp ebx, r12d
jge 0x180083478
movsxd rax, dword [rdi + 0x149c]
mov r8d, r12d
movsxd rbx, dword [rdi + 0xbac]
mov rdx, r14
mov ecx, dword [rdi + rax*4 + 0xba8]
mov dword [rdi + 0xbac], ecx
mov rcx, rdi
dec dword [rdi + 0x149c]
call fcn.180083d70
movsxd rcx, dword [rdi + 0xbac]
mov r8d, r12d
dec dword [rdi + 0x14a0]
mov r9, rcx
movsxd rax, dword [rdi + 0x14a0]
movsxd rdx, ebp
mov dword [rdi + rax*4 + 0xba8], ebx
dec dword [rdi + 0x14a0]
movsxd rax, dword [rdi + 0x14a0]
mov dword [rdi + rax*4 + 0xba8], ecx
movzx eax, word [r14 + rbx*4]
add ax, word [r14 + rcx*4]
mov word [r14 + rdx*4], ax
movzx ecx, byte [rbx + rdi + 0x14a4]
movzx eax, byte [r9 + rdi + 0x14a4]
cmp cl, al
cmovb ecx, eax
add cl, r12b
mov byte [rdx + rdi + 0x14a4], cl
mov rdx, r14
mov word [r14 + r9*4 + 2], bp
mov rcx, rdi
mov word [r14 + rbx*4 + 2], bp
mov dword [rdi + 0xbac], ebp
add ebp, r12d
call fcn.180083d70
cmp dword [rdi + 0x149c], 2
jge 0x18008348e
dec dword [rdi + 0x14a0]
mov rdx, r15
movsxd r8, dword [rdi + 0x14a0]
mov eax, dword [rdi + 0xbac]
mov dword [rdi + r8*4 + 0xba8], eax
call fcn.180083a60
lea r8, [rdi + 0xb88]
mov edx, esi
mov rcx, r14
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
jmp 0x180083c70
push rbx
sub rsp, 0x50
mov rax, qword [0x1800c33b0]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor r10d, r10d
lea rax, [rsp + 0x22]
mov r11, rcx
sub r8, rax
lea ebx, [r10 + 1]
mov r9d, ebx
lea rax, [r8 + r9*2]
movzx ecx, word [rsp + rax + 0x20]
add r10d, ecx
add r10d, r10d
mov word [rsp + r9*2 + 0x20], r10w
add r9, rbx
cmp r9, 0xf
jle 0x180083c9a
movsxd r10, edx
test edx, edx
js 0x180083ceb
xor r9d, r9d
movzx edx, word [r11 + r9*4 + 2]
test edx, edx
je 0x180083ce3
movzx ecx, word [rsp + rdx*2 + 0x20]
lea eax, [rbx + rcx]
mov word [rsp + rdx*2 + 0x20], ax
call fcn.18008328c
mov word [r11 + r9*4], ax
add r9, rbx
cmp r9, r10
jle 0x180083cc2
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180084a40
add rsp, 0x50
pop rbx
ret