Function at 0x140004619
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, 0x388
movdqa xmmword [rsp + 0x370], xmm15
movdqa xmmword [rsp + 0x360], xmm14
movdqa xmmword [rsp + 0x350], xmm13
movdqa xmmword [rsp + 0x340], xmm12
movdqa xmmword [rsp + 0x330], xmm11
movdqa xmmword [rsp + 0x320], xmm10
movdqa xmmword [rsp + 0x310], xmm9
movdqa xmmword [rsp + 0x300], xmm8
movdqa xmmword [rsp + 0x2f0], xmm7
movdqa xmmword [rsp + 0x2e0], xmm6
mov qword [rsp + 0xb0], rcx
mov r13, qword [rdx]
mov rbp, qword [rdx + 8]
mov rbx, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x18]
movabs rcx, 0xffffffffffffff8
and rcx, rdx
mov eax, edx
and eax, 7
mov qword [rsp + 0xc8], rax
shl rcx, 4
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xb8], rdx
cmp rdx, 8
jb 0x140004cbd
shr qword [rsp + 0xb8], 3
mov rax, qword [rsp + 0xb0]
movaps xmm0, xmmword [rax]
movaps xmmword [rsp + 0x120], xmm0
movdqa xmm2, xmmword [rax + 0x10]
movdqa xmm3, xmmword [rax + 0x20]
movdqa xmm4, xmmword [rax + 0x30]
movdqa xmm5, xmmword [rax + 0x40]
movdqa xmm0, xmmword [rax + 0x50]
movdqa xmm12, xmmword [rax + 0x60]
movdqa xmm13, xmmword [rax + 0x70]
movdqa xmm14, xmmword [rax + 0x80]
movdqa xmm15, xmmword [rax + 0x90]
movdqa xmm6, xmmword [rax + 0xa0]
movdqa xmm7, xmmword [rax + 0xb0]
movdqa xmm8, xmmword [rax + 0xc0]
movdqa xmm9, xmmword [rax + 0xd0]
movdqa xmm10, xmmword [rax + 0xe0]
xor r14d, r14d
pxor xmm11, xmm11
lea rdi, [rsp + 0x260]
lea r15, [rsp + 0x20]
lea r12, [rsp + 0x160]
movdqa xmmword [rsp + 0x110], xmm2
movdqa xmmword [rsp + 0x100], xmm3
movdqa xmmword [rsp + 0xf0], xmm4
movdqa xmmword [rsp + 0xe0], xmm5
movdqa xmmword [rsp + 0xd0], xmm0
mov qword [rsp + 0xa0], 0
xor eax, eax
movdqu xmmword [rsp + rax + 0x20], xmm11
inc qword [rsp + 0xa0]
add rax, 0x10
cmp rax, 0x80
jne 0x1400047b3
mov ecx, 0x10
mov r8, rdi
mov rsi, r15
rep movsq qword [rdi], qword [rsi]
mov qword [rsp + 0xa0], 0
xor eax, eax
movdqu xmmword [rsp + rax + 0x20], xmm11
inc qword [rsp + 0xa0]
add rax, 0x10
cmp rax, 0x80
jne 0x1400047ea
mov ecx, 0x10
mov rdi, r12
mov rsi, r15
rep movsq qword [rdi], qword [rsi]
mov eax, dword [r13 + 0x10]
mov rdx, r12
xor ecx, ecx
mov rdi, r8
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r8d, dword [r13 + 0xc]
xor r9d, r9d
mov r10d, dword [r13 + r9*4]
mov dword [rsp + r9*4 + 0x20], r10d
lea r10, [r9 + 1]
mov r9, r10
cmp r10, 3
jne 0x140004837
inc rcx
add r8d, eax
bswap r8d
mov dword [rsp + 0x2c], r8d
mov r8, qword [rsp + 0x20]
mov qword [rsp + 0x1e0], r8
mov r8d, dword [rsp + 0x28]
mov dword [rsp + 0x1e8], r8d
mov r8d, dword [rsp + 0x2c]
mov dword [rsp + 0x1ec], r8d
inc eax
mov dword [r13 + 0x10], eax
mov r8, qword [rsp + 0x1e0]
mov qword [rdx], r8
mov r8d, dword [rsp + 0x1e8]
mov dword [rdx + 8], r8d
mov r8d, dword [rsp + 0x1ec]
mov dword [rdx + 0xc], r8d
mov rdx, rcx
shl rdx, 4
add rdx, rsp
add rdx, 0x160
cmp rcx, 8
jne 0x14000481f
movdqa xmm0, xmmword [rsp + 0x160]
movdqa xmm1, xmmword [rsp + 0x120]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x20], xmm0
movdqa xmm0, xmmword [rsp + 0x170]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmm0, xmmword [rsp + 0x180]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x40], xmm0
movdqa xmm0, xmmword [rsp + 0x190]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x50], xmm0
movdqa xmm0, xmmword [rsp + 0x1a0]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmm0, xmmword [rsp + 0x1b0]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmm0, xmmword [rsp + 0x1c0]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x80], xmm0
movdqa xmm0, xmmword [rsp + 0x1d0]
pxor xmm0, xmm1
movdqa xmmword [rsp + 0x90], xmm0
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm2
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004970
xor eax, eax
movdqa xmm1, xmmword [rsp + 0xd0]
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm3
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004998
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm4
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x1400049b7
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm5
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x1400049d6
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm1
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x1400049f5
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm12
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004a14
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm13
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004a34
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm14
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004a54
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm15
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004a74
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm6
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004a94
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm7
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004ab3
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm8
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004ad2
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenc xmm0, xmm9
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004af2
xor eax, eax
movdqa xmm0, xmmword [rsp + rax + 0x20]
aesenclast xmm0, xmm10
movdqa xmmword [rsp + rax + 0x20], xmm0
add rax, 0x10
cmp rax, 0x80
jne 0x140004b12
mov rsi, r14
shl rsi, 7
lea rdx, [rsi + rbp]
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x140], xmm0
movdqa xmm1, xmmword [rsp + 0x30]
movdqa xmm2, xmmword [rsp + 0x40]
movdqa xmm3, xmmword [rsp + 0x50]
movdqa xmm4, xmmword [rsp + 0x60]
movdqa xmm5, xmmword [rsp + 0x70]
movaps xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x150], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x260], xmm0
movdqa xmmword [rsp + 0x270], xmm1
movdqa xmmword [rsp + 0x280], xmm2
movdqa xmmword [rsp + 0x290], xmm3
movdqa xmmword [rsp + 0x2a0], xmm4
movdqa xmmword [rsp + 0x2b0], xmm5
movaps xmm0, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x2c0], xmm0
movdqa xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x2d0], xmm0
mov r8d, 0x80
lea rcx, [rsp + 0x1e0]
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsp + 0xa0], 0
xor eax, eax
movdqu xmmword [rsp + rax + 0x20], xmm11
inc qword [rsp + 0xa0]
add rax, 0x10
cmp rax, 0x80
jne 0x140004c06
mov r8d, 0x80
mov rcx, r12
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rsp + 0x1e0]
mov rcx, rdi
mov rdx, r12
xor r8d, r8d
xor r9d, r9d
mov r10b, byte [rcx + r9]
xor r10b, byte [rax + r9]
mov byte [rdx + r9], r10b
lea r10, [r9 + 1]
mov r9, r10
cmp r10, 0x10
jne 0x140004c46
inc r8
add rdx, 0x10
add rcx, 0x10
add rax, 0x10
cmp r8, 8
jne 0x140004c43
add rsi, rbx
inc r14
mov r8d, 0x80
mov rcx, rsi
mov rdx, r12
call sub.VCRUNTIME140.dll_memcpy
cmp qword [rsp + 0xb8], r14
movdqa xmm2, xmmword [rsp + 0x110]
movdqa xmm3, xmmword [rsp + 0x100]
movdqa xmm4, xmmword [rsp + 0xf0]
movdqa xmm5, xmmword [rsp + 0xe0]
jne 0x1400047a5
mov rax, qword [rsp + 0xc0]
add rbp, rax
add rbx, rax
mov qword [rsp + 0xa0], 0
xor eax, eax
pxor xmm0, xmm0
movdqu xmmword [rsp + rax + 0x20], xmm0
inc qword [rsp + 0xa0]
add rax, 0x10
cmp rax, 0x80
jne 0x140004cdd
lea rsi, [rsp + 0x160]
lea rdx, [rsp + 0x20]
mov r8d, 0x80
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov r10, qword [rsp + 0xc8]
test r10, r10
je 0x140004eb4
mov rax, r10
shl rax, 4
add rax, rsp
add rax, 0x160
mov rcx, qword [rsp + 0xb0]
movdqa xmm0, xmmword [rcx]
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]
pxor xmm15, xmm15
movdqa xmmword [rsp + 0x20], xmm15
mov edx, dword [r13 + 0xc]
mov ecx, dword [r13 + 0x10]
xor r8d, r8d
mov r9d, dword [r13 + r8*4]
mov dword [rsp + r8*4 + 0x20], r9d
lea r9, [r8 + 1]
mov r8, r9
cmp r9, 3
jne 0x140004db8
add edx, ecx
bswap edx
mov dword [rsp + 0x2c], edx
movdqa xmm15, xmmword [rsp + 0x20]
pxor xmm15, xmm0
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
inc ecx
mov dword [r13 + 0x10], ecx
movdqu xmmword [rsi], xmm15
lea rcx, [rsi + 0x10]
mov rsi, rcx
cmp rcx, rax
jne 0x140004da1
lea rax, [rsp + 0x160]
xor ecx, ecx
pxor xmm0, xmm0
mov rdx, rcx
shl rdx, 4
movdqu xmm1, xmmword [rbp + rdx]
movdqa xmmword [rsp + 0x1e0], xmm1
movdqa xmmword [rsp + 0x20], xmm0
xor r8d, r8d
mov r9b, byte [rax + r8]
xor r9b, byte [rsp + r8 + 0x1e0]
mov byte [rsp + r8 + 0x20], r9b
lea r9, [r8 + 1]
mov r8, r9
cmp r9, 0x10
jne 0x140004e7f
inc rcx
movdqa xmm1, xmmword [rsp + 0x20]
movdqu xmmword [rbx + rdx], xmm1
add rax, 0x10
cmp rcx, r10
jne 0x140004e60
movaps xmm6, xmmword [rsp + 0x2e0]
movaps xmm7, xmmword [rsp + 0x2f0]
movaps xmm8, xmmword [rsp + 0x300]
movaps xmm9, xmmword [rsp + 0x310]
movaps xmm10, xmmword [rsp + 0x320]
movaps xmm11, xmmword [rsp + 0x330]
movaps xmm12, xmmword [rsp + 0x340]
movaps xmm13, xmmword [rsp + 0x350]
movaps xmm14, xmmword [rsp + 0x360]
movaps xmm15, xmmword [rsp + 0x370]
add rsp, 0x388
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret