Function at 0x1801977c0
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
push rbp
push rbx
push rsi
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x18029e198]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov r14, qword [rbp + 0x50]
lea rax, [r8 + 0xf]
mov rsi, r8
shr rax, 4
and esi, 0xf
mov qword [rbp - 0x30], 0
mov qword [rbp - 0x28], 0
mov r15, r9
mov r9, rdx
mov rbx, rcx
test rax, rax
je 0x180197a34
mov qword [rsp + 0x58], rdi
lea r8, [rax - 1]
xor edi, edi
test r8, r8
je 0x180197965
nop word [rax + rax]
movzx ecx, byte [r14]
mov rdx, rdi
add rdx, rdx
inc rdi
lea rax, [rcx + 1]
movdqu xmm2, xmmword [r9 + rdx*8]
add rax, rax
movdqa xmm1, xmm2
pxor xmm1, xmmword [rbx + rax*8]
lea rax, [rcx + 4]
add rax, rax
pxor xmm1, xmmword [rbx + rax*8]
lea rax, [rcx + 3]
add rax, rax
add rcx, 2
add rcx, rcx
movdqu xmm0, xmmword [rbx + rax*8]
pand xmm0, xmmword [rbx + rcx*8]
pxor xmm1, xmm0
movdqu xmmword [r15 + rdx*8], xmm1
movzx ecx, byte [r14]
movzx eax, cl
shr al, 3
dec al
and al, 1
shl al, 3
movzx edx, al
lea rax, [rcx + 4]
add rax, rax
add rcx, 3
add rcx, rcx
movdqu xmm0, xmmword [rbx + rcx*8]
aesenc xmm0, xmmword [rbx + rax*8]
lea rax, [rdx + 4]
add rax, rax
movdqu xmmword [rbx + rax*8], xmm0
movzx ecx, byte [r14]
lea rax, [rcx + 3]
add rcx, 2
add rax, rax
add rcx, rcx
movdqu xmm0, xmmword [rbx + rcx*8]
aesenc xmm0, xmmword [rbx + rax*8]
lea rax, [rdx + 3]
add rax, rax
movdqu xmmword [rbx + rax*8], xmm0
movzx eax, byte [r14]
lea rcx, [rax + 2]
inc rax
add rax, rax
add rcx, rcx
movdqu xmm0, xmmword [rbx + rax*8]
lea rax, [rdx + 2]
aesenc xmm0, xmmword [rbx + rcx*8]
add rax, rax
movdqu xmmword [rbx + rax*8], xmm0
movzx eax, byte [r14]
lea rcx, [rax + 1]
add rax, rax
add rcx, rcx
movdqu xmm0, xmmword [rbx + rax*8]
lea rax, [rdx + 1]
aesenc xmm0, xmmword [rbx + rcx*8]
add rax, rax
movdqu xmmword [rbx + rax*8], xmm0
movzx ecx, byte [r14]
mov eax, ecx
add rax, rax
pxor xmm2, xmmword [rbx + rax*8]
lea rax, [rcx + 4]
add rax, rax
movdqu xmm0, xmmword [rbx + rax*8]
mov eax, edx
add rax, rax
aesenc xmm0, xmm2
movdqu xmmword [rbx + rax*8], xmm0
mov byte [r14], dl
cmp rdi, r8
jb 0x180197830
add rdi, rdi
lea rax, [r9 + rdi*8]
test rsi, rsi
je 0x1801979d9
mov r8, rsi
lea rcx, [rbp - 0x30]
mov rdx, rax
call fcn.18020b840
movzx ecx, byte [r14]
lea rdx, [rbp - 0x30]
movdqu xmm1, xmmword [rbp - 0x30]
mov r8, rsi
lea rax, [rcx + 1]
movdqa xmmword [rbp - 0x40], xmm1
add rax, rax
pxor xmm1, xmmword [rbx + rax*8]
lea rax, [rcx + 4]
add rax, rax
pxor xmm1, xmmword [rbx + rax*8]
lea rax, [rcx + 3]
add rcx, 2
add rax, rax
add rcx, rcx
movdqu xmm0, xmmword [rbx + rax*8]
pand xmm0, xmmword [rbx + rcx*8]
lea rcx, [r15 + rdi*8]
pxor xmm1, xmm0
movdqu xmmword [rbp - 0x30], xmm1
call fcn.18020b840
jmp 0x180197a20
movdqu xmm1, xmmword [rax]
movzx ecx, byte [r14]
movdqa xmmword [rbp - 0x40], xmm1
lea rax, [rcx + 1]
add rax, rax
pxor xmm1, xmmword [rbx + rax*8]
lea rax, [rcx + 4]
add rax, rax
pxor xmm1, xmmword [rbx + rax*8]
lea rax, [rcx + 3]
add rax, rax
add rcx, 2
add rcx, rcx
movdqu xmm0, xmmword [rbx + rax*8]
pand xmm0, xmmword [rbx + rcx*8]
pxor xmm1, xmm0
movdqu xmmword [r15 + rdi*8], xmm1
mov r8, r14
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.180198680
mov rdi, qword [rsp + 0x58]
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1801e68c0
add rsp, 0x60
pop r15
pop r14
pop rsi
pop rbx
pop rbp
ret