Function at 0x14007a610
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, 0x118
movaps xmmword [rsp + 0x100], xmm6
mov rsi, qword [rcx]
movzx eax, byte [section..data]
cmp al, 1
jne 0x14007a3ac
mov rcx, rsi
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x14007a610
mov rbp, qword [rdx]
mov r12, qword [rdx + 8]
mov r15, 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 0x14007a4d9
mov r14, qword [rsp + 0x20]
shr r14, 2
mov r13d, 0x30
lea rdi, [rsp + 0xc0]
lea rbx, [rsp + 0x30]
mov eax, dword [rbp + 0x10]
mov r9d, dword [rbp + 0xc]
mov ecx, dword [rbp]
mov edx, dword [rbp + 4]
mov r8d, dword [rbp + 8]
lea r10d, [r9 + rax]
bswap r10d
mov dword [rsp + 0x30], ecx
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x38], r8d
mov dword [rsp + 0x3c], r10d
lea r10d, [r9 + rax + 1]
bswap r10d
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x44], edx
mov dword [rsp + 0x48], r8d
mov dword [rsp + 0x4c], r10d
lea r10d, [r9 + rax + 2]
bswap r10d
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x54], edx
mov dword [rsp + 0x58], r8d
mov dword [rsp + 0x5c], r10d
add r9d, eax
add r9d, 3
bswap r9d
add eax, 4
mov dword [rbp + 0x10], eax
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x64], edx
mov dword [rsp + 0x68], r8d
mov dword [rsp + 0x6c], r9d
mov rcx, rdi
mov rdx, rsi
mov r8, rbx
call fcn.1400045e0
movups xmm0, xmmword [r12 + r13 - 0x30]
movups xmm1, xmmword [r12 + r13 - 0x20]
movups xmm2, xmmword [r12 + r13 - 0x10]
movups xmm3, xmmword [r12 + r13]
xorps xmm0, xmmword [rsp + 0xc0]
xorps xmm1, xmmword [rsp + 0xd0]
xorps xmm2, xmmword [rsp + 0xe0]
xorps xmm3, xmmword [rsp + 0xf0]
movups xmmword [r15 + r13 - 0x30], xmm0
movups xmmword [r15 + r13 - 0x20], xmm1
movups xmmword [r15 + r13 - 0x10], xmm2
movups xmmword [r15 + r13], xmm3
add r13, 0x40
dec r14
jne 0x14007a3f0
xorps xmm6, xmm6
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
mov rbx, qword [rsp + 0x28]
test rbx, rbx
je 0x14007a5f2
movabs rax, 0xffffffffffffffc
mov rcx, qword [rsp + 0x20]
and rcx, rax
shl rcx, 4
add r12, rcx
add r15, rcx
lea r13, [rsp + 0x40]
shl ebx, 4
xor r14d, r14d
lea rdi, [rsp + 0x30]
nop word cs:[rax + rax]
mov eax, dword [rbp + 0x10]
mov ecx, dword [rbp + 8]
mov edx, dword [rbp + 0xc]
add edx, eax
bswap edx
mov r8, qword [rbp]
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x78], ecx
mov dword [rsp + 0x7c], edx
inc eax
mov dword [rbp + 0x10], eax
mov rcx, rdi
lea rdx, [rsp + 0x70]
call fcn.1400766f0
movups xmmword [r13 + 0x20], xmm6
movups xmmword [r13 + 0x10], xmm6
movups xmmword [r13], xmm6
lea rcx, [rsp + 0xc0]
mov rdx, rsi
mov r8, rdi
call fcn.1400045e0
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + r14 + 0x80], xmm0
add r14, 0x10
cmp rbx, r14
jne 0x14007a540
movups xmm0, xmmword [r12]
xorps xmm0, xmmword [rsp + 0x80]
movups xmmword [r15], xmm0
mov rax, qword [rsp + 0x28]
cmp eax, 1
je 0x14007a5f2
movups xmm0, xmmword [r12 + 0x10]
xorps xmm0, xmmword [rsp + 0x90]
movups xmmword [r15 + 0x10], xmm0
cmp eax, 2
je 0x14007a5f2
movups xmm0, xmmword [r12 + 0x20]
xorps xmm0, xmmword [rsp + 0xa0]
movups xmmword [r15 + 0x20], xmm0
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
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, 0x1e8
movdqa xmmword [rsp + 0x1d0], xmm15
movdqa xmmword [rsp + 0x1c0], xmm14
movdqa xmmword [rsp + 0x1b0], xmm13
movdqa xmmword [rsp + 0x1a0], xmm12
movaps xmmword [rsp + 0x190], xmm11
movaps xmmword [rsp + 0x180], xmm10
movaps xmmword [rsp + 0x170], xmm9
movaps xmmword [rsp + 0x160], xmm8
movdqa xmmword [rsp + 0x150], xmm7
movdqa xmmword [rsp + 0x140], xmm6
mov r9, qword [rdx]
mov r8, qword [rdx + 8]
mov rax, qword [rdx + 0x10]
mov r10, qword [rdx + 0x18]
mov edx, r10d
and edx, 7
cmp r10, 8
jb 0x14007ab9d
mov r11, r10
shr r11, 3
movaps xmm0, xmmword [rcx]
movaps xmmword [rsp], xmm0
movaps xmm0, xmmword [rcx + 0x10]
movaps xmmword [rsp + 0x10], xmm0
movaps xmm0, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [rcx + 0x30]
movaps xmmword [rsp + 0x120], xmm0
movaps xmm0, xmmword [rcx + 0x40]
movaps xmmword [rsp + 0x110], xmm0
movaps xmm0, xmmword [rcx + 0x50]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rcx + 0x60]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rcx + 0x70]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rcx + 0x80]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [rcx + 0x90]
movaps xmmword [rsp + 0xc0], xmm0
movaps xmm0, xmmword [rcx + 0xa0]
movaps xmmword [rsp + 0xb0], xmm0
movdqa xmm0, xmmword [rcx + 0xb0]
movdqa xmmword [rsp + 0xa0], xmm0
movdqa xmm12, xmmword [rcx + 0xc0]
movdqa xmm13, xmmword [rcx + 0xd0]
movdqa xmm14, xmmword [rcx + 0xe0]
mov esi, 0x70
nop word cs:[rax + rax]
movsd xmm15, qword [r9 + 4]
mov ebx, dword [r9 + 0xc]
mov edi, dword [r9 + 0x10]
lea ebp, [rbx + rdi]
bswap ebp
movss xmm0, dword [r9]
movd xmm1, ebp
lea ebp, [rbx + rdi + 1]
shufps xmm1, xmm15, 0xd4
bswap ebp
movd xmm2, ebp
lea ebp, [rbx + rdi + 2]
shufps xmm2, xmm15, 0xd4
bswap ebp
movd xmm3, ebp
lea ebp, [rbx + rdi + 3]
shufps xmm3, xmm15, 0xd4
bswap ebp
movd xmm7, ebp
lea ebp, [rbx + rdi + 4]
shufps xmm7, xmm15, 0xd4
bswap ebp
movd xmm8, ebp
lea ebp, [rbx + rdi + 5]
shufps xmm8, xmm15, 0xd4
bswap ebp
movd xmm9, ebp
lea ebp, [rbx + rdi + 6]
shufps xmm9, xmm15, 0xd4
bswap ebp
movd xmm10, ebp
lea ebx, [rbx + rdi + 7]
shufps xmm10, xmm15, 0xd4
bswap ebx
movd xmm11, ebx
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 xmm3, xmm15
shufps xmm3, xmm7, 0x21
movaps xmm2, xmm15
shufps xmm2, xmm8, 0x21
movaps xmm1, xmm15
shufps xmm1, xmm9, 0x21
movaps xmm0, xmm15
shufps xmm0, xmm10, 0x21
add edi, 8
shufps xmm15, xmm11, 0x21
mov dword [r9 + 0x10], edi
movaps xmm7, xmmword [rsp]
xorps xmm6, xmm7
xorps xmm5, xmm7
xorps xmm4, xmm7
xorps xmm3, xmm7
xorps xmm2, xmm7
xorps xmm1, xmm7
xorps xmm0, xmm7
xorps xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0x10]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0x130]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0x120]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0x110]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0x100]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0xf0]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0xe0]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0xd0]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0xc0]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0xb0]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
movdqa xmm7, xmmword [rsp + 0xa0]
aesenc xmm6, xmm7
aesenc xmm5, xmm7
aesenc xmm4, xmm7
aesenc xmm3, xmm7
aesenc xmm2, xmm7
aesenc xmm1, xmm7
aesenc xmm0, xmm7
aesenc xmm15, xmm7
aesenc xmm6, xmm12
aesenc xmm5, xmm12
aesenc xmm4, xmm12
aesenc xmm3, xmm12
aesenc xmm2, xmm12
aesenc xmm1, xmm12
aesenc xmm0, xmm12
aesenc xmm15, xmm12
aesenc xmm6, xmm13
aesenc xmm5, xmm13
aesenc xmm4, xmm13
aesenc xmm3, xmm13
aesenc xmm2, xmm13
aesenc xmm1, xmm13
aesenc xmm0, xmm13
aesenc xmm15, xmm13
aesenclast xmm6, xmm14
aesenclast xmm5, xmm14
aesenclast xmm4, xmm14
aesenclast xmm3, xmm14
aesenclast xmm2, xmm14
aesenclast xmm1, xmm14
aesenclast xmm0, xmm14
aesenclast xmm15, xmm14
movdqu xmm7, xmmword [r8 + rsi - 0x70]
pxor xmm7, xmm6
movdqu xmm6, xmmword [r8 + rsi - 0x60]
pxor xmm6, xmm5
movdqu xmm5, xmmword [r8 + rsi - 0x50]
pxor xmm5, xmm4
movdqu xmm4, xmmword [r8 + rsi - 0x40]
pxor xmm4, xmm3
movdqu xmm3, xmmword [r8 + rsi - 0x30]
pxor xmm3, xmm2
movdqu xmm2, xmmword [r8 + rsi - 0x20]
pxor xmm2, xmm1
movdqu xmm1, xmmword [r8 + rsi - 0x10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [r8 + rsi]
pxor xmm0, xmm15
movdqu xmmword [rax + rsi - 0x70], xmm7
movdqu xmmword [rax + rsi - 0x60], xmm6
movdqu xmmword [rax + rsi - 0x50], xmm5
movdqu xmmword [rax + rsi - 0x40], xmm4
movdqu xmmword [rax + rsi - 0x30], xmm3
movdqu xmmword [rax + rsi - 0x20], xmm2
movdqu xmmword [rax + rsi - 0x10], xmm1
movdqu xmmword [rax + rsi], xmm0
sub rsi, 0xffffffffffffff80
dec r11
jne 0x14007a760
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x90], 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
test rdx, rdx
je 0x14007b0a2
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]
mov esi, dword [r9 + 0xc]
mov r11d, dword [r9 + 0x10]
movsd xmm1, qword [r9 + 4]
movss xmm13, dword [r9]
unpcklps xmm1, xmm13
lea edi, [rsi + r11]
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], xmm14
aesenc xmm15, xmm14
aesenc xmm15, xmm2
aesenc xmm15, xmm13
lea edi, [r11 + 1]
movdqa xmm14, xmmword [rcx + 0xe0]
aesenclast xmm15, xmm14
mov dword [r9 + 0x10], edi
movdqa xmmword [rsp + 0x20], xmm15
movabs rcx, 0xffffffffffffff8
and r10, rcx
shl r10, 4
add r8, r10
add rax, r10
cmp edx, 1
jne 0x14007ad13
movdqu xmm0, xmmword [r8]
pxor xmm0, xmmword [rsp + 0x20]
movdqu xmmword [rax], xmm0
jmp 0x14007b0a2
pshufd xmm15, xmm1, 0xe1
add edi, esi
bswap edi
movdqa xmmword [rsp + 0x10], xmm2
movd xmm2, edi
shufps xmm2, xmm15, 0xe4
movdqa xmm1, xmm15
shufps xmm1, xmm2, 0x24
lea ecx, [r11 + 2]
mov dword [r9 + 0x10], ecx
xorps xmm1, xmm0
aesenc xmm1, xmm12
aesenc xmm1, xmm11
aesenc xmm1, xmm10
aesenc xmm1, xmm9
aesenc xmm1, xmm8
aesenc xmm1, xmm7
aesenc xmm1, xmm6
aesenc xmm1, xmm5
aesenc xmm1, xmm4
aesenc xmm1, xmm3
aesenc xmm1, xmmword [rsp]
aesenc xmm1, xmmword [rsp + 0x10]
aesenc xmm1, xmm13
aesenclast xmm1, xmm14
movdqa xmmword [rsp + 0x30], xmm1
cmp edx, 2
je 0x14007b014
add ecx, esi
bswap ecx
movd xmm2, ecx
shufps xmm2, xmm15, 0xe4
movdqa xmm1, xmm15
shufps xmm1, xmm2, 0x24
lea ecx, [r11 + 3]
mov dword [r9 + 0x10], ecx
xorps xmm1, xmm0
aesenc xmm1, xmm12
aesenc xmm1, xmm11
aesenc xmm1, xmm10
aesenc xmm1, xmm9
aesenc xmm1, xmm8
cmp ah, bl
enter 0xf66, 0x38
fmul st(7), st(0)
aesenc xmm1, xmm6
aesenc xmm1, xmm5
aesenc xmm1, xmm4
aesenc xmm1, xmm3
aesenc xmm1, xmmword [rsp]
aesenc xmm1, xmmword [rsp + 0x10]
aesenc xmm1, xmm13
aesenclast xmm1, xmm14
movdqa xmmword [rsp + 0x40], xmm1
cmp edx, 3
je 0x14007b014
add ecx, esi
bswap ecx
movd xmm2, ecx
shufps xmm2, xmm15, 0xe4
movdqa xmm1, xmm15
shufps xmm1, xmm2, 0x24
lea ecx, [r11 + 4]
mov dword [r9 + 0x10], ecx
xorps xmm1, xmm0
enter 0x4166, 0xf
cmp ah, bl
int3
aesenc xmm1, xmm11
aesenc xmm1, xmm10
aesenc xmm1, xmm9
aesenc xmm1, xmm8
aesenc xmm1, xmm7
cmp ah, bl
iretd
aesenc xmm1, xmm6
aesenc xmm1, xmm5
aesenc xmm1, xmm4
aesenc xmm1, xmm3
aesenc xmm1, xmmword [rsp]
aesenc xmm1, xmmword [rsp + 0x10]
aesenc xmm1, xmm13
aesenclast xmm1, xmm14
movdqa xmmword [rsp + 0x50], xmm1
cmp edx, 4
je 0x14007b014
add ecx, esi
bswap ecx
movd xmm2, ecx
shufps xmm2, xmm15, 0xe4
movdqa xmm1, xmm15
shufps xmm1, xmm2, 0x24
lea ecx, [r11 + 5]
mov dword [r9 + 0x10], ecx
xorps xmm1, xmm0
aesenc xmm1, xmm12
aesenc xmm1, xmm11
aesenc xmm1, xmm10
aesenc xmm1, xmm9
aesenc xmm1, xmm8
aesenc xmm1, xmm7
aesenc xmm1, xmm6
aesenc xmm1, xmm5
aesenc xmm1, xmm4
aesenc xmm1, xmm3
aesenc xmm1, xmmword [rsp]
aesenc xmm1, xmmword [rsp + 0x10]
aesenc xmm1, xmm13
aesenclast xmm1, xmm14
movdqa xmmword [rsp + 0x60], xmm1
cmp edx, 5
je 0x14007b014
add ecx, esi
bswap ecx
movd xmm2, ecx
shufps xmm2, xmm15, 0xe4
movdqa xmm1, xmm15
shufps xmm1, xmm2, 0x24
movdqa xmm2, xmmword [rsp + 0x10]
lea ecx, [r11 + 6]
mov dword [r9 + 0x10], ecx
xorps xmm1, xmm0
aesenc xmm1, xmm12
aesenc xmm1, xmm11
aesenc xmm1, xmm10
aesenc xmm1, xmm9
aesenc xmm1, xmm8
aesenc xmm1, xmm7
aesenc xmm1, xmm6
aesenc xmm1, xmm5
aesenc xmm1, xmm4
aesenc xmm1, xmm3
aesenc xmm1, xmmword [rsp]
aesenc xmm1, xmm2
aesenc xmm1, xmm13
aesenclast xmm1, xmm14
movdqa xmmword [rsp + 0x70], xmm1
cmp edx, 6
je 0x14007b014
add esi, ecx
bswap esi
movd xmm1, esi
shufps xmm1, xmm15, 0xe4
shufps xmm15, xmm1, 0x24
xorps xmm0, xmm15
aesenc xmm0, xmm12
aesenc xmm0, xmm11
aesenc xmm0, xmm10
aesenc xmm0, xmm9
fadd st(1), st(0)