Function at 0x140011090
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, 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 r8, qword [rdx + 8]
mov r9, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
mov eax, edx
and eax, 7
cmp rdx, 8
jb 0x140011962
mov r11, rdx
shr r11, 3
movaps xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x110], xmm0
movaps xmm0, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x260], xmm0
movaps xmm0, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x250], xmm0
movaps xmm0, xmmword [rcx + 0x30]
movaps xmmword [rsp + 0x240], xmm0
movaps xmm0, xmmword [rcx + 0x40]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rcx + 0x50]
movaps xmmword [rsp + 0x230], xmm0
movaps xmm0, xmmword [rcx + 0x60]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [rcx + 0x70]
movaps xmmword [rsp], xmm0
movaps xmm0, xmmword [rcx + 0x80]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmm0, xmmword [rcx + 0x90]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm0, xmmword [rcx + 0xa0]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [rcx + 0xb0]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rcx + 0xc0]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmm0, xmmword [rcx + 0xd0]
movaps xmmword [rsp + 0xe0], xmm0
movdqa xmm0, xmmword [rcx + 0xe0]
movdqa xmmword [rsp + 0x220], xmm0
mov esi, 1
mov rdi, r9
mov rbx, r8
nop dword [rax + rax]
mov r15d, dword [r10 + 0xc]
mov r14d, dword [r10 + 0x10]
lea ebp, [r14 + r15]
bswap ebp
movsd xmm15, qword [r10]
movd xmm7, dword [r10 + 8]
movd xmm0, ebp
punpcklqdq xmm0, xmm7
movaps xmm4, xmm15
shufps xmm4, xmm0, 0x24
lea ebp, [r14 + r15 + 1]
bswap ebp
movd xmm0, ebp
punpcklqdq xmm0, xmm7
movaps xmm5, xmm15
shufps xmm5, xmm0, 0x24
lea ebp, [r14 + r15 + 2]
bswap ebp
movd xmm0, ebp
punpcklqdq xmm0, xmm7
movaps xmm6, xmm15
shufps xmm6, xmm0, 0x24
lea ebp, [r14 + r15 + 3]
bswap ebp
movd xmm1, ebp
punpcklqdq xmm1, xmm7
movaps xmm11, xmm15
shufps xmm11, xmm1, 0x24
lea ebp, [r14 + r15 + 4]
bswap ebp
movd xmm2, ebp
punpcklqdq xmm2, xmm7
movaps xmm10, xmm15
shufps xmm10, xmm2, 0x24
lea ebp, [r14 + r15 + 5]
bswap ebp
movd xmm3, ebp
punpcklqdq xmm3, xmm7
movaps xmm9, xmm15
shufps xmm9, xmm3, 0x24
lea ebp, [r14 + r15 + 6]
bswap ebp
movd xmm8, ebp
punpcklqdq xmm8, xmm7
movaps xmm3, xmm15
shufps xmm3, xmm8, 0x24
lea ebp, [r14 + r15 + 7]
bswap ebp
movd xmm8, ebp
punpcklqdq xmm8, xmm7
shufps xmm15, xmm8, 0x24
add r14d, 8
mov dword [r10 + 0x10], r14d
xorps xmm4, xmmword [rsp + 0x110]
movdqa xmm8, xmmword [rsp + 0x260]
aesenc xmm4, xmm8
movdqa xmm12, xmmword [rsp + 0x250]
aesenc xmm4, xmm12
movdqa xmm13, xmmword [rsp + 0x240]
aesenc xmm4, xmm13
aesenc xmm4, xmmword [rsp + 0x100]
movdqa xmm14, xmmword [rsp + 0x230]
aesenc xmm4, xmm14
movdqa xmm1, xmmword [rsp + 0xd0]
aesenc xmm4, xmm1
movdqa xmm1, xmmword [rsp]
aesenc xmm4, xmm1
aesenc xmm4, xmmword [rsp + 0xa0]
aesenc xmm4, xmmword [rsp + 0x90]
aesenc xmm4, xmmword [rsp + 0xc0]
movdqa xmm2, xmmword [rsp + 0xf0]
aesenc xmm4, xmm2
aesenc xmm4, xmmword [rsp + 0xb0]
aesenc xmm4, xmmword [rsp + 0xe0]
movdqa xmm7, xmmword [rsp + 0x220]
aesenclast xmm4, xmm7
movdqa xmmword [rsp + 0x120], xmm4
movaps xmm4, xmmword [rsp + 0x110]
xorps xmm5, xmm4
aesenc xmm5, xmm8
aesenc xmm5, xmm12
aesenc xmm5, xmm13
movdqa xmm0, xmmword [rsp + 0x100]
aesenc xmm5, xmm0
aesenc xmm5, xmm14
aesenc xmm5, xmmword [rsp + 0xd0]
aesenc xmm5, xmmword [rsp]
aesenc xmm5, xmmword [rsp + 0xa0]
aesenc xmm5, xmmword [rsp + 0x90]
movdqa xmm1, xmmword [rsp + 0xc0]
aesenc xmm5, xmm1
aesenc xmm5, xmm2
movdqa xmm2, xmmword [rsp + 0xb0]
aesenc xmm5, xmm2
aesenc xmm5, xmmword [rsp + 0xe0]
aesenclast xmm5, xmm7
movdqa xmmword [rsp + 0x130], xmm5
xorps xmm6, xmm4
movdqa xmm5, xmm8
aesenc xmm6, xmm8
movdqa xmm8, xmm12
aesenc xmm6, xmm12
movdqa xmm12, xmm13
aesenc xmm6, xmm13
aesenc xmm6, xmm0
movdqa xmm13, xmm14
aesenc xmm6, xmm14
movdqa xmm14, xmmword [rsp + 0xd0]
aesenc xmm6, xmm14
aesenc xmm6, xmmword [rsp]
aesenc xmm6, xmmword [rsp + 0xa0]
aesenc xmm6, xmmword [rsp + 0x90]
aesenc xmm6, xmm1
movdqa xmm1, xmmword [rsp + 0xf0]
aesenc xmm6, xmm1
aesenc xmm6, xmm2
movdqa xmm2, xmmword [rsp + 0xe0]
aesenc xmm6, xmm2
aesenclast xmm6, xmm7
movdqa xmmword [rsp + 0x140], xmm6
xorps xmm11, xmm4
xorps xmm10, xmm4
xorps xmm9, xmm4
xorps xmm3, xmm4
xorps xmm15, xmm4
movdqa xmm4, xmm5
aesenc xmm11, xmm5
aesenc xmm10, xmm5
aesenc xmm9, xmm5
aesenc xmm3, xmm5
aesenc xmm15, xmm5
movdqa xmm4, xmm8
aesenc xmm11, xmm8
aesenc xmm10, xmm8
aesenc xmm9, xmm8
aesenc xmm3, xmm8
aesenc xmm15, xmm8
aesenc xmm11, xmm12
aesenc xmm10, xmm12
aesenc xmm9, xmm12
aesenc xmm3, xmm12
aesenc xmm15, xmm12
aesenc xmm11, xmm0
aesenc xmm10, xmm0
aesenc xmm9, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
aesenc xmm11, xmm13
aesenc xmm10, xmm13
aesenc xmm9, xmm13
aesenc xmm3, xmm13
aesenc xmm15, xmm13
aesenc xmm11, xmm14
aesenc xmm10, xmm14
aesenc xmm9, xmm14
aesenc xmm3, xmm14
aesenc xmm15, xmm14
movdqa xmm0, xmmword [rsp]
aesenc xmm11, xmm0
aesenc xmm10, xmm0
aesenc xmm9, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmmword [rsp + 0xa0]
aesenc xmm11, xmm0
aesenc xmm10, xmm0
aesenc xmm9, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmmword [rsp + 0x90]
aesenc xmm11, xmm0
aesenc xmm10, xmm0
aesenc xmm9, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmmword [rsp + 0xc0]
aesenc xmm11, xmm0
aesenc xmm10, xmm0
aesenc xmm9, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmm1
aesenc xmm11, xmm1
aesenc xmm10, xmm1
aesenc xmm9, xmm1
aesenc xmm3, xmm1
aesenc xmm15, xmm1
movdqa xmm0, xmmword [rsp + 0xb0]
aesenc xmm11, xmm0
aesenc xmm10, xmm0
aesenc xmm9, xmm0
aesenc xmm3, xmm0
aesenc xmm15, xmm0
movdqa xmm0, xmm2
aesenc xmm11, xmm2
aesenc xmm10, xmm2
aesenc xmm9, xmm2
aesenc xmm3, xmm2
aesenc xmm15, xmm2
aesenclast xmm11, xmm7
aesenclast xmm10, xmm7
aesenclast xmm9, xmm7
aesenclast xmm3, xmm7
movdqa xmmword [rsp + 0x150], xmm11
aesenclast xmm15, xmm7
movdqa xmmword [rsp + 0x160], xmm10
movdqa xmmword [rsp + 0x170], xmm9
movdqa xmmword [rsp + 0x180], xmm3
movdqa xmmword [rsp + 0x190], xmm15
movups xmm0, xmmword [rbx + 0x70]
movaps xmmword [rsp + 0x210], xmm0
movups xmm0, xmmword [rbx + 0x60]
movaps xmmword [rsp + 0x200], xmm0
movups xmm0, xmmword [rbx + 0x50]
movaps xmmword [rsp + 0x1f0], xmm0
movups xmm0, xmmword [rbx + 0x40]
movaps xmmword [rsp + 0x1e0], xmm0
movdqu xmm0, xmmword [rbx]
movdqu xmm1, xmmword [rbx + 0x10]
movdqu xmm2, xmmword [rbx + 0x20]
movdqu xmm3, xmmword [rbx + 0x30]
movdqa xmmword [rsp + 0x1d0], xmm3
movdqa xmmword [rsp + 0x1c0], xmm2
movdqa xmmword [rsp + 0x1b0], xmm1
movdqa xmmword [rsp + 0x1a0], xmm0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x40], xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
movdqa xmmword [rsp + 0x10], xmm0
mov ebx, 0xf
nop word cs:[rax + rax]
movzx ebp, byte [rsp + rbx + 0x111]
movzx r14d, byte [rsp + rbx + 0x112]
xor bpl, byte [rsp + rbx + 0x191]
xor r14b, byte [rsp + rbx + 0x192]
mov byte [rsp + rbx + 1], bpl
movzx ebp, byte [rsp + rbx + 0x113]
xor bpl, byte [rsp + rbx + 0x193]
mov byte [rsp + rbx + 2], r14b
movzx r14d, byte [rsp + rbx + 0x114]
xor r14b, byte [rsp + rbx + 0x194]
mov byte [rsp + rbx + 3], bpl
movzx ebp, byte [rsp + rbx + 0x115]
xor bpl, byte [rsp + rbx + 0x195]
mov byte [rsp + rbx + 4], r14b
movzx r14d, byte [rsp + rbx + 0x116]
xor r14b, byte [rsp + rbx + 0x196]
mov byte [rsp + rbx + 5], bpl
mov byte [rsp + rbx + 6], r14b
movzx ebp, byte [rsp + rbx + 0x117]
movzx r14d, byte [rsp + rbx + 0x118]
xor bpl, byte [rsp + rbx + 0x197]
xor r14b, byte [rsp + rbx + 0x198]
mov byte [rsp + rbx + 7], bpl
movzx ebp, byte [rsp + rbx + 0x119]
xor bpl, byte [rsp + rbx + 0x199]
mov byte [rsp + rbx + 8], r14b
movzx r14d, byte [rsp + rbx + 0x11a]
xor r14b, byte [rsp + rbx + 0x19a]
mov byte [rsp + rbx + 9], bpl
movzx ebp, byte [rsp + rbx + 0x11b]
xor bpl, byte [rsp + rbx + 0x19b]
mov byte [rsp + rbx + 0xa], r14b
movzx r14d, byte [rsp + rbx + 0x11c]
xor r14b, byte [rsp + rbx + 0x19c]
mov byte [rsp + rbx + 0xb], bpl
mov byte [rsp + rbx + 0xc], r14b
movzx ebp, byte [rsp + rbx + 0x11d]
movzx r14d, byte [rsp + rbx + 0x11e]
xor bpl, byte [rsp + rbx + 0x19d]
xor r14b, byte [rsp + rbx + 0x19e]
mov byte [rsp + rbx + 0xd], bpl
movzx ebp, byte [rsp + rbx + 0x11f]
xor bpl, byte [rsp + rbx + 0x19f]
mov byte [rsp + rbx + 0xe], r14b
movzx r14d, byte [rsp + rbx + 0x120]
xor r14b, byte [rsp + rbx + 0x1a0]
mov byte [rsp + rbx + 0xf], bpl
mov byte [rsp + rbx + 0x10], r14b
add rbx, 0x10
cmp rbx, 0x8f
jne 0x140011780
xor r14d, r14d
cmp r11, rsi
setne r14b
movaps xmm0, xmmword [rsp + 0x80]
movups xmmword [rdi + 0x70], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [rdi + 0x50], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movups xmmword [rdi + 0x40], xmm0
movdqa xmm0, xmmword [rsp + 0x10]
movdqa xmm1, xmmword [rsp + 0x20]
movdqa xmm2, xmmword [rsp + 0x30]
movdqa xmm3, xmmword [rsp + 0x40]
movdqu xmmword [rdi + 0x30], xmm3
movdqu xmmword [rdi + 0x20], xmm2
movdqu xmmword [rdi + 0x10], xmm1
movdqu xmmword [rdi], xmm0
mov rdi, rsi
shl rdi, 7
lea rbx, [r8 + rdi]
add rdi, r9
add r14, rsi
cmp r11, rsi
mov rsi, r14
jne 0x140011200
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmmword [rsp + 0x40], xmm0
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x20], xmm0
movdqa xmmword [rsp + 0x10], xmm0
test rax, rax
je 0x140011c37
movdqa xmm0, xmmword [rcx]
movdqa xmmword [rsp], xmm0
movdqa xmm1, xmmword [rcx + 0x10]
movdqa xmm2, xmmword [rcx + 0x20]
movdqa xmm3, xmmword [rcx + 0x30]
movdqa xmm4, xmmword [rcx + 0x40]
movdqa xmm5, xmmword [rcx + 0x50]
movdqa xmm6, xmmword [rcx + 0x60]
movdqa xmm7, xmmword [rcx + 0x70]
movdqa xmm8, xmmword [rcx + 0x80]
movdqa xmm9, xmmword [rcx + 0x90]
movdqa xmm10, xmmword [rcx + 0xa0]
movdqa xmm11, xmmword [rcx + 0xb0]
movdqa xmm12, xmmword [rcx + 0xc0]
movdqa xmm13, xmmword [rcx + 0xd0]
movdqa xmm14, xmmword [rcx + 0xe0]
shl rax, 4
xor ecx, ecx
nop word cs:[rax + rax]
mov r11d, dword [r10 + 0x10]
mov esi, dword [r10 + 0xc]
add esi, r11d
bswap esi
inc r11d
mov dword [r10 + 0x10], r11d
movd xmm0, dword [r10 + 8]
movd xmm15, esi
punpckldq xmm0, xmm15
movq xmm15, qword [r10]
punpcklqdq xmm15, xmm0
pxor xmm15, xmmword [rsp]
aesenc xmm15, xmm1
aesenc xmm15, xmm2
aesenc xmm15, xmm3
aesenc xmm15, xmm4
aesenc xmm15, xmm5
aesenc xmm15, xmm6
aesenc xmm15, xmm7
aesenc xmm15, xmm8
aesenc xmm15, xmm9
aesenc xmm15, xmm10
aesenc xmm15, xmm11
aesenc xmm15, xmm12
aesenc xmm15, xmm13
aesenclast xmm15, xmm14
movdqu xmmword [rsp + rcx + 0x10], xmm15
add rcx, 0x10
cmp rax, rcx
jne 0x140011a20
shl rdx, 4
and rdx, 0xffffffffffffff80
lea rcx, [r9 + rdx]
add rcx, 0xf
add rdx, r8
add rdx, 0xf
xor r8d, r8d
mov qword [rsp + 0xb0], rax
nop
movzx eax, byte [rsp + r8 + 0x10]
movzx r9d, byte [rsp + r8 + 0x11]
xor al, byte [rdx + r8 - 0xf]
mov byte [rsp], al
xor r9b, byte [rdx + r8 - 0xe]
mov byte [rsp + 0xa0], r9b
movzx eax, byte [rsp + r8 + 0x12]
xor al, byte [rdx + r8 - 0xd]
mov byte [rsp + 0x90], al
movzx eax, byte [rsp + r8 + 0x13]
xor al, byte [rdx + r8 - 0xc]
mov byte [rsp + 0xd0], al
movzx eax, byte [rsp + r8 + 0x14]
xor al, byte [rdx + r8 - 0xb]
mov byte [rsp + 0xc0], al
movzx edi, byte [rsp + r8 + 0x15]
xor dil, byte [rdx + r8 - 0xa]
movzx ebp, byte [rsp + r8 + 0x16]
xor bpl, byte [rdx + r8 - 9]
movzx r14d, byte [rsp + r8 + 0x17]
xor r14b, byte [rdx + r8 - 8]
movzx r15d, byte [rsp + r8 + 0x18]
xor r15b, byte [rdx + r8 - 7]
movzx r12d, byte [rsp + r8 + 0x19]
xor r12b, byte [rdx + r8 - 6]
movzx r13d, byte [rsp + r8 + 0x1a]
xor r13b, byte [rdx + r8 - 5]
movzx ebx, byte [rsp + r8 + 0x1b]
xor bl, byte [rdx + r8 - 4]
movzx r11d, byte [rsp + r8 + 0x1c]
xor r11b, byte [rdx + r8 - 3]
movzx r10d, byte [rsp + r8 + 0x1d]
xor r10b, byte [rdx + r8 - 2]
movzx r9d, byte [rsp + r8 + 0x1e]
xor r9b, byte [rdx + r8 - 1]
movzx eax, byte [rsp + r8 + 0x1f]
xor al, byte [rdx + r8]
movzx esi, byte [rsp]
mov byte [rcx + r8 - 0xf], sil
movzx esi, byte [rsp + 0xa0]
mov byte [rcx + r8 - 0xe], sil
movzx esi, byte [rsp + 0x90]
mov byte [rcx + r8 - 0xd], sil
movzx esi, byte [rsp + 0xd0]
mov byte [rcx + r8 - 0xc], sil
movzx esi, byte [rsp + 0xc0]
mov byte [rcx + r8 - 0xb], sil
mov byte [rcx + r8 - 0xa], dil
mov byte [rcx + r8 - 9], bpl
mov byte [rcx + r8 - 8], r14b
mov byte [rcx + r8 - 7], r15b
mov byte [rcx + r8 - 6], r12b
mov byte [rcx + r8 - 5], r13b
mov byte [rcx + r8 - 4], bl
mov byte [rcx + r8 - 3], r11b
mov byte [rcx + r8 - 2], r10b
mov byte [rcx + r8 - 1], r9b
mov byte [rcx + r8], al
mov rax, qword [rsp + 0xb0]
add r8, 0x10
cmp rax, r8
jne 0x140011ae0
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 r12
pop r13
pop r14
pop r15
ret