Function at 0x140169eb0
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 [0x140353c70]
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.14004ce70
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.140042d30
lea rcx, [r15 + 0x18]
cmp eax, 0x40
jbe 0x140169f4e
call fcn.1400428d0
test rax, rax
je 0x140169f7b
lea rcx, [r15 + 0x18]
call fcn.1400428d0
mov r8d, 0x40
jmp 0x140169f6f
call fcn.1400428d0
test rax, rax
je 0x140169f7b
lea rcx, [r15 + 0x18]
call fcn.140042d30
mov edi, eax
lea rcx, [r15 + 0x18]
call fcn.1400428d0
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x31]
call fcn.14003be40
lea r8, [rbx + 0xb0]
mov rax, qword [r8]
lea rcx, [rax + 0x44]
lea rdx, [0x140351194]
xor edi, edi
lea r9, [0x140351150]
cmp rax, rdx
ja 0x140169fa5
mov edx, edi
cmp rcx, r9
jae 0x140169fb2
cmp rax, r8
ja 0x140169fd6
mov rdx, rdi
cmp rcx, r8
jb 0x140169fd6
cmp rdx, 0x12
jae 0x14016a00e
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 0x140169fc0
jmp 0x14016a00e
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 rdx, rdi
lea r9, [0x1403511a0]
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 0x14016a030
cmp rdx, 0x1000
jl 0x14016a020
mov r10d, edi
lea r11d, [r8 + 0xc]
cmp byte [rbx + 0xc0], dil
je 0x14016a402
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 0x14016a0a0
jmp 0x14016a756
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 0x14016a402
mov dword [rbp - 0x51], edi
mov dword [rbp - 0x4d], edi
mov rsi, rdi
cmp byte [rbx + 0xc0], dil
je 0x14016a810
nop dword [rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.14016c8d0
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 0x14016a770
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.14016c8d0
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 0x14016a7c0
cmp rdi, 0x1000
jl 0x14016a7b0
jmp 0x14016a89e
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.14016c460
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 0x14016a810
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.14016c460
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 0x14016a860
cmp rdi, 0x1000
jl 0x14016a850
test r13, r13
je 0x14016a8dd
mov eax, dword [r15 + 8]
sub eax, 3
cmp eax, 1
ja 0x14016a8dd
lea rcx, [r15 + 0x50]
call fcn.140042d30
mov esi, eax
lea rcx, [r15 + 0x50]
call fcn.1400428d0
mov rdx, rax
lea rcx, [r13 + 0x4a0]
mov r9d, dword [rbx + 0xa8]
mov r8d, esi
call fcn.140168250
nop
lea rcx, [rbp - 0x49]
call fcn.14004d020
mov al, 1
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.1402474e0
add rsp, 0x90
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret