Function at 0x1400ae010
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, 0x158
movdqa xmmword [rsp + 0x140], xmm15
movdqa xmmword [rsp + 0x130], xmm14
movdqa xmmword [rsp + 0x120], xmm13
movdqa xmmword [rsp + 0x110], xmm12
movdqa xmmword [rsp + 0x100], xmm11
movdqa xmmword [rsp + 0xf0], xmm10
movdqa xmmword [rsp + 0xe0], xmm9
movdqa xmmword [rsp + 0xd0], xmm8
movdqa xmmword [rsp + 0xc0], xmm7
movdqa xmmword [rsp + 0xb0], xmm6
mov qword [rsp + 0x88], r8
mov rax, qword [0x140463cc0]
xor rax, rsp
mov qword [rsp + 0xa8], 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 + 0x90], xmm2
movdqa xmmword [rsp + 0x20], xmm1
dec eax
mov qword [rsp + 0x80], r9
je 0x1400ae4c4
mov rdi, r9
mov r14d, eax
mov r15, r14
shl r15, 4
dec r14
lea r12, [0x140381540]
lea rbx, [rsp + 0x90]
mov r13, r14
nop
movzx eax, byte [rsp + 0x90]
movzx r8d, byte [rsp + 0x91]
movzx ecx, byte [rsp + 0x92]
movzx edx, byte [rsp + 0x93]
movzx r9d, byte [rsp + 0x94]
mov r10d, r9d
and r10d, 0xfffffff0
and r9d, 0xf
add r10, r12
movzx r9d, byte [r9 + r10]
mov byte [rsp + 0x94], r9b
movzx r10d, byte [rsp + 0x95]
mov r11d, r10d
and r11d, 0xfffffff0
and r10d, 0xf
add r11, r12
movzx r10d, byte [r10 + r11]
mov byte [rsp + 0x95], r10b
movzx r10d, byte [rsp + 0x96]
mov r11d, r10d
and r11d, 0xfffffff0
and r10d, 0xf
add r11, r12
movzx r10d, byte [r10 + r11]
mov byte [rsp + 0x96], r10b
movzx r10d, byte [rsp + 0x97]
movzx r11d, byte [rsp + 0x98]
mov esi, r11d
and esi, 0xfffffff0
and r11d, 0xf
add rsi, r12
movzx r11d, byte [r11 + rsi]
mov byte [rsp + 0x98], r11b
movzx r11d, byte [rsp + 0x99]
mov esi, r11d
and esi, 0xfffffff0
and r11d, 0xf
add rsi, r12
movzx r11d, byte [r11 + rsi]
mov byte [rsp + 0x99], r11b
movzx r11d, byte [rsp + 0x9e]
movzx esi, word [rsp + 0x95]
movd xmm1, esi
mov esi, r15d
and esi, 0xfffffff0
movdqu xmm0, xmmword [rdi + rsi]
mov esi, r11d
and esi, 0xfffffff0
and r11d, 0xf
add rsi, r12
movzx r11d, byte [r11 + rsi]
movzx esi, byte [rsp + 0x9b]
movd xmm2, r11d
mov r11d, esi
and r11d, 0xfffffff0
and esi, 0xf
add r11, r12
movzx r11d, byte [rsi + r11]
movd xmm3, r11d
movd xmm4, r9d
mov r9d, r8d
and r9d, 0xfffffff0
and r8d, 0xf
add r9, r12
movzx r8d, byte [r8 + r9]
movzx r9d, byte [rsp + 0x9d]
movd xmm5, r8d
mov r8d, r9d
and r8d, 0xfffffff0
and r9d, 0xf
add r8, r12
movzx r8d, byte [r9 + r8]
movzx r9d, byte [rsp + 0x9a]
movd xmm9, r8d
mov r8d, r9d
and r8d, 0xfffffff0
and r9d, 0xf
add r8, r12
movzx r8d, byte [r9 + r8]
movd xmm10, r8d
mov r8d, r10d
and r8d, 0xfffffff0
and r10d, 0xf
add r8, r12
movzx r8d, byte [r10 + r8]
movd xmm12, r8d
mov r8d, eax
and r8d, 0xfffffff0
and eax, 0xf
add r8, r12
movzx eax, byte [rax + r8]
movzx r8d, byte [rsp + 0x9f]
movd xmm11, eax
mov eax, r8d
and eax, 0xfffffff0
and r8d, 0xf
add rax, r12
movzx eax, byte [r8 + rax]
mov r8d, dword [rsp + 0x98]
movdqa xmm13, xmm1
pinsrw xmm13, r8d, 1
movd xmm14, eax
movd xmm15, r8d
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
add rax, r12
movzx eax, byte [rcx + rax]
movd xmm8, eax
mov eax, edx
and eax, 0xfffffff0
and edx, 0xf
add rax, r12
movzx eax, byte [rdx + rax]
movzx ecx, byte [rsp + 0x9c]
movd xmm6, eax
mov eax, ecx
and eax, 0xfffffff0
and ecx, 0xf
add rax, r12
movzx eax, byte [rcx + rax]
movd xmm7, eax
punpcklbw xmm8, xmm1
punpcklbw xmm3, xmm2
punpcklbw xmm5, xmm4
punpcklwd xmm5, xmm3
punpcklbw xmm10, xmm9
punpcklbw xmm11, xmm12
punpcklwd xmm11, xmm10
punpckldq xmm11, xmm5
punpcklbw xmm15, xmm14
psrlw xmm13, 8
punpcklwd xmm8, xmm15
punpckldq xmm8, xmm6
pxor xmm3, xmm3
punpcklqdq xmm11, xmm8
movdqa xmm2, xmmword [0x140381650]
pand xmm11, xmm2
punpcklbw xmm13, xmm13
pshuflw xmm1, xmm13, 0xe8
pshufd xmm1, xmm1, 0
pandn xmm2, xmm1
por xmm2, xmm11
pand xmm2, xmmword [0x140381660]
pslldq xmm7, 0xf
por xmm7, xmm2
pxor xmm7, xmm0
movdqa xmm0, xmm7
punpckhbw xmm0, xmm3
pshufd xmm1, xmm0, 0xe7
pshuflw xmm1, xmm1, 0x72
punpcklbw xmm7, xmm3
pshufd xmm2, xmm7, 0xe7
pshuflw xmm2, xmm2, 0x72
punpckldq xmm2, xmm1
pshufd xmm0, xmm0, 0xe8
pshuflw xmm0, xmm0, 0xd8
pshufd xmm1, xmm7, 0xe8
pshuflw xmm1, xmm1, 0xd8
punpckldq xmm1, xmm0
packuswb xmm1, xmm2
movdqa xmmword [rsp + 0x90], xmm1
mov rdx, rbx
call fcn.1400aec00
add r15, 0xfffffffffffffff0
dec r13
test r14d, r14d
mov r14, r13
jne 0x1400ae140
movzx edx, byte [rsp + 0x90]
movzx r8d, byte [rsp + 0x91]
movzx eax, byte [rsp + 0x92]
movzx r12d, byte [rsp + 0x93]
movzx ebx, byte [rsp + 0x94]
movzx ebp, byte [rsp + 0x95]
movzx r11d, byte [rsp + 0x96]
movzx r10d, byte [rsp + 0x97]
movzx ecx, byte [rsp + 0x98]
movzx r13d, byte [rsp + 0x99]
movzx r9d, byte [rsp + 0x9a]
movzx esi, byte [rsp + 0x9b]
jmp 0x1400ae506
movzx edx, byte [rsp + 0x20]
movzx ebx, byte [rsp + 0x21]
movzx ecx, byte [rsp + 0x22]
movzx r8d, byte [rsp + 0x24]
movzx ebp, byte [rsp + 0x25]
movzx r13d, byte [rsp + 0x26]
movzx eax, byte [rsp + 0x28]
movzx r11d, byte [rsp + 0x29]
movzx r9d, byte [rsp + 0x2a]
movzx r12d, byte [rsp + 0x2c]
movzx r10d, byte [rsp + 0x2d]
movzx esi, byte [rsp + 0x2e]
movzx edx, dl
mov qword [rsp + 0x78], rdx
and edx, 0xfffffff0
lea r15, [0x140381540]
add rdx, r15
mov qword [rsp + 0x60], rdx
movzx edx, r8b
mov qword [rsp + 0x58], rdx
and edx, 0xfffffff0
add rdx, r15
mov qword [rsp + 0x50], rdx
movzx eax, al
mov qword [rsp + 0x70], rax
and eax, 0xfffffff0
add rax, r15
mov qword [rsp + 0x68], rax
movzx eax, bpl
mov edx, eax
and edx, 0xfffffff0
and eax, 0xf
add rdx, r15
movzx eax, byte [rax + rdx]
movzx edx, r11b
mov r8d, edx
and r8d, 0xfffffff0
and edx, 0xf
add r8, r15
movzx edx, byte [rdx + r8]
movzx ecx, cl
mov r8d, ecx
and r8d, 0xfffffff0
and ecx, 0xf
add r8, r15
movzx ecx, byte [rcx + r8]
movzx r8d, r13b
mov r11d, r8d
and r11d, 0xfffffff0
and r8d, 0xf
add r11, r15
movzx r8d, byte [r8 + r11]
movzx r11d, r12b
mov qword [rsp + 0x40], r11
mov edi, r11d
and edi, 0xfffffff0
add rdi, r15
mov qword [rsp + 0x48], rdi
mov byte [rsp + 0x95], al
movzx ebx, bl
mov byte [rsp + 0x96], dl
mov byte [rsp + 0x98], cl
mov edi, ebx
and edi, 0xfffffff0
add rdi, r15
mov byte [rsp + 0x99], r8b
movzx r14d, r10b
mov ebp, r14d
and ebp, 0xfffffff0
add rbp, r15
movzx r12d, r9b
mov r13d, r12d
and r13d, 0xfffffff0
add r13, r15
movzx esi, sil
mov r11d, esi
and r11d, 0xfffffff0
add r11, r15
movzx eax, byte [rsp + 0x9c]
mov qword [rsp + 0x30], rax
mov ecx, eax
and ecx, 0xfffffff0
add rcx, r15
mov qword [rsp + 0x38], rcx
movzx r10d, byte [rsp + 0x9d]
mov r9d, r10d
and r9d, 0xfffffff0
add r9, r15
movzx edx, byte [rsp + 0x9e]
mov ecx, edx
and ecx, 0xfffffff0
add rcx, r15
movzx r8d, byte [rsp + 0x9f]
mov eax, r8d
and eax, 0xfffffff0
add rax, r15
movzx r15d, word [rsp + 0x95]
movd xmm1, r15d
mov r15, qword [rsp + 0x80]
movdqu xmm0, xmmword [r15]
and ebx, 0xf
movzx edi, byte [rbx + rdi]
movd xmm3, edi
mov rdi, qword [rsp + 0x58]
and edi, 0xf
mov rbx, qword [rsp + 0x50]
movzx edi, byte [rdi + rbx]
movd xmm2, edi
and esi, 0xf
movzx r11d, byte [rsi + r11]
movd xmm4, r11d
and edx, 0xf
movzx ecx, byte [rdx + rcx]
movd xmm6, ecx
and r14d, 0xf
movzx ecx, byte [r14 + rbp]
movd xmm7, ecx
mov rcx, qword [rsp + 0x78]
and ecx, 0xf
mov rdx, qword [rsp + 0x60]
movzx ecx, byte [rcx + rdx]
movd xmm5, ecx
and r12d, 0xf
movzx ecx, byte [r12 + r13]
movd xmm8, ecx
and r10d, 0xf
movzx ecx, byte [r10 + r9]
movd xmm9, ecx
and r8d, 0xf
movzx eax, byte [r8 + rax]
movd xmm11, eax
mov eax, dword [rsp + 0x98]
movdqa xmm10, xmm1
pinsrw xmm10, eax, 1
movd xmm12, eax
mov rax, qword [rsp + 0x70]
and eax, 0xf
mov rcx, qword [rsp + 0x68]
movzx eax, byte [rax + rcx]
movd xmm13, eax
mov rax, qword [rsp + 0x40]
and eax, 0xf
mov rcx, qword [rsp + 0x48]
movzx eax, byte [rax + rcx]
movd xmm14, eax
mov rax, qword [rsp + 0x30]
and eax, 0xf
mov rcx, qword [rsp + 0x38]
movzx eax, byte [rax + rcx]
movd xmm15, eax
punpcklbw xmm13, xmm1
punpcklbw xmm2, xmm3
punpcklbw xmm4, xmm6
punpcklwd xmm2, xmm4
punpcklbw xmm5, xmm7
punpcklbw xmm8, xmm9
punpcklwd xmm5, xmm8
punpckldq xmm5, xmm2
punpcklbw xmm12, xmm11
psrlw xmm10, 8
punpcklwd xmm13, xmm12
punpckldq xmm13, xmm14
punpcklqdq xmm5, xmm13
movdqa xmm1, xmmword [0x140381650]
pand xmm5, xmm1
punpcklbw xmm10, xmm10
pshuflw xmm2, xmm10, 0xe8
pshufd xmm2, xmm2, 0
pandn xmm1, xmm2
por xmm1, xmm5
pand xmm1, xmmword [0x140381660]
pslldq xmm15, 0xf
por xmm15, xmm1
pxor xmm15, xmm0
mov rax, qword [rsp + 0x88]
movdqu xmmword [rax], xmm15
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.14016e5c0
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xd0]
movaps xmm9, xmmword [rsp + 0xe0]
movaps xmm10, xmmword [rsp + 0xf0]
movaps xmm11, xmmword [rsp + 0x100]
movaps xmm12, xmmword [rsp + 0x110]
movaps xmm13, xmmword [rsp + 0x120]
movaps xmm14, xmmword [rsp + 0x130]
movaps xmm15, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret