Function at 0x140025e48
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 r12
push r13
push r14
push r15
sub rsp, 0x20
mov rax, qword [rdx + 0x10]
xor r11d, r11d
mov r14, qword [rdx]
or esi, 0xffffffff
mov r15, rdx
mov rdi, rcx
mov r8d, r11d
mov edx, r11d
movsxd rbp, dword [rax + 0x14]
mov r10, qword [rax]
lea r12d, [rsi + 2]
mov dword [rcx + 0x149c], r11d
lea r13d, [rsi + 3]
mov dword [rcx + 0x14a0], 0x23d
test ebp, ebp
jle 0x140025ee0
cmp word [r14 + rdx*4], r11w
je 0x140025ecd
movsxd rcx, dword [rdi + 0x149c]
mov esi, r8d
lea eax, [rcx + 1]
mov dword [rdi + 0x149c], eax
mov dword [rdi + rcx*4 + 0xbac], r8d
mov byte [rdx + rdi + 0x14a4], r11b
jmp 0x140025ed3
mov word [r14 + rdx*4 + 2], r11w
add r8d, r12d
add rdx, r12
cmp rdx, rbp
jl 0x140025ea1
jmp 0x140025f2c
cmp esi, r13d
lea eax, [rsi + 1]
lea ecx, [rsi + 1]
cmovge eax, esi
cmovge ecx, r11d
mov esi, eax
lea eax, [rdx + 1]
mov dword [rdi + 0x149c], eax
movsxd rax, edx
mov dword [rdi + rax*4 + 0xbac], ecx
movsxd rax, ecx
mov word [r14 + rax*4], r12w
mov byte [rax + rdi + 0x14a4], r11b
dec dword [rdi + 0x1700]
test r10, r10
je 0x140025f2c
movzx eax, word [r10 + rax*4 + 2]
sub dword [rdi + 0x1704], eax
mov edx, dword [rdi + 0x149c]
cmp edx, r13d
jl 0x140025ee0
mov dword [r15 + 8], esi
mov ecx, dword [rdi + 0x149c]
mov eax, ecx
cdq
idiv r13d
mov ebx, eax
cmp eax, r12d
jl 0x140025f6a
mov r8d, ebx
mov rdx, r14
mov rcx, rdi
call fcn.1400268a4
sub ebx, r12d
cmp ebx, r12d
jge 0x140025f4e
mov ecx, dword [rdi + 0x149c]
movsxd rbx, dword [rdi + 0xbac]
mov r8d, r12d
movsxd rax, ecx
mov rdx, r14
mov ecx, dword [rdi + rax*4 + 0xba8]
mov dword [rdi + 0xbac], ecx
mov rcx, rdi
dec dword [rdi + 0x149c]
call fcn.1400268a4
movsxd rcx, dword [rdi + 0x14a0]
mov r8d, r12d
movsxd rdx, dword [rdi + 0xbac]
mov r9, rdx
lea eax, [rcx - 1]
mov dword [rdi + 0x14a0], eax
mov dword [rdi + rcx*4 + 0xba4], ebx
movsxd rcx, dword [rdi + 0x14a0]
lea eax, [rcx - 1]
mov dword [rdi + 0x14a0], eax
mov dword [rdi + rcx*4 + 0xba4], edx
movzx eax, word [r14 + rbx*4]
add ax, word [r14 + r9*4]
movsxd rdx, ebp
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.1400268a4
mov ecx, dword [rdi + 0x149c]
cmp ecx, r13d
jge 0x140025f6a
movsxd r8, dword [rdi + 0x14a0]
mov rdx, r15
mov rcx, rdi
lea eax, [r8 - 1]
mov dword [rdi + 0x14a0], eax
mov eax, dword [rdi + 0xbac]
mov dword [rdi + r8*4 + 0xba4], eax
call fcn.140026560
lea r8, [rdi + 0xb88]
mov edx, esi
mov rcx, r14
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
jmp 0x140026784
push rbx
sub rsp, 0x30
mov rax, qword [0x140043db0]
xor rax, rsp
mov qword [rsp + 0x20], rax
xor r10d, r10d
lea rax, [rsp + 2]
mov r11, rcx
sub r8, rax
lea ebx, [r10 + 1]
mov r9d, ebx
lea rax, [r8 + r9*2]
movzx ecx, word [rsp + rax]
add r10d, ecx
add r10d, r10d
mov word [rsp + r9*2], r10w
add r9, rbx
cmp r9, 0xf
jle 0x1400267ae
movsxd r9, edx
test edx, edx
js 0x140026811
xor edx, edx
movzx r8d, word [r11 + rdx*4 + 2]
test r8d, r8d
je 0x140026809
movzx r10d, word [rsp + r8*2]
xor ecx, ecx
lea eax, [rbx + r10]
mov word [rsp + r8*2], ax
mov eax, r10d
sub r8d, ebx
and eax, ebx
shr r10d, 1
or ecx, eax
add ecx, ecx
test r8d, r8d
jg 0x1400267ee
shr ecx, 1
mov word [r11 + rdx*4], cx
add rdx, rbx
cmp rdx, r9
jle 0x1400267d3
mov rcx, qword [rsp + 0x20]
xor rcx, rsp
call fcn.14000f940
add rsp, 0x30
pop rbx
ret