Function at 0x1407c0180
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov rdi, qword [rcx + 8]
mov edx, 0x300
mov rbx, qword [rcx]
mov ecx, 0x100
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
mov r13, qword [rdi + 0xe0]
movq xmm0, qword [rdi + 0x68]
mov r12, qword [rbx + 0xe0]
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rsp + 0x70], xmm11
movaps xmmword [rsp + 0x60], xmm12
movaps xmmword [rsp + 0x50], xmm13
movq xmm13, qword [rbx + 0x60]
movaps xmmword [rsp + 0x40], xmm14
movq xmm14, qword [rbx + 0x68]
movaps xmmword [rsp + 0x30], xmm15
movq xmm15, qword [rdi + 0x60]
mov qword [rsp], r13
movdqa xmmword [rsp + 0x20], xmm0
stmxcsr dword [rsp + 0x18]
mov dword [rsp + 0x1c], 0x3f80
ldmxcsr dword [rsp + 0x1c]
mov rcx, qword [rbx + 0x38]
xorps xmm12, xmm12
xor rcx, qword [rbx + 0x18]
mov rax, qword [rbx + 0x30]
xor rax, qword [rbx + 0x10]
mov rsi, qword [rbx + 0x20]
mov rbp, qword [rdi + 0x20]
movq xmm0, rcx
mov rcx, qword [rbx + 0x58]
xor rcx, qword [rbx + 0x48]
movq xmm7, rax
mov rax, qword [rbx + 0x50]
xor rax, qword [rbx + 0x40]
mov r14, qword [rbx + 0x28]
mov r15, qword [rdi + 0x28]
xor rsi, qword [rbx]
xor rbp, qword [rdi]
movq xmm9, rax
mov rax, qword [rdi + 0x30]
xor rax, qword [rdi + 0x10]
xor r14, qword [rbx + 8]
xor r15, qword [rdi + 8]
movq xmm8, rax
punpcklqdq xmm7, xmm0
mov eax, 0x3ff
shl rax, 0x34
movq xmm11, rax
punpcklqdq xmm11, xmm11
mov rax, qword [rdi + 0x50]
movq xmm0, rcx
mov rcx, qword [rdi + 0x38]
xor rcx, qword [rdi + 0x18]
punpcklqdq xmm9, xmm0
mov qword [rsp + 8], 0x4000
movq xmm0, rcx
mov rcx, qword [rdi + 0x58]
xor rcx, qword [rdi + 0x48]
xor rax, qword [rdi + 0x40]
punpcklqdq xmm8, xmm0
movq xmm0, rcx
movq xmm10, rax
movabs rax, 0x3fdffffffff
mov qword [rsp + 0x10], rax
movabs rax, 0xfffffc0200000000
mov qword [rsp + 0xd8], rax
punpcklqdq xmm10, xmm0
nop dword [rax]
mov rdx, rsi
mov r9, rbp
and edx, 0x1fff0
and r9d, 0x1fff0
movdqu xmm6, xmmword [rdx + r12]
lea r8, [rdx + r12]
movdqu xmm4, xmmword [r9 + r13]
lea r10, [r9 + r13]
mov ecx, edx
mov eax, edx
xor rax, 0x20
xor rcx, 0x30
xor rdx, 0x10
movq xmm0, r14
movq xmm3, rsi
movq xmm5, rbp
punpcklqdq xmm3, xmm0
movq xmm0, r15
movdqu xmm2, xmmword [rax + r12]
movdqu xmm1, xmmword [rcx + r12]
paddq xmm2, xmm3
punpcklqdq xmm5, xmm0
paddq xmm1, xmm7
aesenc xmm6, xmm3
aesenc xmm4, xmm5
movdqa xmm0, xmm9
movq rdi, xmm4
paddq xmm0, xmmword [rdx + r12]
movdqu xmmword [rdx + r12], xmm0
xor edx, edx
movdqu xmmword [rax + r12], xmm1
movdqa xmm0, xmm6
movdqu xmmword [rcx + r12], xmm2
pxor xmm0, xmm7
movdqu xmmword [r8], xmm0
mov ecx, r9d
xor rcx, 0x30
mov eax, r9d
xor rax, 0x20
xor r9, 0x10
movdqa xmm0, xmm10
movdqu xmm1, xmmword [rcx + r13]
movdqu xmm2, xmmword [rax + r13]
paddq xmm1, xmm8
paddq xmm0, xmmword [r9 + r13]
paddq xmm2, xmm5
movdqu xmmword [r9 + r13], xmm0
movq r9, xmm6
movdqu xmmword [rax + r13], xmm1
movdqa xmm0, xmm4
movdqu xmmword [rcx + r13], xmm2
pxor xmm0, xmm8
movdqu xmmword [r10], xmm0
movq rcx, xmm14
mov rax, rcx
movq r10, xmm13
shl rax, 0x20
movdqa xmm0, xmm6
xor r10, rax
psrldq xmm0, 8
lea r8, [rcx + rcx]
movq rax, xmm0
add r8d, r9d
mov ecx, 0x80000001
or r8, rcx
mov r11, r9
div r8
and r11d, 0x1fff0
movaps xmm1, xmm12
mov eax, eax
add r11, r12
shl rdx, 0x20
add rdx, rax
xor r10, qword [r11]
mov rbx, qword [r11 + 8]
lea r8, [rdx + r9]
movq xmm13, rdx
mov rax, r8
shr rax, 0xc
movq xmm0, rax
paddq xmm0, xmm11
sqrtsd xmm1, xmm0
movq rdx, xmm1
mov rax, rdx
shr rdx, 0x13
shr rax, 0x14
mov rcx, rdx
sub rcx, rax
add rax, qword [rsp + 0xd8]
sub rcx, qword [rsp + 0x10]
mov r13, qword [rsp]
imul rcx, rax
mov rax, r10
sub rcx, r8
mov rcx, r9
adc rdx, 0
xor rcx, 0x20
and ecx, 0x1fff0
movq xmm14, rdx
movdqu xmm1, xmmword [rcx + r12]
mul r9
paddq xmm1, xmm3
mov r8, rax
xor r8, qword [rcx + r12 + 8]
add r14, r8
movq xmm0, rax
movq xmm2, rdx
xor rdx, qword [rcx + r12]
mov rax, r9
xor rax, 0x30
punpcklqdq xmm2, xmm0
and eax, 0x1fff0
add rsi, rdx
xor r9, 0x10
xor edx, edx
and r9d, 0x1fff0
movdqu xmm0, xmmword [rax + r12]
paddq xmm0, xmm7
pxor xmm2, xmmword [r9 + r12]
paddq xmm2, xmm9
movdqu xmmword [r9 + r12], xmm2
movq r9, xmm15
movdqu xmmword [rcx + r12], xmm0
movdqa xmm0, xmm4
mov rcx, qword [rsp + 0x20]
movdqu xmmword [rax + r12], xmm1
mov rax, rcx
shl rax, 0x20
movaps xmm1, xmm12
xor r9, rax
psrldq xmm0, 8
lea r8, [rcx + rcx]
mov qword [r11], rsi
add r8d, edi
mov qword [r11 + 8], r14
movq rax, xmm0
mov ecx, 0x80000001
or r8, rcx
xor rsi, r10
div r8
mov r10, rdi
xor r14, rbx
mov eax, eax
and r10d, 0x1fff0
shl rdx, 0x20
add r10, r13
add rdx, rax
xor r9, qword [r10]
mov r11, qword [r10 + 8]
lea r8, [rdx + rdi]
mov rax, r8
movq xmm15, rdx
shr rax, 0xc
movq xmm0, rax
paddq xmm0, xmm11
sqrtsd xmm1, xmm0
movq rdx, xmm1
mov rax, rdx
shr rax, 0x14
shr rdx, 0x13
mov rcx, rdx
sub rcx, rax
sub rcx, qword [rsp + 0x10]
movdqa xmm9, xmm7
movdqa xmm7, xmm6
add rax, qword [rsp + 0xd8]
imul rcx, rax
mov rax, r9
sub rcx, r8
mov rcx, rdi
adc rdx, 0
xor rcx, 0x20
and ecx, 0x1fff0
mov qword [rsp + 0x20], rdx
movdqu xmm1, xmmword [rcx + r13]
mul rdi
paddq xmm1, xmm5
mov r8, rax
xor r8, qword [rcx + r13 + 8]
add r15, r8
movq xmm0, rax
movq xmm2, rdx
xor rdx, qword [rcx + r13]
mov rax, rdi
xor rdi, 0x10
punpcklqdq xmm2, xmm0
xor rax, 0x30
and edi, 0x1fff0
and eax, 0x1fff0
add rbp, rdx
pxor xmm2, xmmword [rdi + r13]
movdqu xmm0, xmmword [rax + r13]
paddq xmm2, xmm10
movdqu xmmword [rdi + r13], xmm2
paddq xmm0, xmm8
movdqu xmmword [rcx + r13], xmm0
movdqa xmm10, xmm8
movdqu xmmword [rax + r13], xmm1
movdqa xmm8, xmm4
mov qword [r10], rbp
xor rbp, r9
mov qword [r10 + 8], r15
xor r15, r11
sub qword [rsp + 8], 1
jne 0x1407c0300
ldmxcsr dword [rsp + 0x18]
movaps xmm13, xmmword [rsp + 0x50]
lea r11, [rsp + 0xe8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm14, xmmword [rsp + 0x40]
movaps xmm15, xmmword [rsp + 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret