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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
lea r8, [0x140099d10]
mov rsi, rdx
sub r8, rcx
lea r9, [0x140099d14]
sub r9, rcx
lea rax, [rcx + 0x4c]
mov rbx, rcx
mov r10d, 4
nop
mov edx, 0x80
nop word [rax + rax]
mov ecx, dword [r8 + rax - 0x4c]
mov dword [rax - 4], ecx
mov ecx, dword [r9 + rax - 0x4c]
mov dword [rax], ecx
add rax, 8
sub rdx, 1
jne 0x14002a9b0
sub r10, 1
jne 0x14002a9a0
lea r14, [0x14009ad10]
mov r11d, r10d
sub r14, rbx
lea ebp, [rdx + 0x12]
mov rdi, rbx
lea eax, [r11 + 1]
mov ecx, r10d
cmp eax, 8
lea rdi, [rdi + 4]
mov edx, r10d
mov r8d, r10d
cmovl ecx, eax
lea eax, [rcx + 1]
cmp eax, 8
cmovl edx, eax
lea eax, [rdx + 1]
cmp eax, 8
cmovl r8d, eax
movsxd rax, r11d
mov r11d, r10d
movzx r9d, byte [rax + rsi]
shl r9d, 8
movsxd rax, ecx
movzx ecx, byte [rax + rsi]
or r9d, ecx
movsxd rax, edx
shl r9d, 8
movzx ecx, byte [rax + rsi]
or r9d, ecx
movsxd rax, r8d
shl r9d, 8
movzx ecx, byte [rax + rsi]
lea eax, [r8 + 1]
or r9d, ecx
cmp eax, 8
cmovl r11d, eax
xor r9d, dword [r14 + rdi - 4]
mov dword [rdi - 4], r9d
sub rbp, 1
jne 0x14002a9e2
mov rdi, r10
nop
mov rdx, r10
mov rcx, rbx
call fcn.14002a6e0
mov qword [rbx + rdi*4], rax
mov r10, rax
add rdi, 2
cmp rdi, 0x12
jl 0x14002aa60
lea rdi, [rbx + 0x50]
mov esi, 4
nop word [rax + rax]
mov ebp, 4
mov rdx, r10
mov rcx, rbx
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi - 8], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 8], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x10], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x18], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x20], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x28], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x30], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x38], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x40], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x48], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x50], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x58], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x60], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x68], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x70], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x78], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x80], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x88], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x90], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0x98], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xa0], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xa8], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xb0], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xb8], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xc0], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xc8], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xd0], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xd8], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xe0], rax
call fcn.14002a6e0
mov rdx, rax
mov qword [rdi + 0xe8], rax
call fcn.14002a6e0
mov qword [rdi + 0xf0], rax
mov r10, rax
add rdi, 0x100
sub rbp, 1
jne 0x14002aa95
sub rsi, 1
jne 0x14002aa90
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret