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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x318
movdqa xmmword [rsp + 0x300], xmm15
movdqa xmmword [rsp + 0x2f0], xmm14
movdqa xmmword [rsp + 0x2e0], xmm13
movdqa xmmword [rsp + 0x2d0], xmm12
movdqa xmmword [rsp + 0x2c0], xmm11
movdqa xmmword [rsp + 0x2b0], xmm10
movdqa xmmword [rsp + 0x2a0], xmm9
movdqa xmmword [rsp + 0x290], xmm8
movdqa xmmword [rsp + 0x280], xmm7
movdqa xmmword [rsp + 0x270], xmm6
mov r10, qword [rdx]
mov rax, qword [rdx + 8]
mov r8, qword [rdx + 0x10]
mov r9, qword [rdx + 0x18]
mov edx, r9d
and edx, 7
cmp r9, 8
jb 0x14027ec2a
mov r11, r9
shr r11, 3
movaps xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x10], xmm0
movaps xmm0, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x160], xmm0
movaps xmm0, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x150], xmm0
movaps xmm0, xmmword [rcx + 0x30]
movaps xmmword [rsp + 0x110], xmm0
movaps xmm0, xmmword [rcx + 0x40]
movaps xmmword [rsp + 0x140], xmm0
movaps xmm0, xmmword [rcx + 0x50]
movaps xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [rcx + 0x60]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rcx + 0x70]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rcx + 0x80]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rcx + 0x90]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [rcx + 0xa0]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [rcx + 0xb0]
movaps xmmword [rsp], xmm0
movaps xmm0, xmmword [rcx + 0xc0]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmm0, xmmword [rcx + 0xd0]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rcx + 0xe0]
movaps xmmword [rsp + 0x120], xmm0
mov esi, 1
mov rdi, r8
mov rbx, rax
nop word cs:[rax + rax]
movsd xmm15, qword [r10 + 4]
mov r15d, dword [r10 + 0xc]
mov r14d, dword [r10 + 0x10]
lea ebp, [r14 + r15]
bswap ebp
movss xmm0, dword [r10]
movd xmm1, ebp
shufps xmm1, xmm15, 0xd4
lea ebp, [r14 + r15 + 1]
bswap ebp
movd xmm2, ebp
shufps xmm2, xmm15, 0xd4
lea ebp, [r14 + r15 + 2]
bswap ebp
movd xmm3, ebp
shufps xmm3, xmm15, 0xd4
lea ebp, [r14 + r15 + 3]
bswap ebp
movd xmm7, ebp
shufps xmm7, xmm15, 0xd4
lea ebp, [r14 + r15 + 4]
bswap ebp
movd xmm12, ebp
shufps xmm12, xmm15, 0xd4
lea ebp, [r14 + r15 + 5]
bswap ebp
movd xmm13, ebp
shufps xmm13, xmm15, 0xd4
lea ebp, [r14 + r15 + 6]
bswap ebp
movd xmm10, ebp
shufps xmm10, xmm15, 0xd4
lea ebp, [r14 + r15 + 7]
bswap ebp
movd xmm11, ebp
shufps xmm11, xmm15, 0xd4
unpcklps xmm15, xmm0
movaps xmm6, xmm15
shufps xmm6, xmm1, 0x21
movaps xmm5, xmm15
shufps xmm5, xmm2, 0x21
movaps xmm4, xmm15
shufps xmm4, xmm3, 0x21
movaps xmm8, xmm15
shufps xmm8, xmm7, 0x21
movaps xmm9, xmm15
shufps xmm9, xmm12, 0x21
movaps xmm2, xmm15
shufps xmm2, xmm13, 0x21
movaps xmm3, xmm15
shufps xmm3, xmm10, 0x21
shufps xmm15, xmm11, 0x21
add r14d, 8
mov dword [r10 + 0x10], r14d
xorps xmm6, xmmword [rsp + 0x10]
movdqa xmm11, xmmword [rsp + 0x160]
aesenc xmm6, xmm11
movdqa xmm12, xmmword [rsp + 0x150]
aesenc xmm6, xmm12
aesenc xmm6, xmmword [rsp + 0x110]
movdqa xmm13, xmmword [rsp + 0x140]
aesenc xmm6, xmm13
movdqa xmm14, xmmword [rsp + 0x130]
aesenc xmm6, xmm14
movdqa xmm1, xmmword [rsp + 0x100]
aesenc xmm6, xmm1
aesenc xmm6, xmmword [rsp + 0xf0]
movdqa xmm7, xmmword [rsp + 0xe0]
aesenc xmm6, xmm7
aesenc xmm6, xmmword [rsp + 0xd0]
aesenc xmm6, xmmword [rsp + 0xc0]
aesenc xmm6, xmmword [rsp]
aesenc xmm6, xmmword [rsp + 0xb0]
aesenc xmm6, xmmword [rsp + 0xa0]
movdqa xmm10, xmmword [rsp + 0x120]
aesenclast xmm6, xmm10
movdqa xmmword [rsp + 0x170], xmm6
movaps xmm6, xmmword [rsp + 0x10]
xorps xmm5, xmm6
aesenc xmm5, xmm11
aesenc xmm5, xmm12
movdqa xmm0, xmmword [rsp + 0x110]
aesenc xmm5, xmm0
aesenc xmm5, xmm13
aesenc xmm5, xmm14
aesenc xmm5, xmmword [rsp + 0x100]
aesenc xmm5, xmmword [rsp + 0xf0]
aesenc xmm5, xmm7
movdqa xmm1, xmmword [rsp + 0xd0]
aesenc xmm5, xmm1
aesenc xmm5, xmmword [rsp + 0xc0]
aesenc xmm5, xmmword [rsp]
movdqa xmm7, xmmword [rsp + 0xb0]
aesenc xmm5, xmm7
aesenc xmm5, xmmword [rsp + 0xa0]
aesenclast xmm5, xmm10
movdqa xmmword [rsp + 0x180], xmm5
xorps xmm4, xmm6
movdqa xmm6, xmm11
aesenc xmm4, xmm11
movdqa xmm5, xmm12
aesenc xmm4, xmm12
aesenc xmm4, xmm0
movdqa xmm11, xmm13
aesenc xmm4, xmm13
movdqa xmm12, xmm14
aesenc xmm4, xmm14
movdqa xmm13, xmmword [rsp + 0x100]
aesenc xmm4, xmm13
movdqa xmm14, xmmword [rsp + 0xf0]
aesenc xmm4, xmm14
aesenc xmm4, xmmword [rsp + 0xe0]
aesenc xmm4, xmm1
movdqa xmm1, xmmword [rsp + 0xc0]
aesenc xmm4, xmm1
aesenc xmm4, xmmword [rsp]
aesenc xmm4, xmm7
movdqa xmm7, xmmword [rsp + 0xa0]
aesenc xmm4, xmm7
aesenclast xmm4, xmm10
movdqa xmmword [rsp + 0x190], xmm4
movaps xmm4, xmmword [rsp + 0x10]
xorps xmm8, xmm4
xorps xmm9, xmm4
xorps xmm2, xmm4
xorps xmm3, xmm4
xorps xmm15, xmm4
movdqa xmm4, xmm6
aesenc xmm8, xmm6
aesenc xmm9, xmm6
aesenc xmm2, xmm6
aesenc xmm3, xmm6
aesenc xmm15, xmm6
aesenc xmm8, xmm5
aesenc xmm9, xmm5
aesenc xmm2, xmm5
aesenc xmm3, xmm5
aesenc xmm15, xmm5
movdqa xmm4, xmmword [rsp + 0x110]
aesenc xmm8, xmm4
aesenc xmm9, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
aesenc xmm15, xmm4
aesenc xmm8, xmm11
aesenc xmm9, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm15, xmm11
aesenc xmm8, xmm12
aesenc xmm9, xmm12
aesenc xmm2, xmm12
aesenc xmm3, xmm12
aesenc xmm15, xmm12
aesenc xmm8, xmm13
aesenc xmm9, xmm13
aesenc xmm2, xmm13
aesenc xmm3, xmm13
aesenc xmm15, xmm13
aesenc xmm8, xmm14
aesenc xmm9, xmm14
aesenc xmm2, xmm14
aesenc xmm3, xmm14
aesenc xmm15, xmm14
movdqa xmm0, xmmword [rsp + 0xe0]
aesenc xmm8, xmm0
aesenc xmm9, xmm0
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmmword [rsp + 0xd0]
aesenc xmm8, xmm0
aesenc xmm9, xmm0
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm15, xmm1
movdqa xmm0, xmmword [rsp]
aesenc xmm8, xmm0
aesenc xmm9, xmm0
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmmword [rsp + 0xb0]
aesenc xmm8, xmm0
aesenc xmm9, xmm0
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmm7
aesenc xmm8, xmm7
aesenc xmm9, xmm7
aesenc xmm2, xmm7
aesenc xmm3, xmm7
aesenc xmm15, xmm7
aesenclast xmm8, xmm10
aesenclast xmm9, xmm10
aesenclast xmm2, xmm10
aesenclast xmm3, xmm10
movdqa xmmword [rsp + 0x1a0], xmm8
aesenclast xmm15, xmm10
movdqa xmmword [rsp + 0x1b0], xmm9
movdqa xmmword [rsp + 0x1c0], xmm2
movdqa xmmword [rsp + 0x1d0], xmm3
movdqa xmmword [rsp + 0x1e0], xmm15
movups xmm0, xmmword [rbx + 0x70]
movaps xmmword [rsp + 0x260], xmm0
movups xmm0, xmmword [rbx + 0x60]
movaps xmmword [rsp + 0x250], xmm0
movups xmm0, xmmword [rbx + 0x50]
movaps xmmword [rsp + 0x240], xmm0
movups xmm0, xmmword [rbx + 0x40]
movaps xmmword [rsp + 0x230], xmm0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movdqu xmm2, xmmword [rbx + 0x20]
movdqu xmm3, xmmword [rbx + 0x30]
movdqa xmmword [rsp + 0x220], xmm3
movdqa xmmword [rsp + 0x210], xmm2
movaps xmmword [rsp + 0x200], xmm1
movaps xmmword [rsp + 0x1f0], xmm0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
xor ebx, ebx
nop dword [rax + rax]
movups xmm0, xmmword [rsp + rbx + 0x1f0]
xorps xmm0, xmmword [rsp + rbx + 0x170]
movups xmmword [rsp + rbx + 0x20], xmm0
add rbx, 0x10
cmp rbx, 0x80
jne 0x14027eb90
xor r14d, r14d
cmp r11, rsi
setne r14b
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rdi + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [rdi + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi + 0x50], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rdi + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movdqa xmm2, xmmword [rsp + 0x40]
movdqa xmm3, xmmword [rsp + 0x50]
movdqu xmmword [rdi + 0x30], xmm3
movdqu xmmword [rdi + 0x20], xmm2
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
mov rdi, rsi
shl rdi, 7
lea rbx, [rax + rdi]
add rdi, r8
add r14, rsi
cmp r11, rsi
mov rsi, r14
jne 0x14027e620
xorps xmm0, xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x20], xmm0
test rdx, rdx
je 0x14027f0c7
mov esi, dword [r10 + 0xc]
mov r11d, dword [r10 + 0x10]
movsd xmm1, qword [r10 + 4]
movss xmm0, dword [r10]
unpcklps xmm1, xmm0
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 xmm14, xmmword [rcx + 0xb0]
movdqa xmm2, xmmword [rcx + 0xc0]
lea edi, [r11 + rsi]
bswap edi
movd xmm13, edi
shufps xmm13, xmm1, 0xe4
movaps xmm15, xmm1
shufps xmm15, xmm13, 0x21
movdqa xmm13, xmmword [rcx + 0xd0]
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
movdqa xmmword [rsp + 0x10], xmm14
aesenc xmm15, xmm14
movdqa xmmword [rsp], xmm2
aesenc xmm15, xmm2
lea edi, [r11 + 1]
aesenc xmm15, xmm13
movdqa xmm14, xmmword [rcx + 0xe0]
mov dword [r10 + 0x10], edi
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0x20], xmm15
movabs rcx, 0xffffffffffffff8
and r9, rcx
shl r9, 4
cmp edx, 1
je 0x14027f0a8
pshufd xmm2, xmm1, 0xe1
add edi, esi
bswap edi
movd xmm1, edi
shufps xmm1, xmm2, 0xe4
movdqa xmm15, xmm2
shufps xmm15, xmm1, 0x24
lea ecx, [r11 + 2]
mov dword [r10 + 0x10], ecx
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 + 0x10]
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0x30], xmm15
cmp edx, 2
je 0x14027f0a8
add ecx, esi
bswap ecx
movd xmm1, ecx
shufps xmm1, xmm2, 0xe4
movdqa xmm15, xmm2
shufps xmm15, xmm1, 0x24
lea ecx, [r11 + 3]
mov dword [r10 + 0x10], ecx
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 + 0x10]
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0x40], xmm15
cmp edx, 3
je 0x14027f0a8
add ecx, esi
bswap ecx
movd xmm1, ecx
shufps xmm1, xmm2, 0xe4
movdqa xmm15, xmm2
shufps xmm15, xmm1, 0x24
lea ecx, [r11 + 4]
mov dword [r10 + 0x10], ecx
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 + 0x10]
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0x50], xmm15
cmp edx, 4
je 0x14027f0a8
add ecx, esi
bswap ecx
movd xmm1, ecx
shufps xmm1, xmm2, 0xe4
movdqa xmm15, xmm2
shufps xmm15, xmm1, 0x24
lea ecx, [r11 + 5]
mov dword [r10 + 0x10], ecx
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 + 0x10]
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0x60], xmm15
cmp edx, 5
je 0x14027f0a8
add ecx, esi
bswap ecx
movd xmm1, ecx
shufps xmm1, xmm2, 0xe4
movdqa xmm15, xmm2
shufps xmm15, xmm1, 0x24
lea ecx, [r11 + 6]
mov dword [r10 + 0x10], ecx
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 + 0x10]
aesenc xmm15, xmmword [rsp]
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqa xmmword [rsp + 0x70], xmm15
cmp edx, 6
je 0x14027f0a8
add ecx, esi
bswap ecx
movd xmm1, ecx
shufps xmm1, xmm2, 0xe4
shufps xmm2, xmm1, 0x24
xorps xmm0, xmm2
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 + 0x10]
aesenc xmm0, xmmword [rsp]
aesenc xmm0, xmm13
aesenclast xmm0, xmm14
add r11d, 7
mov dword [r10 + 0x10], r11d
movdqa xmmword [rsp + 0x80], xmm0
add rax, r9
add r8, r9
xor ecx, ecx
movups xmm0, xmmword [rax + rcx]
xorps xmm0, xmmword [rsp + rcx + 0x20]
movups xmmword [r8 + rcx], xmm0
add rcx, 0x10
dec rdx
jne 0x14027f0b0
movaps xmm6, xmmword [rsp + 0x270]
movaps xmm7, xmmword [rsp + 0x280]
movaps xmm8, xmmword [rsp + 0x290]
movaps xmm9, xmmword [rsp + 0x2a0]
movaps xmm10, xmmword [rsp + 0x2b0]
movaps xmm11, xmmword [rsp + 0x2c0]
movaps xmm12, xmmword [rsp + 0x2d0]
movaps xmm13, xmmword [rsp + 0x2e0]
movaps xmm14, xmmword [rsp + 0x2f0]
movaps xmm15, xmmword [rsp + 0x300]
add rsp, 0x318
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret