Function at 0x1400ae2f0
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x198
movdqa xmmword [rsp + 0x180], xmm15
movdqa xmmword [rsp + 0x170], xmm14
movdqa xmmword [rsp + 0x160], xmm13
movdqa xmmword [rsp + 0x150], xmm12
movdqa xmmword [rsp + 0x140], xmm11
movdqa xmmword [rsp + 0x130], xmm10
movdqa xmmword [rsp + 0x120], xmm9
movdqa xmmword [rsp + 0x110], xmm8
movdqa xmmword [rsp + 0x100], xmm7
movdqa xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0xc8], r8
mov rax, qword [0x14045eb18]
xor rax, rsp
mov qword [rsp + 0xe8], rax
mov eax, dword [rcx + 4]
mov ecx, eax
shl ecx, 4
movdqu xmm0, xmmword [rdx]
movdqu xmm1, xmmword [r9 + rcx]
pxor xmm1, xmm0
pxor xmm4, xmm4
movdqa xmm0, xmm1
punpckhbw xmm0, xmm4
pshufd xmm2, xmm0, 0xe7
pshuflw xmm2, xmm2, 0x72
movdqa xmm3, xmm1
punpcklbw xmm3, xmm4
pshufd xmm4, xmm3, 0xe7
pshuflw xmm4, xmm4, 0x72
punpckldq xmm4, xmm2
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0xd8
pshufd xmm2, xmm3, 0xe8
pshuflw xmm2, xmm2, 0xd8
punpckldq xmm2, xmm0
packuswb xmm2, xmm4
movdqa xmmword [rsp + 0xd0], xmm2
movdqa xmmword [rsp + 0x20], xmm1
dec eax
mov qword [rsp + 0xc0], r9
je 0x1400ae6fd
mov rdi, r9
mov r14d, eax
mov r15, r14
shl r15, 4
dec r14
lea r12, [0x14037d3a0]
lea rsi, [rsp + 0xd0]
mov r13, r14
nop
movzx eax, byte [rsp + 0xdc]
mov ecx, r15d
and ecx, 0xfffffff0
movdqu xmm0, xmmword [rdi + rcx]
mov ecx, eax
and ecx, 0xf
and eax, 0xfffffff0
add rax, r12
movzx eax, byte [rcx + rax]
movzx ecx, byte [rsp + 0xd9]
movd xmm1, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd6]
movd xmm2, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd3]
movd xmm3, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xdf]
movd xmm4, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd8]
movd xmm5, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd5]
movd xmm7, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd2]
movd xmm9, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xde]
movd xmm8, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xdb]
movd xmm10, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd4]
movd xmm11, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd1]
movd xmm12, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xdd]
movd xmm13, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xda]
movd xmm14, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd7]
movd xmm15, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
movzx ecx, byte [rsp + 0xd0]
movd xmm6, eax
mov eax, ecx
and eax, 0xf
and ecx, 0xfffffff0
add rcx, r12
movzx eax, byte [rax + rcx]
punpcklbw xmm2, xmm1
movd xmm1, eax
punpcklbw xmm4, xmm3
punpcklwd xmm4, xmm2
punpcklbw xmm7, xmm5
punpcklbw xmm8, xmm9
punpcklwd xmm8, xmm7
punpckldq xmm8, xmm4
punpcklbw xmm11, xmm10
punpcklbw xmm13, xmm12
punpcklwd xmm13, xmm11
punpcklbw xmm15, xmm14
punpcklbw xmm1, xmm6
pxor xmm3, xmm3
punpcklwd xmm1, xmm15
punpckldq xmm1, xmm13
punpcklqdq xmm1, xmm8
pxor xmm1, xmm0
movdqa xmm0, xmm1
punpckhbw xmm0, xmm3
pshufd xmm2, xmm0, 0xe7
pshuflw xmm2, xmm2, 0x72
punpcklbw xmm1, xmm3
pshufd xmm3, xmm1, 0xe7
pshuflw xmm3, xmm3, 0x72
punpckldq xmm3, xmm2
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0xd8
pshufd xmm1, xmm1, 0xe8
pshuflw xmm1, xmm1, 0xd8
punpckldq xmm1, xmm0
packuswb xmm1, xmm3
movdqa xmmword [rsp + 0xd0], xmm1
mov rdx, rsi
call fcn.1400ae110
add r15, 0xfffffffffffffff0
dec r13
test r14d, r14d
mov r14, r13
jne 0x1400ae420
movzx ebx, byte [rsp + 0xd0]
movzx r11d, byte [rsp + 0xd1]
movzx r10d, byte [rsp + 0xd2]
movzx r9d, byte [rsp + 0xd3]
movzx r8d, byte [rsp + 0xd4]
movzx edx, byte [rsp + 0xd5]
movzx ecx, byte [rsp + 0xd6]
movzx eax, byte [rsp + 0xd7]
movzx r15d, byte [rsp + 0xd8]
movzx ebp, byte [rsp + 0xd9]
movzx r13d, byte [rsp + 0xda]
movzx edi, byte [rsp + 0xdb]
jmp 0x1400ae73f
movzx ebx, byte [rsp + 0x20]
movzx r8d, byte [rsp + 0x21]
movzx r15d, byte [rsp + 0x22]
movzx r11d, byte [rsp + 0x24]
movzx edx, byte [rsp + 0x25]
movzx ebp, byte [rsp + 0x26]
movzx r10d, byte [rsp + 0x28]
movzx ecx, byte [rsp + 0x29]
movzx r13d, byte [rsp + 0x2a]
movzx r9d, byte [rsp + 0x2c]
movzx eax, byte [rsp + 0x2d]
movzx edi, byte [rsp + 0x2e]
movzx esi, bl
mov qword [rsp + 0xb8], rsi
and esi, 0xfffffff0
lea r14, [0x14037d3a0]
add rsi, r14
mov qword [rsp + 0xb0], rsi
movzx r11d, r11b
mov qword [rsp + 0xa8], r11
and r11d, 0xfffffff0
add r11, r14
mov qword [rsp + 0xa0], r11
movzx r10d, r10b
mov qword [rsp + 0x98], r10
and r10d, 0xfffffff0
add r10, r14
mov qword [rsp + 0x90], r10
movzx r9d, r9b
mov qword [rsp + 0x70], r9
and r9d, 0xfffffff0
add r9, r14
mov qword [rsp + 0x60], r9
movzx r8d, r8b
mov qword [rsp + 0x88], r8
and r8d, 0xfffffff0
add r8, r14
mov qword [rsp + 0x80], r8
movzx edx, dl
mov qword [rsp + 0x58], rdx
and edx, 0xfffffff0
add rdx, r14
mov qword [rsp + 0x50], rdx
movzx r12d, cl
mov qword [rsp + 0x38], r12
and r12d, 0xfffffff0
add r12, r14
movzx eax, al
mov qword [rsp + 0x78], rax
and eax, 0xfffffff0
add rax, r14
mov qword [rsp + 0x68], rax
movzx r15d, r15b
mov qword [rsp + 0x40], r15
and r15d, 0xfffffff0
add r15, r14
movzx ebp, bpl
mov ebx, ebp
and ebx, 0xfffffff0
add rbx, r14
movzx esi, r13b
mov qword [rsp + 0x48], rsi
and esi, 0xfffffff0
add rsi, r14
movzx r13d, dil
mov r11d, r13d
and r11d, 0xfffffff0
add r11, r14
movzx edx, byte [rsp + 0xdc]
mov r9d, edx
and edx, 0xfffffff0
add rdx, r14
movzx edi, byte [rsp + 0xdd]
mov eax, edi
mov qword [rsp + 0x30], rax
and edi, 0xfffffff0
add rdi, r14
movzx ecx, byte [rsp + 0xde]
mov r10d, ecx
and ecx, 0xfffffff0
add rcx, r14
movzx eax, byte [rsp + 0xdf]
mov r8d, eax
and eax, 0xfffffff0
add rax, r14
mov r14, qword [rsp + 0xc0]
movdqu xmm0, xmmword [r14]
mov r14, qword [rsp + 0x38]
and r14d, 0xf
movzx r14d, byte [r14 + r12]
movd xmm2, r14d
mov r14, qword [rsp + 0x70]
and r14d, 0xf
mov r12, qword [rsp + 0x60]
movzx r14d, byte [r14 + r12]
movd xmm1, r14d
and ebp, 0xf
movzx ebx, byte [rbp + rbx]
movd xmm3, ebx
and r9d, 0xf
movzx edx, byte [r9 + rdx]
movd xmm5, edx
mov rdx, qword [rsp + 0x58]
and edx, 0xf
mov r9, qword [rsp + 0x50]
movzx edx, byte [rdx + r9]
movd xmm6, edx
mov rdx, qword [rsp + 0x98]
and edx, 0xf
mov r9, qword [rsp + 0x90]
movzx edx, byte [rdx + r9]
movd xmm4, edx
mov rdx, qword [rsp + 0x40]
and edx, 0xf
movzx edx, byte [rdx + r15]
movd xmm7, edx
and r8d, 0xf
movzx eax, byte [r8 + rax]
movd xmm8, eax
mov rax, qword [rsp + 0x88]
and eax, 0xf
mov rdx, qword [rsp + 0x80]
movzx eax, byte [rax + rdx]
movd xmm9, eax
mov rax, qword [rsp + 0xa8]
and eax, 0xf
mov rdx, qword [rsp + 0xa0]
movzx eax, byte [rax + rdx]
movd xmm10, eax
and r13d, 0xf
movzx eax, byte [r13 + r11]
movd xmm11, eax
and r10d, 0xf
movzx eax, byte [r10 + rcx]
movd xmm12, eax
mov rax, qword [rsp + 0x78]
and eax, 0xf
mov rcx, qword [rsp + 0x68]
movzx eax, byte [rax + rcx]
movd xmm13, eax
mov rax, qword [rsp + 0xb8]
and eax, 0xf
mov rcx, qword [rsp + 0xb0]
movzx eax, byte [rax + rcx]
movd xmm14, eax
mov rax, qword [rsp + 0x48]
and eax, 0xf
movzx eax, byte [rax + rsi]
movd xmm15, eax
mov rax, qword [rsp + 0x30]
and eax, 0xf
movzx eax, byte [rax + rdi]
punpcklbw xmm1, xmm2
movd xmm2, eax
punpcklbw xmm3, xmm5
punpcklwd xmm1, xmm3
punpcklbw xmm4, xmm6
punpcklbw xmm7, xmm8
punpcklwd xmm4, xmm7
punpckldq xmm4, xmm1
punpcklbw xmm10, xmm9
punpcklbw xmm11, xmm12
punpcklwd xmm10, xmm11
punpcklbw xmm14, xmm13
punpcklbw xmm15, xmm2
punpcklwd xmm14, xmm15
punpckldq xmm14, xmm10
punpcklqdq xmm14, xmm4
pxor xmm14, xmm0
mov rax, qword [rsp + 0xc8]
movdqu xmmword [rax], xmm14
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.14016e250
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
movaps xmm8, xmmword [rsp + 0x110]
movaps xmm9, xmmword [rsp + 0x120]
movaps xmm10, xmmword [rsp + 0x130]
movaps xmm11, xmmword [rsp + 0x140]
movaps xmm12, xmmword [rsp + 0x150]
movaps xmm13, xmmword [rsp + 0x160]
movaps xmm14, xmmword [rsp + 0x170]
movaps xmm15, xmmword [rsp + 0x180]
add rsp, 0x198
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret