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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x90
mov rax, qword [0x1402c8b58]
xor rax, rsp
mov qword [rbp + 0xf], rax
mov r13, r9
mov r15, r8
mov rbx, rcx
mov rdx, qword [rbp + 0x7f]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x49], xmm0
mov qword [rbp - 0x39], rax
lea r8, str.initCrypt_blowfish
lea rcx, [rbp - 0x49]
call fcn.1400531e0
nop
mov eax, dword [r15 + 0x10]
cdq
and edx, 7
lea esi, [rdx + rax]
sar esi, 3
xorps xmm0, xmm0
movups xmmword [rbp - 0x31], xmm0
movups xmmword [rbp - 0x21], xmm0
movups xmmword [rbp - 0x11], xmm0
movups xmmword [rbp - 1], xmm0
lea rcx, [r15 + 0x18]
call fcn.140043080
lea rcx, [r15 + 0x18]
cmp eax, 0x40
jbe 0x1401cfd3e
call fcn.140042d50
test rax, rax
je 0x1401cfd6b
lea rcx, [r15 + 0x18]
call fcn.140042d50
mov r8d, 0x40
jmp 0x1401cfd5f
call fcn.140042d50
test rax, rax
je 0x1401cfd6b
lea rcx, [r15 + 0x18]
call fcn.140043080
mov edi, eax
lea rcx, [r15 + 0x18]
call fcn.140042d50
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x31]
call fcn.140012bd0
lea r8, [rbx + 0xb0]
mov rax, qword [r8]
lea rcx, [rax + 0x44]
lea rdx, [0x1402c7644]
xor edi, edi
lea r9, [0x1402c7600]
cmp rax, rdx
ja 0x1401cfd95
mov edx, edi
cmp rcx, r9
jae 0x1401cfda2
cmp rax, r8
ja 0x1401cfdc6
mov rdx, rdi
cmp rcx, r8
jb 0x1401cfdc6
cmp rdx, 0x12
jae 0x1401cfdfe
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 0x1401cfdb0
jmp 0x1401cfdfe
movaps xmm0, xmmword [0x1402c7600]
movups xmmword [rax], xmm0
movaps xmm1, xmmword [0x1402c7610]
movups xmmword [rax + 0x10], xmm1
movaps xmm0, xmmword [0x1402c7620]
movups xmmword [rax + 0x20], xmm0
movaps xmm1, xmmword [0x1402c7630]
movups xmmword [rax + 0x30], xmm1
movsd xmm0, qword [0x1402c7640]
movsd qword [rax + 0x40], xmm0
mov rdx, rdi
lea r9, [0x1402c7650]
nop dword [rax + rax]
mov r8d, 0x40
nop word [rax + rax]
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rdx + r9]
mov dword [rdx + rcx], eax
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rdx + r9 + 4]
mov dword [rcx + rdx + 4], eax
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rdx + r9 + 8]
mov dword [rcx + rdx + 8], eax
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rdx + r9 + 0xc]
mov dword [rcx + rdx + 0xc], eax
add rdx, 0x10
sub r8, 1
jne 0x1401cfe20
cmp rdx, 0x1000
jl 0x1401cfe10
mov r10d, edi
lea r11d, [r8 + 0xc]
cmp byte [rbx + 0xc0], dil
je 0x1401d01f2
nop word [rax + rax]
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movsxd rax, r10d
movzx ecx, byte [rbp + rax - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 - 0xc], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 - 8], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 - 4], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 4], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 8], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 0xc], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 0x10], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r9, edx
lea eax, [r9 + 1]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r9 - 0x31]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r9 + 2]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
lea eax, [r9 + 3]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
mov rax, qword [rbx + 0xb0]
xor dword [rax + r11 + 0x14], r8d
lea eax, [r9 + 4]
cdq
idiv esi
mov r10d, edx
add r11, 0x24
cmp r11, 0x54
jl 0x1401cfe90
jmp 0x1401d0546
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movsxd rax, r10d
movzx ecx, byte [rbp + rax - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 - 0xc], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 - 8], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 - 4], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 4], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 8], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 0xc], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r10, edx
mov r9, qword [rbx + 0xb0]
lea eax, [r10 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r10 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r10 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r10d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
xor dword [r9 + r11 + 0x10], r8d
lea eax, [r10 + 4]
cdq
idiv esi
movsxd r9, edx
lea eax, [r9 + 2]
cdq
idiv esi
movsxd rax, edx
movzx r8d, byte [rbp + rax - 0x31]
movzx ecx, byte [rbp + r9 - 0x2e]
shl ecx, 8
or r8d, ecx
shl r8d, 8
lea eax, [r9 + 1]
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
shl r8d, 8
mov eax, r9d
cdq
idiv esi
movsxd rax, edx
movzx ecx, byte [rbp + rax - 0x31]
or r8d, ecx
mov rax, qword [rbx + 0xb0]
xor dword [rax + r11 + 0x14], r8d
lea eax, [r9 + 4]
cdq
idiv esi
mov r10d, edx
add r11, 0x24
cmp r11, 0x54
jl 0x1401d01f2
mov dword [rbp - 0x51], edi
mov dword [rbp - 0x4d], edi
mov rsi, rdi
cmp byte [rbx + 0xc0], dil
je 0x1401d0600
nop dword [rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1401d26c0
mov rcx, qword [rbx + 0xb0]
mov eax, dword [rbp - 0x51]
mov dword [rsi + rcx], eax
mov rcx, qword [rbx + 0xb0]
mov eax, dword [rbp - 0x4d]
mov dword [rsi + rcx + 4], eax
add rsi, 8
cmp rsi, 0x48
jl 0x1401d0560
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1401d26c0
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rbp - 0x51]
mov dword [rdi + rcx], eax
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rbp - 0x4d]
mov dword [rcx + rdi + 4], eax
add rdi, 8
sub rsi, 1
jne 0x1401d05b0
cmp rdi, 0x1000
jl 0x1401d05a0
jmp 0x1401d068e
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1401d2250
mov rcx, qword [rbx + 0xb0]
mov eax, dword [rbp - 0x51]
mov dword [rsi + rcx], eax
mov rcx, qword [rbx + 0xb0]
mov eax, dword [rbp - 0x4d]
mov dword [rcx + rsi + 4], eax
add rsi, 8
cmp rsi, 0x48
jl 0x1401d0600
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1401d2250
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rbp - 0x51]
mov dword [rdi + rcx], eax
mov rcx, qword [rbx + 0xb8]
mov eax, dword [rbp - 0x4d]
mov dword [rcx + rdi + 4], eax
add rdi, 8
sub rsi, 1
jne 0x1401d0650
cmp rdi, 0x1000
jl 0x1401d0640
test r13, r13
je 0x1401d06cd
mov eax, dword [r15 + 8]
sub eax, 3
cmp eax, 1
ja 0x1401d06cd
lea rcx, [r15 + 0x50]
call fcn.140043080
mov esi, eax
lea rcx, [r15 + 0x50]
call fcn.140042d50
mov rdx, rax
lea rcx, [r13 + 0x4a0]
mov r9d, dword [rbx + 0xa8]
mov r8d, esi
call fcn.1401cd690
nop
lea rcx, [rbp - 0x49]
call fcn.140053390
mov al, 1
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.1401e12d0
add rsp, 0x90
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret