Function at 0x411da9
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 0x412417
shr qword [rsp + 0xb8], 3
mov rax, qword [rsp + 0xb0]
movdqa xmm0, xmmword [rax]
movdqa 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 xmm1, 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 + 0x1e0]
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], xmm1
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 0x411f45
mov ecx, 0x10
mov r9, 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 0x411f7c
mov ecx, 0x10
mov rdi, r12
mov rsi, r15
rep movsq qword [rdi], qword [rsi]
mov eax, dword [r13]
mov ecx, dword [r13 + 0x10]
mov r8, r12
xor edx, edx
mov rdi, r9
movdqa xmmword [rsp + 0x20], xmm11
lea r9d, [rax + rcx]
xor r10d, r10d
test r10, r10
je 0x411fd2
mov r11d, dword [r13 + r10]
mov rsi, r10
jmp 0x411fd7
mov r11d, r9d
xor esi, esi
mov dword [rsp + rsi + 0x20], r11d
add r10, 4
cmp r10, 0x10
jne 0x411fc3
inc rdx
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x260], xmm0
inc ecx
mov dword [r13 + 0x10], ecx
movdqa xmm0, xmmword [rsp + 0x260]
movdqu xmmword [r8], xmm0
mov r8, rdx
shl r8, 4
add r8, rsp
add r8, 0x160
cmp rdx, 8
jne 0x411fb5
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 0x4120ca
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 0x4120f2
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 0x412111
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 0x412130
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 0x41214f
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 0x41216e
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 0x41218e
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 0x4121ae
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 0x4121ce
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 0x4121ee
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 0x41220d
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 0x41222c
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 0x41224c
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 0x41226c
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 + 0x1e0], xmm0
movdqa xmmword [rsp + 0x1f0], xmm1
movdqa xmmword [rsp + 0x200], xmm2
movdqa xmmword [rsp + 0x210], xmm3
movdqa xmmword [rsp + 0x220], xmm4
movdqa xmmword [rsp + 0x230], xmm5
movaps xmm0, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x240], xmm0
movdqa xmm0, xmmword [rsp + 0x130]
movdqa xmmword [rsp + 0x250], xmm0
mov r8d, pe_nt_image_headers64
lea rcx, [rsp + 0x260]
call sub.ntdll.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 0x412360
mov r8d, pe_nt_image_headers64
mov rcx, r12
mov rdx, r15
call sub.ntdll.dll_memcpy
lea rax, [rsp + 0x260]
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 0x4123a0
inc r8
add rdx, 0x10
add rcx, 0x10
add rax, 0x10
cmp r8, 8
jne 0x41239d
add rsi, rbx
inc r14
mov r8d, pe_nt_image_headers64
mov rcx, rsi
mov rdx, r12
call sub.ntdll.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 0x411f37
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 0x412437
lea rsi, [rsp + 0x160]
lea rdx, [rsp + 0x20]
mov r8d, pe_nt_image_headers64
mov rcx, rsi
call sub.ntdll.dll_memcpy
mov r11, qword [rsp + 0xc8]
test r11, r11
je 0x412615
mov rax, r11
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 ecx, dword [r13 + 0x10]
mov edx, dword [r13]
add edx, ecx
xor r8d, r8d
test r8, r8
je 0x412523
mov r9d, dword [r13 + r8]
mov r10, r8
jmp 0x412529
mov r9d, edx
xor r10d, r10d
mov dword [rsp + r10 + 0x20], r9d
add r8, 4
cmp r8, 0x10
jne 0x412514
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 0x4124fb
lea rax, [rsp + 0x160]
xor ecx, ecx
pxor xmm0, xmm0
mov rdx, rcx
shl rdx, 4
movdqu xmm1, xmmword [rbp + rdx]
movdqa xmmword [rsp + 0x260], xmm1
movdqa xmmword [rsp + 0x20], xmm0
xor r8d, r8d
mov r9b, byte [rax + r8]
xor r9b, byte [rsp + r8 + 0x260]
mov byte [rsp + r8 + 0x20], r9b
lea r9, [r8 + 1]
mov r8, r9
cmp r9, 0x10
jne 0x4125e0
inc rcx
movdqa xmm1, xmmword [rsp + 0x20]
movdqu xmmword [rbx + rdx], xmm1
add rax, 0x10
cmp rcx, r11
jne 0x4125c1
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