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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
mov eax, 0x20
call sub.kernel32.dll___chkstk
sub rsp, rax
mov rdi, r8
mov ebx, edx
mov r8d, 0x1048
lea rdx, [0x7ff7874140c0]
mov rsi, rcx
call sub.vcruntime140.dll_memcpy
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
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 0x7ff7872ffa10
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov edi, ebx
nop word [rax + rax]
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.7ff7873007d0
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 0x7ff7872ffcb0
nop word [rax + rax]
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.7ff7873007d0
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 0x7ff7872ffce0
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret