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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov rsi, qword [rcx]
mov rax, qword [0x14012c3e8]
movzx eax, byte [rax]
cmp al, 1
jne 0x140009aff
mov rcx, rsi
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140009dd0
mov r13, qword [rdx]
mov r15, qword [rdx + 8]
mov r14, qword [rdx + 0x10]
mov rcx, qword [rdx + 0x18]
mov eax, ecx
and eax, 3
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
cmp rcx, 4
jb 0x140009c2f
mov rbp, qword [rsp + 0x20]
shr rbp, 2
xor r12d, r12d
lea rdi, [rsp + 0xb0]
lea rbx, [rsp + 0x30]
mov eax, dword [r13 + 0x10]
mov ecx, dword [r13 + 8]
mov edx, dword [r13 + 0xc]
add edx, eax
bswap edx
mov r8, qword [r13]
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x3c], edx
mov ecx, dword [r13 + 0xc]
mov edx, dword [r13 + 8]
lea ecx, [rax + rcx + 1]
bswap ecx
mov r8, qword [r13]
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x4c], ecx
mov ecx, dword [r13 + 0xc]
mov edx, dword [r13 + 8]
lea ecx, [rax + rcx + 2]
bswap ecx
mov r8, qword [r13]
mov qword [rsp + 0x50], r8
mov dword [rsp + 0x58], edx
mov dword [rsp + 0x5c], ecx
mov ecx, dword [r13 + 0xc]
mov edx, dword [r13 + 8]
add ecx, eax
add ecx, 3
bswap ecx
add eax, 4
mov dword [r13 + 0x10], eax
mov rax, qword [r13]
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], ecx
mov rcx, rdi
mov rdx, rsi
mov r8, rbx
call fcn.140012bd0
movups xmm0, xmmword [r15 + r12]
movups xmm1, xmmword [r15 + r12 + 0x10]
movups xmm2, xmmword [r15 + r12 + 0x20]
movups xmm3, xmmword [r15 + r12 + 0x30]
xorps xmm0, xmmword [rsp + 0xb0]
xorps xmm1, xmmword [rsp + 0xc0]
xorps xmm2, xmmword [rsp + 0xd0]
xorps xmm3, xmmword [rsp + 0xe0]
movups xmmword [r14 + r12], xmm0
movups xmmword [r14 + r12 + 0x10], xmm1
movups xmmword [r14 + r12 + 0x20], xmm2
movups xmmword [r14 + r12 + 0x30], xmm3
add r12, 0x40
dec rbp
jne 0x140009b40
xorps xmm6, xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
mov rbp, qword [rsp + 0x28]
test rbp, rbp
je 0x140009d31
movabs rax, 0xffffffffffffffc
mov rcx, qword [rsp + 0x20]
and rcx, rax
shl rcx, 4
add r15, rcx
add r14, rcx
lea r12, [rsp + 0x40]
shl rbp, 4
xor edi, edi
lea rbx, [rsp + 0x30]
nop dword [rax]
mov eax, dword [r13 + 0x10]
mov ecx, dword [r13 + 8]
mov edx, dword [r13 + 0xc]
add edx, eax
bswap edx
inc eax
mov dword [r13 + 0x10], eax
mov rax, qword [r13]
movups xmmword [r12 + 0x20], xmm6
movups xmmword [r12 + 0x10], xmm6
movups xmmword [r12], xmm6
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x3c], edx
lea rcx, [rsp + 0xb0]
mov rdx, rsi
mov r8, rbx
call fcn.140012bd0
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + rdi + 0x70], xmm0
add rdi, 0x10
cmp rbp, rdi
jne 0x140009c90
movups xmm0, xmmword [r15]
xorps xmm0, xmmword [rsp + 0x70]
movups xmmword [r14], xmm0
mov rax, qword [rsp + 0x28]
cmp eax, 1
je 0x140009d31
movups xmm0, xmmword [r15 + 0x10]
xorps xmm0, xmmword [rsp + 0x80]
movups xmmword [r14 + 0x10], xmm0
cmp eax, 2
je 0x140009d31
movups xmm0, xmmword [r15 + 0x20]
xorps xmm0, xmmword [rsp + 0x90]
movups xmmword [r14 + 0x20], xmm0
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x228
movdqa xmmword [rsp + 0x210], xmm15
movdqa xmmword [rsp + 0x200], xmm14
movdqa xmmword [rsp + 0x1f0], xmm13
movdqa xmmword [rsp + 0x1e0], xmm12
movdqa xmmword [rsp + 0x1d0], xmm11
movdqa xmmword [rsp + 0x1c0], xmm10
movdqa xmmword [rsp + 0x1b0], xmm9
movdqa xmmword [rsp + 0x1a0], xmm8
movdqa xmmword [rsp + 0x190], xmm7
movdqa xmmword [rsp + 0x180], xmm6
mov r10, qword [rdx]
mov r8, qword [rdx + 8]
mov rax, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
mov r9d, edx
and r9d, 7
cmp rdx, 8
jb 0x14000a418
mov r11, rdx
shr r11, 3
movaps xmm0, xmmword [rcx]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm0, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x10], xmm0
movaps xmm0, xmmword [rcx + 0x30]
movaps xmmword [rsp + 0x80], xmm0
movaps xmm0, xmmword [rcx + 0x40]
movaps xmmword [rsp], xmm0
movaps xmm0, xmmword [rcx + 0x50]
movaps xmmword [rsp + 0x70], xmm0
movaps xmm0, xmmword [rcx + 0x60]
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [rcx + 0x70]
movaps xmmword [rsp + 0x50], xmm0
movaps xmm0, xmmword [rcx + 0x80]
movaps xmmword [rsp + 0x40], xmm0
movaps xmm0, xmmword [rcx + 0x90]
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmmword [rcx + 0xa0]
movaps xmmword [rsp + 0x20], xmm0
movaps xmm0, xmmword [rcx + 0xb0]
movaps xmmword [rsp + 0x160], xmm0
movaps xmm0, xmmword [rcx + 0xc0]
movaps xmmword [rsp + 0x150], xmm0
movaps xmm0, xmmword [rcx + 0xd0]
movaps xmmword [rsp + 0x140], xmm0
movdqa xmm0, xmmword [rcx + 0xe0]
movdqa xmmword [rsp + 0x130], xmm0
xor esi, esi
nop word [rax + rax]
mov edi, dword [r10 + 0xc]
mov ebx, dword [r10 + 0x10]
lea ebp, [rbx + 8]
movsd xmm12, qword [r10 + 4]
mov dword [r10 + 0x10], ebp
movss xmm7, dword [r10]
lea ebp, [rdi + rbx + 7]
shufps xmm7, xmm12, 0x4c
bswap ebp
movd xmm0, ebp
shufps xmm0, xmm12, 0xd4
movaps xmm9, xmm7
lea ebp, [rdi + rbx + 6]
bswap ebp
movd xmm3, ebp
shufps xmm9, xmm0, 0x28
shufps xmm3, xmm12, 0xd4
movaps xmm2, xmm7
shufps xmm2, xmm3, 0x28
movaps xmm0, xmmword [rsp + 0xa0]
xorps xmm9, xmm0
xorps xmm2, xmm0
movaps xmm3, xmm0
lea ebp, [rdi + rbx + 5]
movdqa xmm4, xmmword [rsp + 0x90]
aesenc xmm9, xmm4
bswap ebp
movd xmm0, ebp
aesenc xmm2, xmm4
shufps xmm0, xmm12, 0xd4
movaps xmm15, xmm7
movdqa xmm5, xmmword [rsp + 0x10]
aesenc xmm9, xmm5
shufps xmm15, xmm0, 0x28
movaps xmm0, xmm3
xorps xmm15, xmm3
aesenc xmm2, xmm5
aesenc xmm15, xmm4
movdqa xmm8, xmm4
movdqa xmm3, xmmword [rsp + 0x80]
aesenc xmm9, xmm3
aesenc xmm15, xmm5
aesenc xmm2, xmm3
movdqa xmm4, xmm3
lea ebp, [rdi + rbx + 4]
aesenc xmm15, xmm3
bswap ebp
movd xmm3, ebp
movdqa xmm10, xmmword [rsp]
aesenc xmm9, xmm10
shufps xmm3, xmm12, 0xd4
movaps xmm6, xmm7
aesenc xmm2, xmm10
shufps xmm6, xmm3, 0x28
xorps xmm6, xmm0
movaps xmm11, xmm0
aesenc xmm15, xmm10
aesenc xmm6, xmm8
movdqa xmm0, xmmword [rsp + 0x70]
aesenc xmm9, xmm0
aesenc xmm6, xmm5
aesenc xmm2, xmm0
aesenc xmm6, xmm4
movdqa xmm5, xmm4
aesenc xmm15, xmm0
aesenc xmm6, xmm10
aesenc xmm6, xmm0
movdqa xmm13, xmm0
lea ebp, [rdi + rbx + 3]
movdqa xmm0, xmmword [rsp + 0x60]
aesenc xmm9, xmm0
bswap ebp
movd xmm4, ebp
aesenc xmm2, xmm0
shufps xmm4, xmm12, 0xd4
movaps xmmword [rsp + 0x170], xmm12
movaps xmm3, xmm7
aesenc xmm15, xmm0
shufps xmm3, xmm4, 0x28
xorps xmm3, xmm11
aesenc xmm6, xmm0
movdqa xmm1, xmm0
aesenc xmm3, xmm8
movdqa xmm14, xmmword [rsp + 0x50]
aesenc xmm9, xmm14
movdqa xmm0, xmmword [rsp + 0x10]
aesenc xmm3, xmm0
aesenc xmm2, xmm14
movdqa xmm8, xmm5
aesenc xmm3, xmm5
aesenc xmm15, xmm14
aesenc xmm3, xmm10
aesenc xmm6, xmm14
movdqa xmm10, xmm13
aesenc xmm3, xmm13
movdqa xmm5, xmmword [rsp + 0x40]
aesenc xmm9, xmm5
aesenc xmm3, xmm1
aesenc xmm2, xmm5
aesenc xmm3, xmm14
aesenc xmm15, xmm5
movdqa xmm4, xmm5
lea ebp, [rdi + rbx + 2]
aesenc xmm6, xmm5
bswap ebp
movd xmm5, ebp
aesenc xmm3, xmm4
movdqa xmm13, xmm4
shufps xmm5, xmm12, 0xd4
movaps xmm4, xmm7
movdqa xmm12, xmmword [rsp + 0x30]
aesenc xmm9, xmm12
shufps xmm4, xmm5, 0x28
xorps xmm4, xmm11
aesenc xmm2, xmm12
movdqa xmm11, xmmword [rsp + 0x90]
aesenc xmm4, xmm11
aesenc xmm15, xmm12
aesenc xmm4, xmm0
aesenc xmm6, xmm12
aesenc xmm4, xmm8
aesenc xmm3, xmm12
movdqa xmm0, xmmword [rsp]
aesenc xmm4, xmm0
movdqa xmm5, xmmword [rsp + 0x20]
aesenc xmm9, xmm5
aesenc xmm4, xmm10
aesenc xmm2, xmm5
aesenc xmm4, xmm1
aesenc xmm15, xmm5
aesenc xmm4, xmm14
aesenc xmm6, xmm5
aesenc xmm4, xmm13
aesenc xmm3, xmm5
aesenc xmm4, xmm12
aesenc xmm4, xmm5
lea ebp, [rdi + rbx + 1]
movdqa xmm10, xmmword [rsp + 0x160]
aesenc xmm9, xmm10
bswap ebp
movd xmm8, ebp
aesenc xmm2, xmm10
movaps xmm1, xmmword [rsp + 0x170]
shufps xmm8, xmm1, 0xd4
movaps xmm5, xmm7
aesenc xmm15, xmm10
shufps xmm5, xmm8, 0x28
add edi, ebx
aesenc xmm6, xmm10
bswap edi
movd xmm8, edi
aesenc xmm3, xmm10
shufps xmm8, xmm1, 0xd4
movaps xmm12, xmmword [rsp + 0xa0]
xorps xmm5, xmm12
aesenc xmm4, xmm10
aesenc xmm5, xmm11
movdqa xmm1, xmmword [rsp + 0x150]
aesenc xmm9, xmm1
movdqa xmm13, xmmword [rsp + 0x10]
aesenc xmm5, xmm13
aesenc xmm2, xmm1
movdqa xmm14, xmmword [rsp + 0x80]
aesenc xmm5, xmm14
aesenc xmm15, xmm1
aesenc xmm5, xmm0
aesenc xmm6, xmm1
aesenc xmm5, xmmword [rsp + 0x70]
aesenc xmm3, xmm1
aesenc xmm5, xmmword [rsp + 0x60]
aesenc xmm4, xmm1
aesenc xmm5, xmmword [rsp + 0x50]
movdqa xmm0, xmmword [rsp + 0x140]
aesenc xmm9, xmm0
aesenc xmm5, xmmword [rsp + 0x40]
aesenc xmm2, xmm0
aesenc xmm5, xmmword [rsp + 0x30]
aesenc xmm15, xmm0
aesenc xmm5, xmmword [rsp + 0x20]
aesenc xmm6, xmm0
aesenc xmm5, xmm10
aesenc xmm3, xmm0
aesenc xmm5, xmm1
aesenc xmm4, xmm0
shufps xmm7, xmm8, 0x28
xorps xmm7, xmm12
aesenc xmm5, xmm0
aesenc xmm7, xmm11
movdqa xmm8, xmmword [rsp + 0x130]
aesenclast xmm9, xmm8
aesenc xmm7, xmm13
aesenclast xmm2, xmm8
aesenc xmm7, xmm14
aesenclast xmm15, xmm8
aesenc xmm7, xmmword [rsp]
aesenclast xmm6, xmm8
aesenc xmm7, xmmword [rsp + 0x70]
aesenclast xmm3, xmm8
aesenc xmm7, xmmword [rsp + 0x60]
aesenclast xmm4, xmm8
aesenc xmm7, xmmword [rsp + 0x50]
aesenclast xmm5, xmm8
movdqu xmm14, xmmword [r8 + rsi + 0x70]
aesenc xmm7, xmmword [rsp + 0x40]
pxor xmm9, xmm14
movdqu xmm13, xmmword [r8 + rsi + 0x60]
aesenc xmm7, xmmword [rsp + 0x30]
pxor xmm2, xmm13
movdqu xmm12, xmmword [r8 + rsi + 0x50]
aesenc xmm7, xmmword [rsp + 0x20]
pxor xmm15, xmm12
movdqu xmm11, xmmword [r8 + rsi + 0x40]
aesenc xmm7, xmm10
pxor xmm6, xmm11
movdqu xmm10, xmmword [r8 + rsi + 0x30]
aesenc xmm7, xmm1
pxor xmm3, xmm10
movdqu xmm1, xmmword [r8 + rsi + 0x20]
aesenc xmm7, xmm0
pxor xmm4, xmm1
movdqu xmm1, xmmword [r8 + rsi + 0x10]
aesenclast xmm7, xmm8
pxor xmm5, xmm1
movdqu xmm1, xmmword [r8 + rsi]
pxor xmm7, xmm1
movdqu xmmword [rax + rsi], xmm7
movdqu xmmword [rax + rsi + 0x10], xmm5
movdqu xmmword [rax + rsi + 0x20], xmm4
movdqu xmmword [rax + rsi + 0x30], xmm3
movdqu xmmword [rax + rsi + 0x40], xmm6
movdqu xmmword [rax + rsi + 0x50], xmm15
movdqu xmmword [rax + rsi + 0x60], xmm2
movdqu xmmword [rax + rsi + 0x70], xmm9
sub rsi, 0xffffffffffffff80
dec r11
jne 0x140009f20
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x120], xmm0
movdqa xmmword [rsp + 0x110], xmm0
movdqa xmmword [rsp + 0x100], xmm0
movdqa xmmword [rsp + 0xf0], xmm0
movdqa xmmword [rsp + 0xe0], xmm0
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmmword [rsp + 0xc0], xmm0
movdqa xmmword [rsp + 0xb0], xmm0
test r9, r9
je 0x14000a9b2
movaps xmm0, xmmword [rcx]
movdqa xmm12, xmmword [rcx + 0x10]
movdqa xmm11, xmmword [rcx + 0x20]
movdqa xmm10, xmmword [rcx + 0x30]
movdqa xmm9, xmmword [rcx + 0x40]
movdqa xmm8, xmmword [rcx + 0x50]
movdqa xmm7, xmmword [rcx + 0x60]
movdqa xmm6, xmmword [rcx + 0x70]
movdqa xmm5, xmmword [rcx + 0x80]
movdqa xmm4, xmmword [rcx + 0x90]
movdqa xmm3, xmmword [rcx + 0xa0]
movdqa xmm2, xmmword [rcx + 0xb0]
movdqa xmm1, xmmword [rcx + 0xc0]
mov r11d, dword [r10 + 0x10]
movss xmm13, dword [r10]
movsd xmm15, qword [r10 + 4]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
movd xmm14, esi
shufps xmm14, xmm15, 0xd4
unpcklps xmm15, xmm13
movdqa xmm13, xmmword [rcx + 0xd0]
shufps xmm15, xmm14, 0x21
movdqa xmm14, xmmword [rcx + 0xe0]
inc r11d
xorps xmm15, xmm0
aesenc xmm15, xmm12
aesenc xmm15, xmm11
aesenc xmm15, xmm10
aesenc xmm15, xmm9
aesenc xmm15, xmm8
aesenc xmm15, xmm7
aesenc xmm15, xmm6
aesenc xmm15, xmm5
aesenc xmm15, xmm4
aesenc xmm15, xmm3
aesenc xmm15, xmm2
aesenc xmm15, xmm1
aesenc xmm15, xmm13
mov dword [r10 + 0x10], r11d
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0xb0], xmm15
movabs rcx, 0xffffffffffffff8
and rcx, rdx
shl rcx, 4
cmp r9d, 1
je 0x14000a93f
mov r11d, dword [r10 + 0x10]
movdqa xmmword [rsp + 0x10], xmm1
movss xmm1, dword [r10]
movsd xmm15, qword [r10 + 4]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
movdqa xmmword [rsp], xmm2
movd xmm2, esi
shufps xmm2, xmm15, 0xd4
unpcklps xmm15, xmm1
shufps xmm15, xmm2, 0x21
inc r11d
mov dword [r10 + 0x10], r11d
xorps xmm15, xmm0
aesenc xmm15, xmm12
aesenc xmm15, xmm11
aesenc xmm15, xmm10
aesenc xmm15, xmm9
aesenc xmm15, xmm8
aesenc xmm15, xmm7
aesenc xmm15, xmm6
aesenc xmm15, xmm5
aesenc xmm15, xmm4
aesenc xmm15, xmm3
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmmword [rsp + 0x10]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0xc0], xmm15
cmp r9d, 2
je 0x14000a93f
mov r11d, dword [r10 + 0x10]
movss xmm1, dword [r10]
movsd xmm15, qword [r10 + 4]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
movd xmm2, esi
shufps xmm2, xmm15, 0xd4
unpcklps xmm15, xmm1
shufps xmm15, xmm2, 0x21
inc r11d
mov dword [r10 + 0x10], r11d
xorps xmm15, xmm0
aesenc xmm15, xmm12
aesenc xmm15, xmm11
aesenc xmm15, xmm10
aesenc xmm15, xmm9
aesenc xmm15, xmm8
aesenc xmm15, xmm7
aesenc xmm15, xmm6
aesenc xmm15, xmm5
aesenc xmm15, xmm4
aesenc xmm15, xmm3
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmmword [rsp + 0x10]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0xd0], xmm15
cmp r9d, 3
je 0x14000a93f
mov r11d, dword [r10 + 0x10]
movss xmm1, dword [r10]
movsd xmm15, qword [r10 + 4]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
movd xmm2, esi
shufps xmm2, xmm15, 0xd4
unpcklps xmm15, xmm1
shufps xmm15, xmm2, 0x21
inc r11d
mov dword [r10 + 0x10], r11d
xorps xmm15, xmm0
aesenc xmm15, xmm12
aesenc xmm15, xmm11
aesenc xmm15, xmm10
aesenc xmm15, xmm9
aesenc xmm15, xmm8
aesenc xmm15, xmm7
aesenc xmm15, xmm6
aesenc xmm15, xmm5
aesenc xmm15, xmm4
aesenc xmm15, xmm3
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmmword [rsp + 0x10]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0xe0], xmm15
cmp r9d, 4
je 0x14000a93f
mov r11d, dword [r10 + 0x10]
movss xmm1, dword [r10]
movsd xmm15, qword [r10 + 4]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
movd xmm2, esi
shufps xmm2, xmm15, 0xd4
unpcklps xmm15, xmm1
shufps xmm15, xmm2, 0x21
inc r11d
mov dword [r10 + 0x10], r11d
xorps xmm15, xmm0
aesenc xmm15, xmm12
aesenc xmm15, xmm11
aesenc xmm15, xmm10
aesenc xmm15, xmm9
aesenc xmm15, xmm8
aesenc xmm15, xmm7
aesenc xmm15, xmm6
aesenc xmm15, xmm5
aesenc xmm15, xmm4
aesenc xmm15, xmm3
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmmword [rsp + 0x10]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0xf0], xmm15
cmp r9d, 5
je 0x14000a93f
mov r11d, dword [r10 + 0x10]
movss xmm1, dword [r10]
movsd xmm15, qword [r10 + 4]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
movd xmm2, esi
shufps xmm2, xmm15, 0xd4
unpcklps xmm15, xmm1
movdqa xmm1, xmmword [rsp + 0x10]
shufps xmm15, xmm2, 0x21
movdqa xmm2, xmmword [rsp]
inc r11d
mov dword [r10 + 0x10], r11d
xorps xmm15, xmm0
aesenc xmm15, xmm12
aesenc xmm15, xmm11
aesenc xmm15, xmm10
aesenc xmm15, xmm9
aesenc xmm15, xmm8
aesenc xmm15, xmm7
aesenc xmm15, xmm6
aesenc xmm15, xmm5
aesenc xmm15, xmm4
aesenc xmm15, xmm3
aesenc xmm15, xmm2
aesenc xmm15, xmm1
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0x100], xmm15
cmp r9d, 6
je 0x14000a93f
mov r11d, dword [r10 + 0x10]
movsd xmm1, qword [r10 + 4]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
movd xmm2, esi
shufps xmm2, xmm1, 0xd4
movss xmm15, dword [r10]
unpcklps xmm1, xmm15
shufps xmm1, xmm2, 0x21
xorps xmm0, xmm1
aesenc xmm0, xmm12
aesenc xmm0, xmm11
aesenc xmm0, xmm10
aesenc xmm0, xmm9
aesenc xmm0, xmm8
aesenc xmm0, xmm7
aesenc xmm0, xmm6
aesenc xmm0, xmm5
aesenc xmm0, xmm4
aesenc xmm0, xmm3
aesenc xmm0, xmmword [rsp]
aesenc xmm0, xmmword [rsp + 0x10]
aesenc xmm0, xmm13
aesenclast xmm0, xmm14
inc r11d
mov dword [r10 + 0x10], r11d
movdqa xmmword [rsp + 0x110], xmm0
add r8, rcx
add rax, rcx
and edx, 1
cmp r9d, 1
jne 0x14000a952
xor ecx, ecx
jmp 0x14000a995
sub r9, rdx
mov r10d, 0x10
xor ecx, ecx
nop dword [rax]
movups xmm0, xmmword [r8 + r10 - 0x10]
xorps xmm0, xmmword [rsp + r10 + 0xa0]
movups xmmword [rax + r10 - 0x10], xmm0
movups xmm0, xmmword [r8 + r10]
xorps xmm0, xmmword [rsp + r10 + 0xb0]
add rcx, 2
movups xmmword [rax + r10], xmm0
add r10, 0x20
cmp r9, rcx
jne 0x14000a960
test rdx, rdx
je 0x14000a9b2
shl rcx, 4
movdqu xmm0, xmmword [r8 + rcx]
pxor xmm0, xmmword [rsp + rcx + 0xb0]
movdqu xmmword [rax + rcx], xmm0
movaps xmm6, xmmword [rsp + 0x180]
movaps xmm7, xmmword [rsp + 0x190]
movaps xmm8, xmmword [rsp + 0x1a0]
movaps xmm9, xmmword [rsp + 0x1b0]
movaps xmm10, xmmword [rsp + 0x1c0]
movaps xmm11, xmmword [rsp + 0x1d0]
movaps xmm12, xmmword [rsp + 0x1e0]
movaps xmm13, xmmword [rsp + 0x1f0]
movaps xmm14, xmmword [rsp + 0x200]
movaps xmm15, xmmword [rsp + 0x210]
add rsp, 0x228
pop rbx
pop rbp
pop rdi
pop rsi
ret