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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x3f]
sub rsp, 0x90
mov rax, qword [0x140353c70]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rbx, r8
mov rdi, rcx
mov rdx, qword [rbp + 0x7f]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x29], xmm0
mov qword [rbp - 0x19], rax
lea r8, str.initCrypt_blowfish
lea rcx, [rbp - 0x29]
call fcn.14004ce70
nop
mov eax, dword [rbx + 0x10]
cdq
and edx, 7
lea r14d, [rdx + rax]
sar r14d, 3
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
movups xmmword [rbp - 1], xmm0
movups xmmword [rbp + 0xf], xmm0
movups xmmword [rbp + 0x1f], xmm0
lea rsi, [rbx + 0x18]
mov rcx, rsi
call fcn.140042d30
mov rcx, rsi
cmp eax, 0x40
jbe 0x140169920
call fcn.1400428d0
test rax, rax
je 0x14016994b
mov rcx, rsi
call fcn.1400428d0
mov r8d, 0x40
jmp 0x14016993f
call fcn.1400428d0
test rax, rax
je 0x14016994b
mov rcx, rsi
call fcn.140042d30
mov ebx, eax
mov rcx, rsi
call fcn.1400428d0
mov r8d, ebx
mov rdx, rax
lea rcx, [rbp - 0x11]
call fcn.14003be40
lea r8, [rdi + 0xb0]
mov rax, qword [r8]
lea rcx, [rax + 0x44]
lea rdx, [0x140351194]
xor ebx, ebx
lea r9, [0x140351150]
cmp rax, rdx
ja 0x140169975
mov edx, ebx
cmp rcx, r9
jae 0x140169982
cmp rax, r8
ja 0x1401699a6
mov rdx, rbx
cmp rcx, r8
jb 0x1401699a6
cmp rdx, 0x12
jae 0x1401699de
lea rdx, [rdx*4]
mov rcx, qword [r8]
mov eax, dword [rdx + r9]
mov dword [rdx + rcx], eax
add rdx, 4
cmp rdx, 0x48
jl 0x140169990
jmp 0x1401699de
movaps xmm0, xmmword [0x140351150]
movups xmmword [rax], xmm0
movaps xmm1, xmmword [0x140351160]
movups xmmword [rax + 0x10], xmm1
movaps xmm0, xmmword [0x140351170]
movups xmmword [rax + 0x20], xmm0
movaps xmm1, xmmword [0x140351180]
movups xmmword [rax + 0x30], xmm1
movsd xmm0, qword [0x140351190]
movsd qword [rax + 0x40], xmm0
mov rax, rbx
lea r9, [0x1403511a0]
nop dword [rax + rax]
mov r8d, 0x40
nop word [rax + rax]
mov rdx, qword [rdi + 0xb8]
mov ecx, dword [rax + r9]
mov dword [rax + rdx], ecx
mov rdx, qword [rdi + 0xb8]
mov ecx, dword [rax + r9 + 4]
mov dword [rdx + rax + 4], ecx
mov rdx, qword [rdi + 0xb8]
mov ecx, dword [rax + r9 + 8]
mov dword [rdx + rax + 8], ecx
mov rdx, qword [rdi + 0xb8]
mov ecx, dword [rax + r9 + 0xc]
mov dword [rdx + rax + 0xc], ecx
add rax, 0x10
sub r8, 1
jne 0x140169a00
cmp rax, 0x1000
jl 0x1401699f0
mov r10d, ebx
lea r11d, [r8 + 0xc]
nop word [rax + rax]
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movsxd rax, r10d
movzx ecx, byte [rbp + rax - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11 - 0xc], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r10, edx
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r10 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11 - 8], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r10, edx
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r10 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11 - 4], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r10, edx
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r10 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r10, edx
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r10 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11 + 4], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r10, edx
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r10 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11 + 8], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r10, edx
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r10 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11 + 0xc], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r10, edx
mov r9, qword [rdi + 0xb0]
lea eax, [r10 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r10 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
xor dword [r9 + r11 + 0x10], r8d
lea eax, [r10 + 4]
cdq
idiv r14d
movsxd r9, edx
lea eax, [r9 + 1]
cdq
idiv r14d
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x11]
movzx ecx, byte [rbp + r9 - 0x11]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r9 + 2]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
shl r8d, 8
lea eax, [r9 + 3]
cdq
idiv r14d
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x11]
or r8d, ecx
mov rax, qword [rdi + 0xb0]
xor dword [rax + r11 + 0x14], r8d
lea eax, [r9 + 4]
cdq
idiv r14d
mov r10d, edx
add r11, 0x24
cmp r11, 0x54
jl 0x140169a60
mov dword [rbp - 0x31], ebx
mov dword [rbp - 0x2d], ebx
mov rsi, rbx
nop word [rax + rax]
lea r8, [rbp - 0x2d]
lea rdx, [rbp - 0x31]
mov rcx, rdi
call fcn.14016c8d0
mov rcx, qword [rdi + 0xb0]
mov eax, dword [rbp - 0x31]
mov dword [rsi + rcx], eax
mov rcx, qword [rdi + 0xb0]
mov eax, dword [rbp - 0x2d]
mov dword [rcx + rsi + 4], eax
add rsi, 8
cmp rsi, 0x48
jl 0x140169df0
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rbp - 0x2d]
lea rdx, [rbp - 0x31]
mov rcx, rdi
call fcn.14016c8d0
mov rcx, qword [rdi + 0xb8]
mov eax, dword [rbp - 0x31]
mov dword [rbx + rcx], eax
mov rcx, qword [rdi + 0xb8]
mov eax, dword [rbp - 0x2d]
mov dword [rcx + rbx + 4], eax
add rbx, 8
sub rsi, 1
jne 0x140169e40
cmp rbx, 0x1000
jl 0x140169e30
lea rcx, [rbp - 0x29]
call fcn.14004d020
mov al, 1
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1402474e0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret