Function at 0x1800051f4
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 0x180005862
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 0x180005390
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 0x1800053c7
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 0x18000541d
mov r11d, dword [r13 + r10]
mov rsi, r10
jmp 0x180005422
mov r11d, r9d
xor esi, esi
mov dword [rsp + rsi + 0x20], r11d
add r10, 4
cmp r10, 0x10
jne 0x18000540e
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 0x180005400
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 0x180005515
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 0x18000553d
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 0x18000555c
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 0x18000557b
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 0x18000559a
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 0x1800055b9
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 0x1800055d9
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 0x1800055f9
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 0x180005619
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 0x180005639
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 0x180005658
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 0x180005677
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 0x180005697
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 0x1800056b7
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, 0x80
lea rcx, [rsp + 0x260]
call fcn.180073920
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 0x1800057ab
mov r8d, 0x80
mov rcx, r12
mov rdx, r15
call fcn.180073920
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 0x1800057eb
inc r8
add rdx, 0x10
add rcx, 0x10
add rax, 0x10
cmp r8, 8
jne 0x1800057e8
add rsi, rbx
inc r14
mov r8d, 0x80
mov rcx, rsi
mov rdx, r12
call fcn.180073920
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 0x180005382
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 0x180005882
lea rsi, [rsp + 0x160]
lea rdx, [rsp + 0x20]
mov r8d, 0x80
mov rcx, rsi
call fcn.180073920
mov r11, qword [rsp + 0xc8]
test r11, r11
je 0x180005a60
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 0x18000596e
mov r9d, dword [r13 + r8]
mov r10, r8
jmp 0x180005974
mov r9d, edx
xor r10d, r10d
mov dword [rsp + r10 + 0x20], r9d
add r8, 4
cmp r8, 0x10
jne 0x18000595f
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 0x180005946
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 0x180005a2b
inc rcx
movdqa xmm1, xmmword [rsp + 0x20]
movdqu xmmword [rbx + rdx], xmm1
add rax, 0x10
cmp rcx, r11
jne 0x180005a0c
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