Function at 0x1402d9ae0
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 [0x14040f040]
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.14015bdd0
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.14014b850
lea rcx, [r15 + 0x18]
cmp eax, 0x40
jbe 0x1402d9b7e
call fcn.14014b520
test rax, rax
je 0x1402d9bab
lea rcx, [r15 + 0x18]
call fcn.14014b520
mov r8d, 0x40
jmp 0x1402d9b9f
call fcn.14014b520
test rax, rax
je 0x1402d9bab
lea rcx, [r15 + 0x18]
call fcn.14014b850
mov edi, eax
lea rcx, [r15 + 0x18]
call fcn.14014b520
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x31]
call fcn.14011a6e0
lea r8, [rbx + 0xb0]
mov rax, qword [r8]
lea rcx, [rax + 0x44]
lea rdx, [0x14041c804]
xor edi, edi
lea r9, [0x14041c7c0]
cmp rax, rdx
ja 0x1402d9bd5
mov edx, edi
cmp rcx, r9
jae 0x1402d9be2
cmp rax, r8
ja 0x1402d9c06
mov rdx, rdi
cmp rcx, r8
jb 0x1402d9c06
cmp rdx, 0x12
jae 0x1402d9c3e
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 0x1402d9bf0
jmp 0x1402d9c3e
movaps xmm0, xmmword [0x14041c7c0]
movups xmmword [rax], xmm0
movaps xmm1, xmmword [0x14041c7d0]
movups xmmword [rax + 0x10], xmm1
movaps xmm0, xmmword [0x14041c7e0]
movups xmmword [rax + 0x20], xmm0
movaps xmm1, xmmword [0x14041c7f0]
movups xmmword [rax + 0x30], xmm1
movsd xmm0, qword [0x14041c800]
movsd qword [rax + 0x40], xmm0
mov rdx, rdi
lea r9, [0x14041c810]
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 0x1402d9c60
cmp rdx, 0x1000
jl 0x1402d9c50
mov r10d, edi
lea r11d, [r8 + 0xc]
cmp byte [rbx + 0xc0], dil
je 0x1402da032
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 0x1402d9cd0
jmp 0x1402da386
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 0x1402da032
mov dword [rbp - 0x51], edi
mov dword [rbp - 0x4d], edi
mov rsi, rdi
cmp byte [rbx + 0xc0], dil
je 0x1402da440
nop dword [rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1402dc090
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 0x1402da3a0
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1402dc090
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 0x1402da3f0
cmp rdi, 0x1000
jl 0x1402da3e0
jmp 0x1402da4ce
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1402dc500
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 0x1402da440
nop word [rax + rax]
mov esi, 0x80
nop word [rax + rax]
lea r8, [rbp - 0x4d]
lea rdx, [rbp - 0x51]
mov rcx, rbx
call fcn.1402dc500
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 0x1402da490
cmp rdi, 0x1000
jl 0x1402da480
test r13, r13
je 0x1402da50d
mov eax, dword [r15 + 8]
sub eax, 3
cmp eax, 1
ja 0x1402da50d
lea rcx, [r15 + 0x50]
call fcn.14014b850
mov esi, eax
lea rcx, [r15 + 0x50]
call fcn.14014b520
mov rdx, rax
lea rcx, [r13 + 0x4a0]
mov r9d, dword [rbx + 0xa8]
mov r8d, esi
call fcn.1402d74d0
nop
lea rcx, [rbp - 0x49]
call fcn.14015bf80
mov al, 1
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.140109210
add rsp, 0x90
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret