Function at 0x1400126c8
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x18
mov al, byte [0x14016aab0]
mov r10, rdx
movzx r13d, word [0x14016aa5c]
mov r14, rcx
mov r12, qword [0x14016aa38]
mov r15, r9
add r13, qword [0x14016aa60]
mov rdi, r8
mov byte [rsp + 0x60], al
xor r12, 0xb92
mov eax, dword [0x14016aa80]
mov ebp, 0xffffe9d9
inc eax
mov dword [0x14016aa80], eax
inc byte [r8]
movzx r9d, byte [r8]
mov bl, byte [0x14016aaa8]
movsxd rcx, eax
and bl, 8
mov qword [rsp + 0x78], rcx
movzx ecx, byte [rdx]
xor edx, edx
movzx eax, byte [r9 + r8]
mov dword [rsp + 0x68], eax
lea rax, [r15 + rcx*2]
movzx r8d, byte [rcx + rax]
mov eax, 0x19ef
div r8d
movsxd rdx, dword [0x14016aab0]
mov r8, qword [0x14016aa48]
movsxd rsi, eax
movzx eax, byte [r9 + r10 + 0x12]
movzx ecx, byte [rdx + r10]
inc edx
dec dword [0x14016aa8c]
mov dword [0x14016aab0], edx
movzx r11d, byte [r10 + 0x1a94]
add r11, qword [0x14016aaa0]
imul ecx, eax
movzx eax, byte [r15]
movzx edx, byte [rax + r14]
lea rax, [rax + rax*2]
movsxd r9, dword [rax*4 + 0xa17]
mov qword [rsp + 0x70], rcx
mov qword [rsp], rdx
cmp r9d, dword [r8*4 + 0xa17]
jg 0x14001280f
lea r10, [rcx + 0x74]
lea r10, [r10 + r9*4]
mov eax, dword [0x14016aa8c]
dec r8
mov rcx, qword [0x14016aa78]
add eax, eax
mov qword [0x14016aa48], r8
or ebp, 0xa37
movsxd r8, eax
movzx eax, word [0x14016aa70]
imul eax, r9d
inc r9d
cdq
idiv dword [rcx + r8*4]
mov dword [r10], eax
lea r10, [r10 + 4]
mov r8, qword [0x14016aa48]
cmp r9d, dword [r8*4 + 0xa17]
jle 0x1400127c2
mov r9, qword [0x14016aa60]
dec r8
movsxd rdx, r9d
mov r10d, 0x1c68
mov qword [0x14016aa48], r8
cmp rdx, r10
jge 0x140012867
lea r8, [rsi + rdx*2]
add r8, rdx
movzx ecx, byte [r14]
lea rax, [rsi + rcx*2]
xor bl, byte [rcx + rax]
movzx eax, byte [r8]
lea r8, [r8 + 3]
or rax, r9
mov qword [r11 + rdx*8], rax
inc rdx
cmp rdx, r10
jge 0x140012860
mov r9, qword [0x14016aa60]
jmp 0x140012835
mov r8, qword [0x14016aa48]
movzx r11d, byte [rsp + 0x60]
mov rsi, qword [rsp + 0x70]
movzx eax, byte [r11 + rdi]
cdq
idiv dword [0x14016aa88]
mov ecx, eax
mov eax, 0x93da7589
imul ecx
add edx, ecx
movsxd rcx, dword [0x14016aa8c]
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
mov rax, qword [0x14016aa78]
sub edx, r8d
mov r8b, byte [rsp + 0x60]
inc r8b
mov dword [rax + rcx*4], edx
movzx eax, r8b
movzx r8d, r8b
lea r10d, [rax + rax*2]
movsxd rax, dword [0x14016aa8c]
mov dl, byte [rsi + rax*4]
sub dl, byte [r12 + 0x12c4]
movzx eax, byte [rdi]
movzx ecx, byte [r12 + rax*4]
movzx eax, dl
imul eax, ecx
mov edx, dword [rsp + 0x68]
and byte [r10 + r15], al
mov eax, dword [0x14016aa8c]
dec eax
mov dword [0x14016aa8c], eax
cdqe
or dword [rsi + rax*4], edx
movsxd rax, dword [0x14016aa8c]
mov ecx, dword [rax*4 + 0xa17]
mov rax, qword [0x14016aa30]
add ecx, edx
movsxd rdx, ecx
imul rdx, qword [rax + 0xc4c8]
mov rax, qword [rsp + 0x78]
and qword [rax + r10*8], rdx
mov eax, dword [r12 + r10*4]
movsxd r9, dword [0x14016aa8c]
mov dword [0x14016aa84], eax
mov rax, qword [0x14016aa68]
mov rcx, qword [rax + 0x5848]
movabs rax, 0x7d4ce4a19b16e67f
add rcx, 0x165e
mul rcx
mov rax, rcx
sub rax, rdx
shr rax, 1
add rax, rdx
mov rdx, qword [rsp]
shr rax, 0xa
imul rax, rax, 0x55f
sub rcx, rax
add cx, word [rdx + r9*8]
xor edx, edx
sub cx, word [0x14016aa58]
inc r9d
mov word [0x14016aa58], cx
mov dword [0x14016aa8c], r9d
movzx ecx, byte [r8 + rdi]
movzx eax, word [r13 + r10*2]
div ecx
movzx ecx, byte [0x14016aa40]
cdq
idiv ecx
movsxd rcx, r9d
movzx edx, word [rcx + rcx + 0x4a9]
sub eax, edx
xor edx, edx
mov dword [0x14016aa74], eax
mov rax, qword [0x14016aa30]
movzx ecx, byte [r8 + r14]
mov rax, qword [rax + r10*8]
div rcx
movzx r8d, byte [r15]
xor edx, edx
movsxd rcx, ebp
or rax, rcx
mov rcx, qword [0x14016aa50]
div qword [rcx + r8*8 + 0x40]
lea ecx, [r9 + r9*2]
movsxd rdx, ecx
movzx ecx, bl
mov byte [rdx + r14], al
dec dword [0x14016aa8c]
mov eax, dword [rsi + r11*4]
sub eax, ecx
add rsp, 0x18
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret