Function at 0x14015cff0
Capabilities:
Encrypt data using aes via x86 extensions

Disassembly:
push rdi
sub rsp, 0x140
cmp byte [0x140785d04], 0
mov rdi, rcx
je 0x14015d01a
mov r8b, 1
mov edx, 0x40000
add rsp, 0x140
pop rdi
jmp 0x140168b40
movdqu xmm2, xmmword [rcx + 0x30]
movdqu xmm3, xmmword [rcx + 0x20]
mov qword [rsp + 0x150], rbx
movdqa xmm1, xmm3
mov rbx, qword [rcx + 0xe0]
pslldq xmm1, 4
movdqa xmm0, xmm1
mov qword [rsp + 0x158], rbp
pslldq xmm1, 4
pxor xmm0, xmm3
mov qword [rsp + 0x160], rsi
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x120], xmm7
movaps xmmword [rsp + 0x110], xmm8
movaps xmmword [rsp + 0x100], xmm9
movaps xmmword [rsp + 0xf0], xmm10
movaps xmmword [rsp + 0xe0], xmm11
movaps xmmword [rsp + 0xd0], xmm12
movdqa xmmword [rsp + 0x30], xmm2
movdqa xmmword [rsp + 0x20], xmm3
movaps xmmword [rsp + 0xc0], xmm13
movaps xmmword [rsp + 0xb0], xmm14
movdqa xmm14, xmm1
pslldq xmm1, 4
pxor xmm14, xmm0
pxor xmm14, xmm1
movaps xmmword [rsp + 0xa0], xmm15
aeskeygenassist xmm0, xmm2, 1
pshufd xmm1, xmm0, 0xff
pxor xmm14, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
movdqa xmm0, xmm1
pslldq xmm1, 4
movdqa xmm15, xmm1
pxor xmm0, xmm2
pslldq xmm1, 4
pxor xmm15, xmm0
pxor xmm15, xmm1
aeskeygenassist xmm0, xmm14, 0
pshufd xmm1, xmm0, 0xaa
pxor xmm15, xmm1
movdqa xmm1, xmm14
pslldq xmm1, 4
movdqa xmm0, xmm1
pslldq xmm1, 4
movdqa xmm2, xmm1
pxor xmm0, xmm14
pslldq xmm1, 4
pxor xmm2, xmm0
pxor xmm2, xmm1
aeskeygenassist xmm0, xmm15, 2
pshufd xmm1, xmm0, 0xff
pxor xmm2, xmm1
movdqa xmm1, xmm15
pslldq xmm1, 4
movdqa xmm0, xmm1
movdqa xmmword [rsp + 0x40], xmm2
pslldq xmm1, 4
pxor xmm0, xmm15
movdqa xmm3, xmm1
pslldq xmm1, 4
pxor xmm3, xmm0
pxor xmm3, xmm1
aeskeygenassist xmm0, xmm2, 0
pshufd xmm1, xmm0, 0xaa
pxor xmm3, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
movdqa xmm0, xmm1
movdqa xmmword [rsp + 0x50], xmm3
pslldq xmm1, 4
pxor xmm0, xmm2
movdqa xmm4, xmm1
pslldq xmm1, 4
pxor xmm4, xmm0
pxor xmm4, xmm1
aeskeygenassist xmm0, xmm3, 4
pshufd xmm1, xmm0, 0xff
pxor xmm4, xmm1
movdqa xmmword [rsp + 0x60], xmm4
movdqu xmm8, xmmword [rcx + 0x60]
movdqa xmm1, xmm3
movdqu xmm9, xmmword [rcx + 0x70]
mov rbp, rbx
movdqu xmm10, xmmword [rcx + 0x80]
xor esi, esi
movdqu xmm11, xmmword [rcx + 0x90]
movdqu xmm12, xmmword [rcx + 0xa0]
movdqu xmm13, xmmword [rcx + 0xb0]
pslldq xmm1, 4
movdqa xmm0, xmm1
pslldq xmm1, 4
movdqa xmm5, xmm1
pxor xmm0, xmm3
pslldq xmm1, 4
pxor xmm5, xmm0
pxor xmm5, xmm1
aeskeygenassist xmm0, xmm4, 0
pshufd xmm1, xmm0, 0xaa
pxor xmm5, xmm1
movdqa xmm1, xmm4
pslldq xmm1, 4
movdqa xmm0, xmm1
movdqa xmmword [rsp + 0x70], xmm5
pslldq xmm1, 4
pxor xmm0, xmm4
movdqa xmm6, xmm1
pslldq xmm1, 4
pxor xmm6, xmm0
pxor xmm6, xmm1
aeskeygenassist xmm0, xmm5, 8
pshufd xmm1, xmm0, 0xff
pxor xmm6, xmm1
movdqa xmm1, xmm5
pslldq xmm1, 4
movdqa xmm0, xmm1
movdqa xmmword [rsp + 0x80], xmm6
pslldq xmm1, 4
pxor xmm0, xmm5
movdqa xmm7, xmm1
pslldq xmm1, 4
pxor xmm7, xmm0
pxor xmm7, xmm1
aeskeygenassist xmm0, xmm6, 0
movdqu xmm6, xmmword [rcx + 0x40]
pshufd xmm1, xmm0, 0xaa
pxor xmm7, xmm1
movdqa xmmword [rsp + 0x90], xmm7
movdqu xmm7, xmmword [rcx + 0x50]
nop
cmp rsi, 1
jne 0x14015d300
mov rcx, rdi
mov byte [rdi + 0x1b0], 0
mov rbx, rbp
call fcn.14015ca00
movdqa xmm2, xmmword [rsp + 0x40]
movdqa xmm3, xmmword [rsp + 0x50]
movdqa xmm4, xmmword [rsp + 0x60]
movdqa xmm5, xmmword [rsp + 0x70]
movdqa xmm0, xmmword [rsp + 0x80]
xor eax, eax
movdqa xmm1, xmmword [rsp + 0x90]
nop dword [rax]
nop dword [rax + rax]
pxor xmm6, xmmword [rbx]
add rax, 8
pxor xmm7, xmmword [rbx + 0x10]
pxor xmm8, xmmword [rbx + 0x20]
pxor xmm9, xmmword [rbx + 0x30]
pxor xmm10, xmmword [rbx + 0x40]
pxor xmm11, xmmword [rbx + 0x50]
pxor xmm12, xmmword [rbx + 0x60]
pxor xmm13, xmmword [rbx + 0x70]
sub rbx, 0xffffffffffffff80
cmp rax, 0x2000
jae 0x14015d364
prefetcht0 byte [rbx]
prefetcht0 byte [rbx + 0x40]
aesenc xmm6, xmmword [rsp + 0x20]
aesenc xmm7, xmmword [rsp + 0x20]
aesenc xmm8, xmmword [rsp + 0x20]
aesenc xmm9, xmmword [rsp + 0x20]
aesenc xmm10, xmmword [rsp + 0x20]
aesenc xmm11, xmmword [rsp + 0x20]
aesenc xmm12, xmmword [rsp + 0x20]
aesenc xmm13, xmmword [rsp + 0x20]
aesenc xmm6, xmmword [rsp + 0x30]
aesenc xmm7, xmmword [rsp + 0x30]
aesenc xmm8, xmmword [rsp + 0x30]
aesenc xmm9, xmmword [rsp + 0x30]
aesenc xmm10, xmmword [rsp + 0x30]
aesenc xmm11, xmmword [rsp + 0x30]
aesenc xmm12, xmmword [rsp + 0x30]
aesenc xmm13, xmmword [rsp + 0x30]
aesenc xmm6, xmm14
aesenc xmm7, xmm14
aesenc xmm8, xmm14
aesenc xmm9, xmm14
aesenc xmm10, xmm14
aesenc xmm11, xmm14
aesenc xmm12, xmm14
aesenc xmm13, xmm14
aesenc xmm6, xmm15
aesenc xmm7, xmm15
aesenc xmm8, xmm15
aesenc xmm9, xmm15
aesenc xmm10, xmm15
aesenc xmm11, xmm15
aesenc xmm12, xmm15
aesenc xmm13, xmm15
aesenc xmm6, xmm2
aesenc xmm7, xmm2
aesenc xmm8, xmm2
aesenc xmm9, xmm2
aesenc xmm10, xmm2
aesenc xmm11, xmm2
aesenc xmm12, xmm2
aesenc xmm13, xmm2
aesenc xmm6, xmm3
aesenc xmm7, xmm3
aesenc xmm8, xmm3
aesenc xmm9, xmm3
aesenc xmm10, xmm3
aesenc xmm11, xmm3
aesenc xmm12, xmm3
aesenc xmm13, xmm3
aesenc xmm6, xmm4
aesenc xmm7, xmm4
aesenc xmm8, xmm4
aesenc xmm9, xmm4
aesenc xmm10, xmm4
aesenc xmm11, xmm4
aesenc xmm12, xmm4
aesenc xmm13, xmm4
aesenc xmm6, xmm5
aesenc xmm7, xmm5
aesenc xmm8, xmm5
aesenc xmm9, xmm5
aesenc xmm10, xmm5
aesenc xmm11, xmm5
aesenc xmm12, xmm5
aesenc xmm13, xmm5
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
aesenc xmm10, xmm0
aesenc xmm11, xmm0
aesenc xmm12, xmm0
aesenc xmm13, xmm0
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
aesenc xmm10, xmm1
aesenc xmm11, xmm1
aesenc xmm12, xmm1
aesenc xmm13, xmm1
jb 0x14015d320
inc rsi
cmp rsi, 2
jb 0x14015d2d0
movaps xmm15, xmmword [rsp + 0xa0]
movaps xmm14, xmmword [rsp + 0xb0]
mov rsi, qword [rsp + 0x160]
mov rbp, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x150]
movdqu xmmword [rdi + 0x40], xmm6
movaps xmm6, xmmword [rsp + 0x130]
movdqu xmmword [rdi + 0x50], xmm7
movaps xmm7, xmmword [rsp + 0x120]
movdqu xmmword [rdi + 0x60], xmm8
movaps xmm8, xmmword [rsp + 0x110]
movdqu xmmword [rdi + 0x70], xmm9
movaps xmm9, xmmword [rsp + 0x100]
movdqu xmmword [rdi + 0x80], xmm10
movaps xmm10, xmmword [rsp + 0xf0]
movdqu xmmword [rdi + 0x90], xmm11
movaps xmm11, xmmword [rsp + 0xe0]
movdqu xmmword [rdi + 0xa0], xmm12
movaps xmm12, xmmword [rsp + 0xd0]
movdqu xmmword [rdi + 0xb0], xmm13
movaps xmm13, xmmword [rsp + 0xc0]
add rsp, 0x140
pop rdi
ret