Function at 0x140001460
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, 0x148
movaps xmmword [rsp + 0x130], xmm15
movaps xmmword [rsp + 0x120], xmm14
movaps xmmword [rsp + 0x110], xmm13
movaps xmmword [rsp + 0x100], xmm12
movaps xmmword [rsp + 0xf0], xmm11
movaps xmmword [rsp + 0xe0], xmm10
movaps xmmword [rsp + 0xd0], xmm9
movaps xmmword [rsp + 0xc0], xmm8
movaps xmmword [rsp + 0xb0], xmm7
movaps xmmword [rsp + 0xa0], xmm6
mov rsi, r9
mov qword [rsp + 0x98], r8
mov edi, dword [rcx + 4]
mov eax, edi
shl eax, 4
movzx ecx, byte [r9 + rax]
movzx r8d, byte [r9 + rax + 1]
xor cl, byte [rdx]
movzx ecx, cl
movzx r9d, byte [r9 + rax + 4]
xor r9b, byte [rdx + 4]
movzx r9d, r9b
shl r9d, 8
movzx r10d, byte [rsi + rax + 8]
xor r10b, byte [rdx + 8]
or r9d, ecx
movzx r10d, r10b
shl r10d, 0x10
or r10d, r9d
movzx ecx, byte [rsi + rax + 0xc]
xor cl, byte [rdx + 0xc]
movzx r15d, cl
shl r15d, 0x18
or r15d, r10d
xor r8b, byte [rdx + 1]
movzx r8d, r8b
movzx r9d, byte [rsi + rax + 5]
xor r9b, byte [rdx + 5]
movzx r9d, r9b
shl r9d, 8
or r9d, r8d
movzx r8d, byte [rsi + rax + 9]
xor r8b, byte [rdx + 9]
movzx r8d, r8b
shl r8d, 0x10
or r8d, r9d
movzx r9d, byte [rsi + rax + 0xd]
xor r9b, byte [rdx + 0xd]
movzx r10d, r9b
shl r10d, 0x18
or r10d, r8d
movzx r8d, byte [rsi + rax + 2]
xor r8b, byte [rdx + 2]
movzx r8d, r8b
movzx r9d, byte [rsi + rax + 6]
xor r9b, byte [rdx + 6]
movzx r9d, r9b
shl r9d, 8
or r9d, r8d
movzx r8d, byte [rsi + rax + 0xa]
xor r8b, byte [rdx + 0xa]
movzx r11d, r8b
shl r11d, 0x10
or r11d, r9d
movzx r8d, byte [rsi + rax + 0xe]
xor r8b, byte [rdx + 0xe]
movzx r8d, r8b
shl r8d, 0x18
or r8d, r11d
movzx r9d, byte [rsi + rax + 3]
xor r9b, byte [rdx + 3]
movzx r9d, r9b
movzx r11d, byte [rsi + rax + 7]
xor r11b, byte [rdx + 7]
movzx r11d, r11b
shl r11d, 8
or r11d, r9d
movzx r9d, byte [rsi + rax + 0xb]
xor r9b, byte [rdx + 0xb]
movzx r9d, r9b
shl r9d, 0x10
or r9d, r11d
movzx eax, byte [rsi + rax + 0xf]
xor al, byte [rdx + 0xf]
movzx ebx, al
shl ebx, 0x18
or ebx, r9d
dec edi
mov qword [rsp + 0x80], rsi
je 0x140001c20
mov r9d, edi
shl r9, 4
nop
mov qword [rsp + 0x58], r9
mov dword [rsp + 0x78], edi
mov r14d, r15d
and r14d, 0xf
mov esi, r15d
and esi, 0xf0
lea rax, [0x1400254b0]
add rsi, rax
mov rdx, rax
mov eax, r15d
shr eax, 8
mov r9d, eax
and r9d, 0xf
and eax, 0xf0
add rax, rdx
mov ecx, r15d
shr ecx, 0x10
mov r11d, ecx
and r11d, 0xf
and ecx, 0xf0
add rcx, rdx
shr r15d, 0x18
mov edi, r15d
and edi, 0xf
mov qword [rsp], rdi
and r15d, 0xfffffff0
add r15, rdx
mov edi, r10d
and edi, 0xf
mov qword [rsp + 0x48], rdi
mov edi, r10d
and edi, 0xf0
add rdi, rdx
mov rbp, qword [rsp + 0x58]
and ebp, 0xfffffff0
mov r12, qword [rsp + 0x80]
movzx r13d, byte [r12 + rbp]
xor r13b, byte [r14 + rsi]
mov byte [rsp + 0x40], r13b
mov esi, r10d
shr esi, 8
mov r14d, esi
and r14d, 0xf
and esi, 0xf0
add rsi, rdx
movzx r13d, byte [r12 + rbp + 4]
xor r13b, byte [r9 + rax]
mov byte [rsp + 0x38], r13b
mov r9d, r10d
shr r9d, 0x10
movzx eax, byte [r12 + rbp + 8]
xor al, byte [r11 + rcx]
mov byte [rsp + 0x30], al
mov eax, r9d
and eax, 0xf
and r9d, 0xf0
add r9, rdx
shr r10d, 0x18
mov r11d, r10d
and r11d, 0xf
and r10d, 0xfffffff0
add r10, rdx
mov r13, rdx
movzx edx, byte [r12 + rbp + 0xc]
mov rcx, qword [rsp]
xor dl, byte [rcx + r15]
mov byte [rsp], dl
mov r15d, r8d
movzx ecx, byte [r12 + rbp + 1]
xor cl, byte [r11 + r10]
mov byte [rsp + 0x28], cl
and r15d, 0xf
mov r11d, r8d
and r11d, 0xf0
add r11, r13
mov ecx, r8d
movzx r10d, byte [r12 + rbp + 5]
mov rdx, qword [rsp + 0x48]
xor r10b, byte [rdx + rdi]
mov byte [rsp + 0x20], r10b
shr ecx, 8
mov edi, ecx
and edi, 0xf
and ecx, 0xf0
add rcx, r13
movzx edx, byte [r12 + rbp + 9]
xor dl, byte [r14 + rsi]
mov byte [rsp + 0x18], dl
mov r10d, r8d
shr r10d, 0x10
mov esi, r10d
and esi, 0xf
and r10d, 0xf0
add r10, r13
shr r8d, 0x18
movzx edx, byte [r12 + rbp + 0xd]
xor dl, byte [rax + r9]
mov byte [rsp + 0x10], dl
mov edx, r8d
and edx, 0xf
and r8d, 0xfffffff0
movzx eax, byte [r12 + rbp + 2]
xor al, byte [rsi + r10]
mov byte [rsp + 8], al
add r8, r13
mov r14d, ebx
and r14d, 0xf
mov eax, ebx
and eax, 0xf0
movzx r9d, byte [r12 + rbp + 6]
xor r9b, byte [rdx + r8]
mov r8d, ebx
movzx r10d, byte [r12 + rbp + 0xa]
xor r10b, byte [r15 + r11]
shr r8d, 8
mov esi, r8d
and esi, 0xf
and r8d, 0xf0
add r8, r13
mov r15d, ebx
shr r15d, 0x10
movzx r11d, byte [r12 + rbp + 0xe]
xor r11b, byte [rdi + rcx]
mov byte [rsp + 0x50], r11b
mov edi, r15d
and edi, 0xf
and r15d, 0xf0
add r15, r13
shr ebx, 0x18
movzx edx, byte [r12 + rbp + 3]
xor dl, byte [rsi + r8]
mov r8d, ebx
and r8d, 0xf
and ebx, 0xfffffff0
movzx ecx, byte [r12 + rbp + 7]
xor cl, byte [rdi + r15]
add rbx, r13
movzx esi, byte [r12 + rbp + 0xb]
xor sil, byte [r8 + rbx]
add rax, r13
movzx ebx, byte [r12 + rbp + 0xf]
xor bl, byte [r14 + rax]
movzx r8d, byte [rsp + 0x40]
lea r12, [0x1400245b0]
movzx edi, byte [r8 + r12 + 0xe00]
movzx eax, byte [rsp + 0x38]
mov qword [rsp + 0x68], rax
movzx r14d, byte [rax + r12 + 0xe00]
movzx eax, byte [rsp + 0x30]
mov qword [rsp + 0x48], rax
movzx r11d, byte [rsp + 0x28]
xor dil, byte [r11 + r12 + 0xb00]
mov r15, r11
movzx r13d, byte [rax + r12 + 0xe00]
movzx eax, byte [rsp + 0x20]
mov qword [rsp + 0x60], rax
xor r14b, byte [rax + r12 + 0xb00]
movzx r11d, byte [rsp]
mov qword [rsp], r11
movzx eax, byte [rsp + 0x18]
mov qword [rsp + 0x40], rax
xor r13b, byte [rax + r12 + 0xb00]
movzx eax, byte [r11 + r12 + 0xe00]
movzx r11d, byte [rsp + 0x10]
mov qword [rsp + 0x70], r11
xor al, byte [r11 + r12 + 0xb00]
movzx r11d, byte [rsp + 8]
mov qword [rsp + 0x20], r11
xor dil, byte [r11 + r12 + 0xd00]
movzx r9d, r9b
mov qword [rsp + 0x18], r9
xor r14b, byte [r9 + r12 + 0xd00]
movzx r9d, r10b
mov qword [rsp + 0x38], r9
xor r13b, byte [r9 + r12 + 0xd00]
movzx edx, dl
mov qword [rsp + 0x10], rdx
xor dil, byte [rdx + r12 + 0x900]
movzx ecx, cl
mov qword [rsp + 8], rcx
xor r14b, byte [rcx + r12 + 0x900]
movzx ecx, r14b
shl ecx, 8
movzx edx, dil
or ecx, edx
movzx edx, byte [rsp + 0x50]
mov qword [rsp + 0x30], rdx
xor al, byte [rdx + r12 + 0xd00]
movzx edx, sil
mov qword [rsp + 0x28], rdx
xor r13b, byte [rdx + r12 + 0x900]
movzx r10d, r13b
shl r10d, 0x10
movzx ebp, bl
xor al, byte [rbp + r12 + 0x900]
mov qword [rsp + 0x50], rbp
or r10d, ecx
mov r9, r8
movzx edx, byte [r8 + r12 + 0x900]
mov r11, r15
xor dl, byte [r15 + r12 + 0xe00]
mov rdi, qword [rsp + 0x68]
movzx r8d, byte [rdi + r12 + 0x900]
mov rsi, qword [rsp + 0x60]
xor r8b, byte [rsi + r12 + 0xe00]
movzx r15d, al
shl r15d, 0x18
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax + r12 + 0x900]
mov rcx, qword [rsp + 0x40]
xor al, byte [rcx + r12 + 0xe00]
mov r13, qword [rsp + 0x20]
xor dl, byte [r13 + r12 + 0xb00]
mov rcx, qword [rsp + 0x18]
xor r8b, byte [rcx + r12 + 0xb00]
mov rbx, qword [rsp + 0x10]
xor dl, byte [rbx + r12 + 0xd00]
mov rcx, qword [rsp + 8]
xor r8b, byte [rcx + r12 + 0xd00]
or r15d, r10d
movzx r8d, r8b
shl r8d, 8
movzx edx, dl
or r8d, edx
mov rdx, qword [rsp]
movzx edx, byte [rdx + r12 + 0x900]
mov r14, qword [rsp + 0x70]
xor dl, byte [r14 + r12 + 0xe00]
mov r10, qword [rsp + 0x38]
xor al, byte [r10 + r12 + 0xb00]
mov r10, qword [rsp + 0x30]
xor dl, byte [r10 + r12 + 0xb00]
mov r10, qword [rsp + 0x28]
xor al, byte [r10 + r12 + 0xd00]
movzx eax, al
shl eax, 0x10
or eax, r8d
xor dl, byte [rbp + r12 + 0xd00]
movzx r10d, dl
shl r10d, 0x18
movzx edx, byte [r9 + r12 + 0xd00]
xor dl, byte [r11 + r12 + 0x900]
or r10d, eax
movzx eax, byte [rdi + r12 + 0xd00]
xor al, byte [rsi + r12 + 0x900]
xor dl, byte [r13 + r12 + 0xe00]
mov r13, qword [rsp + 0x18]
xor al, byte [r13 + r12 + 0xe00]
xor dl, byte [rbx + r12 + 0xb00]
xor al, byte [rcx + r12 + 0xb00]
movzx r8d, al
shl r8d, 8
movzx eax, dl
or r8d, eax
movzx eax, byte [r9 + r12 + 0xb00]
xor al, byte [r11 + r12 + 0xd00]
mov rbx, qword [rsp + 0x48]
movzx edx, byte [rbx + r12 + 0xd00]
mov rcx, qword [rsp + 0x40]
xor dl, byte [rcx + r12 + 0x900]
mov r9, qword [rsp + 0x38]
xor dl, byte [r9 + r12 + 0xe00]
mov r11, qword [rsp + 0x28]
xor dl, byte [r11 + r12 + 0xb00]
movzx edx, dl
shl edx, 0x10
or edx, r8d
movzx ebp, byte [rdi + r12 + 0xb00]
xor bpl, byte [rsi + r12 + 0xd00]
movzx ebx, byte [rbx + r12 + 0xb00]
xor bl, byte [rcx + r12 + 0xd00]
mov rdi, qword [rsp]
movzx r8d, byte [rdi + r12 + 0xd00]
xor r8b, byte [r14 + r12 + 0x900]
mov rsi, qword [rsp + 0x30]
xor r8b, byte [rsi + r12 + 0xe00]
mov rcx, qword [rsp + 0x50]
xor r8b, byte [rcx + r12 + 0xb00]
movzx r8d, r8b
shl r8d, 0x18
or r8d, edx
movzx edi, byte [rdi + r12 + 0xb00]
xor dil, byte [r14 + r12 + 0xd00]
mov rdx, qword [rsp + 0x20]
xor al, byte [rdx + r12 + 0x900]
xor bpl, byte [r13 + r12 + 0x900]
xor bl, byte [r9 + r12 + 0x900]
xor dil, byte [rsi + r12 + 0x900]
mov rdx, qword [rsp + 0x10]
xor al, byte [rdx + r12 + 0xe00]
mov rdx, qword [rsp + 8]
xor bpl, byte [rdx + r12 + 0xe00]
movzx eax, al
movzx edx, bpl
mov r9, qword [rsp + 0x58]
shl edx, 8
or edx, eax
xor bl, byte [r11 + r12 + 0xe00]
movzx eax, bl
shl eax, 0x10
or eax, edx
xor dil, byte [rcx + r12 + 0xe00]
movzx ebx, dil
mov edi, dword [rsp + 0x78]
shl ebx, 0x18
or ebx, eax
add r9, 0xfffffffffffffff0
dec edi
jne 0x140001620
mov eax, r15d
mov qword [rsp + 0x58], rax
and eax, 0xf0
lea r12, [0x1400254b0]
add rax, r12
mov qword [rsp + 0x48], rax
mov eax, r15d
shr eax, 8
mov edx, eax
mov qword [rsp], rdx
and eax, 0xf0
add rax, r12
mov qword [rsp + 0x40], rax
mov eax, r15d
shr eax, 0x10
mov ecx, eax
mov qword [rsp + 0x38], rcx
and eax, 0xf0
add rax, r12
mov qword [rsp + 0x30], rax
shr r15d, 0x18
mov eax, r15d
mov qword [rsp + 0x18], rax
and r15d, 0xfffffff0
add r15, r12
mov eax, r10d
and eax, 0xf0
add rax, r12
mov qword [rsp + 0x28], rax
mov esi, r10d
shr esi, 8
mov eax, esi
mov qword [rsp + 8], rax
and esi, 0xf0
add rsi, r12
mov r13d, r10d
shr r13d, 0x10
mov eax, r13d
mov qword [rsp + 0x70], rax
and r13d, 0xf0
add r13, r12
mov eax, r10d
mov qword [rsp + 0x10], rax
shr r10d, 0x18
mov eax, r10d
mov qword [rsp + 0x20], rax
and r10d, 0xfffffff0
add r10, r12
mov edi, r8d
and edi, 0xf0
add rdi, r12
mov ecx, r8d
shr ecx, 8
mov eax, ecx
mov qword [rsp + 0x60], rax
and ecx, 0xf0
add rcx, r12
mov r11d, r8d
shr r11d, 0x10
mov eax, r11d
mov qword [rsp + 0x78], rax
and r11d, 0xf0
add r11, r12
mov eax, r8d
mov qword [rsp + 0x90], rax
shr r8d, 0x18
mov eax, r8d
mov qword [rsp + 0x50], rax
and r8d, 0xfffffff0
add r8, r12
mov edx, ebx
and edx, 0xf0
add rdx, r12
mov r14d, ebx
shr r14d, 8
mov eax, r14d
mov qword [rsp + 0x68], rax
and r14d, 0xf0
add r14, r12
mov ebp, ebx
shr ebp, 0x10
mov eax, ebp
mov qword [rsp + 0x88], rax
and ebp, 0xf0
add rbp, r12
mov eax, ebx
shr ebx, 0x18
mov r9d, ebx
and ebx, 0xfffffff0
add rbx, r12
mov r12, qword [rsp + 0x80]
movdqu xmm0, xmmword [r12]
and eax, 0xf
movzx eax, byte [rax + rdx]
movd xmm1, eax
mov rax, qword [rsp + 0x60]
and eax, 0xf
movzx eax, byte [rax + rcx]
movd xmm2, eax
mov rax, qword [rsp + 0x70]
and eax, 0xf
movzx eax, byte [rax + r13]
movd xmm4, eax
mov rax, qword [rsp + 0x18]
and eax, 0xf
movzx eax, byte [rax + r15]
movd xmm3, eax
mov rax, qword [rsp + 0x90]
and eax, 0xf
movzx eax, byte [rax + rdi]
movd xmm6, eax
and r9d, 0xf
movzx eax, byte [r9 + rbx]
movd xmm7, eax
mov rax, qword [rsp + 8]
and eax, 0xf
movzx eax, byte [rax + rsi]
movd xmm8, eax
mov rax, qword [rsp + 0x38]
and eax, 0xf
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rax + rcx]
movd xmm5, eax
mov rax, qword [rsp + 0x88]
and eax, 0xf
movzx eax, byte [rax + rbp]
movd xmm9, eax
mov rax, qword [rsp + 0x50]
and eax, 0xf
movzx eax, byte [rax + r8]
movd xmm10, eax
mov rcx, qword [rsp + 0x10]
and ecx, 0xf
mov rax, qword [rsp + 0x28]
movzx eax, byte [rcx + rax]
movd xmm12, eax
mov rax, qword [rsp]
and eax, 0xf
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rax + rcx]
movd xmm11, eax
mov rax, qword [rsp + 0x68]
and eax, 0xf
movzx eax, byte [rax + r14]
movd xmm13, eax
mov rax, qword [rsp + 0x78]
and eax, 0xf
movzx eax, byte [rax + r11]
movd xmm14, eax
mov rax, qword [rsp + 0x58]
and eax, 0xf
mov rcx, qword [rsp + 0x48]
movzx eax, byte [rax + rcx]
movd xmm15, eax
mov rax, qword [rsp + 0x20]
and eax, 0xf
movzx eax, byte [rax + r10]
punpcklbw xmm2, xmm1
movd xmm1, eax
punpcklbw xmm3, xmm4
punpcklwd xmm3, xmm2
punpcklbw xmm6, xmm7
punpcklbw xmm5, xmm8
punpcklwd xmm5, xmm6
punpckldq xmm5, xmm3
punpcklbw xmm10, xmm9
punpcklbw xmm11, xmm12
punpcklwd xmm11, xmm10
punpcklbw xmm14, xmm13
punpcklbw xmm15, xmm1
punpcklwd xmm15, xmm14
punpckldq xmm15, xmm11
punpcklqdq xmm15, xmm5
pxor xmm15, xmm0
mov rax, qword [rsp + 0x98]
movdqu xmmword [rax], xmm15
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0xc0]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm10, xmmword [rsp + 0xe0]
movaps xmm11, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm13, xmmword [rsp + 0x110]
movaps xmm14, xmmword [rsp + 0x120]
movaps xmm15, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret