Function at 0x140318c60
Capabilities:
Encode data using xor
Encrypt data using blowfish

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rdi, r8
mov ebx, edx
mov r8d, 0x1048
lea rdx, [0x1403e59b0]
mov rsi, rcx
call fcn.140373e60
mov eax, 0x48
lea r9, [rsi + 8]
cmp ebx, eax
mov rdx, rdi
mov r10d, 2
cmovle eax, ebx
movsxd r8, eax
add r8, rdi
nop word [rax + rax]
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 - 8], ecx
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 - 4], ecx
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9], ecx
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
or ecx, eax
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 + 4], ecx
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 + 8], ecx
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 + 0xc], ecx
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 + 0x10], ecx
movzx ecx, byte [rdx]
inc rdx
lea r9, [r9 + 0x24]
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 - 0x10], ecx
movzx ecx, byte [rdx]
inc rdx
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
shl ecx, 8
movzx eax, byte [rdx]
inc rdx
or ecx, eax
cmp rdx, r8
cmovae rdx, rdi
xor dword [r9 - 0xc], ecx
sub r10, 1
jne 0x140318cb0
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov edi, ebx
nop word [rax + rax]
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.140319080
mov eax, dword [rsp + 0x30]
mov dword [rsi + rdi*4], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + rdi*4 + 4], eax
add rdi, 2
cmp rdi, 0x12
jl 0x140318f50
nop word [rax + rax]
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.140319080
mov eax, dword [rsp + 0x30]
mov dword [rsi + rbx*4 + 0x48], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + rbx*4 + 0x4c], eax
add rbx, 2
cmp rbx, 0x400
jl 0x140318f80
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret