Function at 0x140010e10
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x30
mov ebp, dword [rcx + 0xb90]
mov rbx, rcx
movsxd rax, dword [rcx + 0x2e0]
mov esi, r9d
mov r14d, dword [rsp + 0x70]
mov rdi, rdx
shl rax, 4
and ebp, r14d
add rax, 0x35ce
mov r9d, ebp
add rax, r9
mov r11d, r8d
lea rcx, [rcx + rax*2]
mov rax, qword [rbx + 0x18]
lea rdx, [rbx + rax*4]
cmp r8d, 0xffffffff
jne 0x140010fc4
xor r10d, r10d
mov qword [rsp + 0x50], r15
mov dword [rdx + 0x28], r10d
mov r9d, 8
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rcx
mov ecx, r9d
inc qword [rbx + 0x18]
sub cl, byte [rbx + 0xb94]
mov r15, qword [rdi]
mov r11d, dword [rdi + 0x18]
mov eax, r11d
sub eax, dword [rdi + 0x1c]
mov r8d, eax
dec eax
movzx edx, byte [rax + r15]
mov eax, dword [rbx + 0xb98]
movzx ebp, byte [r8 + r15]
and eax, r14d
shr edx, cl
lea r14, [rbx + 0xb9c]
mov ecx, dword [rbx + 0xb94]
shl eax, cl
add edx, eax
lea rcx, [rdx + rdx*2]
shl rcx, 9
add r14, rcx
cmp dword [rbx + 0x2e0], 7
jge 0x140010f28
lea r8d, [r10 + 1]
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx + 0x18]
dec r9d
movzx ecx, r9b
mov edx, ebp
shr edx, cl
and edx, 1
mov dword [rbx + rax*4 + 0x28], edx
mov eax, r8d
lea r8d, [rdx + r8*2]
lea rcx, [r14 + rax*2]
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rcx
inc qword [rbx + 0x18]
test r9d, r9d
jne 0x140010ef0
jmp 0x140010f9b
sub r11d, dword [rbx + 0x2e4]
lea edx, [rbp + 0x100]
sub r11d, dword [rdi + 0x1c]
mov r9d, 0x100
dec r11d
movzx r8d, byte [r11 + r15]
nop word [rax + rax]
mov rax, qword [rbx + 0x18]
mov ecx, edx
shr ecx, 7
add r8d, r8d
and ecx, 1
mov dword [rbx + rax*4 + 0x28], ecx
mov eax, r9d
and eax, r8d
mov ecx, edx
add eax, r9d
shr ecx, 8
add ecx, eax
add edx, edx
mov rax, qword [rbx + 0x18]
lea rcx, [r14 + rcx*2]
mov qword [rbx + rax*8 + 0x110], rcx
mov eax, r8d
inc qword [rbx + 0x18]
xor eax, edx
not eax
and r9d, eax
cmp edx, 0x10000
jb 0x140010f50
mov eax, dword [rbx + 0x2e0]
mov r15, qword [rsp + 0x50]
cmp eax, 3
jle 0x140010fb8
lea r10d, [rax - 3]
cmp eax, 9
jle 0x140010fb8
lea r10d, [rax - 6]
mov dword [rbx + 0x2e0], r10d
jmp 0x1400111d6
mov r8d, 1
mov dword [rdx + 0x28], r8d
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rcx
inc qword [rbx + 0x18]
movsxd rdx, dword [rbx + 0x2e0]
mov rax, qword [rbx + 0x18]
add rdx, 0x368e
lea rdx, [rbx + rdx*2]
lea rcx, [rbx + rax*4]
cmp r11d, 4
jae 0x1400111ae
mov dword [rcx + 0x28], r8d
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rdx
inc qword [rbx + 0x18]
mov rax, qword [rbx + 0x18]
lea rdx, [rbx + rax*4]
movsxd rax, dword [rbx + 0x2e0]
add rax, 0x369a
lea rcx, [rbx + rax*2]
test r11d, r11d
jne 0x140011088
xor r10d, r10d
mov dword [rdx + 0x28], r10d
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rcx
inc qword [rbx + 0x18]
movsxd rax, dword [rbx + 0x2e0]
mov rdx, qword [rbx + 0x18]
shl rax, 4
add rax, 0x36be
add rax, r9
cmp esi, r8d
setne r10b
mov dword [rbx + rdx*4 + 0x28], r10d
lea rcx, [rbx + rax*2]
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rcx
inc qword [rbx + 0x18]
jmp 0x14001114f
mov r9d, dword [rbx + r11*4 + 0x2e4]
mov dword [rdx + 0x28], r8d
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rcx
inc qword [rbx + 0x18]
movsxd rdx, dword [rbx + 0x2e0]
mov rax, qword [rbx + 0x18]
add rdx, 0x36a6
lea rdx, [rbx + rdx*2]
lea rcx, [rbx + rax*4]
cmp r11d, r8d
jne 0x1400110dc
xor r10d, r10d
mov dword [rcx + 0x28], r10d
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rdx
inc qword [rbx + 0x18]
jmp 0x14001113c
mov dword [rcx + 0x28], r8d
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rdx
lea eax, [r11 - 2]
inc qword [rbx + 0x18]
movsxd rdx, dword [rbx + 0x2e0]
mov rcx, qword [rbx + 0x18]
add rdx, 0x36b2
mov dword [rbx + rcx*4 + 0x28], eax
lea rdx, [rbx + rdx*2]
mov rax, qword [rbx + 0x18]
mov qword [rbx + rax*8 + 0x110], rdx
inc qword [rbx + 0x18]
cmp r11d, 3
jne 0x140011130
mov eax, dword [rbx + 0x2ec]
mov dword [rbx + 0x2f0], eax
mov eax, dword [rbx + 0x2e8]
mov dword [rbx + 0x2ec], eax
mov eax, dword [rbx + 0x2e4]
mov dword [rbx + 0x2e8], eax
mov dword [rbx + 0x2e4], r9d
cmp esi, r8d
jne 0x140011170
cmp dword [rbx + 0x2e0], 7
mov eax, 0xb
mov ecx, 9
cmovl eax, ecx
mov dword [rbx + 0x2e0], eax
jmp 0x1400111d6
movzx eax, byte [rbx + 0xb8c]
lea rdx, [rbx + 0xba48]
mov r9d, esi
mov byte [rsp + 0x20], al
mov r8d, ebp
mov rcx, rbx
call fcn.1400111f0
cmp dword [rbx + 0x2e0], 7
mov eax, 0xb
mov r9d, 8
cmovl eax, r9d
mov dword [rbx + 0x2e0], eax
jmp 0x1400111d6
xor r10d, r10d
lea r8d, [r11 - 4]
mov dword [rcx + 0x28], r10d
mov r9d, esi
mov rax, qword [rbx + 0x18]
mov rcx, rbx
mov qword [rbx + rax*8 + 0x110], rdx
mov edx, ebp
inc qword [rbx + 0x18]
call fcn.140012740
sub dword [rdi + 0x1c], esi
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret