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

Disassembly:
vmovdqu xmm2, xmmword [r11 + 0x20]
sub r8, 6
vpxor xmm4, xmm4, xmm4
vmovdqu xmm15, xmmword [r9 - 0x80]
vpaddb xmm10, xmm1, xmm2
vpaddb xmm11, xmm10, xmm2
vpaddb xmm12, xmm11, xmm2
vpaddb xmm13, xmm12, xmm2
vpaddb xmm14, xmm13, xmm2
vpxor xmm9, xmm1, xmm15
vmovdqu xmmword [rsp + 0x18], xmm4
jmp 0x5996c0
add ebx, 0x6000000
jb 0x599aa0
vmovdqu xmm3, xmmword [rsi - 0x20]
vpaddb xmm1, xmm14, xmm2
vpxor xmm10, xmm10, xmm15
vpxor xmm11, xmm11, xmm15
vmovdqu xmmword [rdi], xmm1
vpclmulqdq xmm5, xmm7, xmm3, 0x10
vpxor xmm12, xmm12, xmm15
vmovups xmm2, xmmword [r9 - 0x70]
vpclmulqdq xmm6, xmm7, xmm3, 1
xor r12, r12
cmp r15, r14
vaesenc xmm9, xmm9, xmm2
vmovdqu xmm0, xmmword [rsp + 0x38]
vpxor xmm13, xmm13, xmm15
vpclmulqdq xmm1, xmm7, xmm3, 0
vaesenc xmm10, xmm10, xmm2
vpxor xmm14, xmm14, xmm15
setae r12b
vpclmulqdq xmm7, xmm7, xmm3, 0x11
vaesenc xmm11, xmm11, xmm2
vmovdqu xmm3, xmmword [rsi - 0x10]
neg r12
vaesenc xmm12, xmm12, xmm2
vpxor xmm6, xmm6, xmm5
vpclmulqdq xmm5, xmm0, xmm3, 0
vpxor xmm8, xmm8, xmm4
vaesenc xmm13, xmm13, xmm2
vpxor xmm4, xmm1, xmm5
and r12, 0x60
vmovups xmm15, xmmword [r9 - 0x60]
vpclmulqdq xmm1, xmm0, xmm3, 0x10
vaesenc xmm14, xmm14, xmm2
vpclmulqdq xmm2, xmm0, xmm3, 1
lea r14, [r14 + r12]
vaesenc xmm9, xmm9, xmm15
vpxor xmm8, xmm8, xmmword [rsp + 0x18]
vpclmulqdq xmm3, xmm0, xmm3, 0x11
vmovdqu xmm0, xmmword [rsp + 0x48]
vaesenc xmm10, xmm10, xmm15
movbe r13, qword [r14 + 0x58]
vaesenc xmm11, xmm11, xmm15
movbe r12, qword [r14 + 0x50]
vaesenc xmm12, xmm12, xmm15
mov qword [rsp + 0x28], r13
vaesenc xmm13, xmm13, xmm15
mov qword [rsp + 0x30], r12
vmovdqu xmm5, xmmword [rsi + 0x10]
vaesenc xmm14, xmm14, xmm15
vmovups xmm15, xmmword [r9 - 0x50]
vpxor xmm6, xmm6, xmm1
vpclmulqdq xmm1, xmm0, xmm5, 0
vaesenc xmm9, xmm9, xmm15
vpxor xmm6, xmm6, xmm2
vpclmulqdq xmm2, xmm0, xmm5, 0x10
vaesenc xmm10, xmm10, xmm15
vpxor xmm7, xmm7, xmm3
vpclmulqdq xmm3, xmm0, xmm5, 1
vaesenc xmm11, xmm11, xmm15
vpclmulqdq xmm5, xmm0, xmm5, 0x11
vmovdqu xmm0, xmmword [rsp + 0x58]
vaesenc xmm12, xmm12, xmm15
vaesenc xmm13, xmm13, xmm15
vpxor xmm4, xmm4, xmm1
vmovdqu xmm1, xmmword [rsi + 0x20]
vaesenc xmm14, xmm14, xmm15
vmovups xmm15, xmmword [r9 - 0x40]
vpxor xmm6, xmm6, xmm2
vpclmulqdq xmm2, xmm0, xmm1, 0
vaesenc xmm9, xmm9, xmm15
vpxor xmm6, xmm6, xmm3
vpclmulqdq xmm3, xmm0, xmm1, 0x10
vaesenc xmm10, xmm10, xmm15
movbe r13, qword [r14 + 0x48]
vpxor xmm7, xmm7, xmm5
vpclmulqdq xmm5, xmm0, xmm1, 1
vaesenc xmm11, xmm11, xmm15
movbe r12, qword [r14 + 0x40]
vpclmulqdq xmm1, xmm0, xmm1, 0x11
vmovdqu xmm0, xmmword [rsp + 0x68]
vaesenc xmm12, xmm12, xmm15
mov qword [rsp + 0x38], r13
vaesenc xmm13, xmm13, xmm15
mov qword [rsp + 0x40], r12
vpxor xmm4, xmm4, xmm2
vmovdqu xmm2, xmmword [rsi + 0x40]
vaesenc xmm14, xmm14, xmm15
vmovups xmm15, xmmword [r9 - 0x30]
vpxor xmm6, xmm6, xmm3
vpclmulqdq xmm3, xmm0, xmm2, 0
vaesenc xmm9, xmm9, xmm15
vpxor xmm6, xmm6, xmm5
vpclmulqdq xmm5, xmm0, xmm2, 0x10
vaesenc xmm10, xmm10, xmm15
movbe r13, qword [r14 + 0x38]
vpxor xmm7, xmm7, xmm1
vpclmulqdq xmm1, xmm0, xmm2, 1
vpxor xmm8, xmm8, xmmword [rsp + 0x78]
vaesenc xmm11, xmm11, xmm15
movbe r12, qword [r14 + 0x30]
vpclmulqdq xmm2, xmm0, xmm2, 0x11
vaesenc xmm12, xmm12, xmm15
mov qword [rsp + 0x48], r13
vaesenc xmm13, xmm13, xmm15
mov qword [rsp + 0x50], r12
vpxor xmm4, xmm4, xmm3
vmovdqu xmm3, xmmword [rsi + 0x50]
vaesenc xmm14, xmm14, xmm15
vmovups xmm15, xmmword [r9 - 0x20]
vpxor xmm6, xmm6, xmm5
vpclmulqdq xmm5, xmm8, xmm3, 0x10
vaesenc xmm9, xmm9, xmm15
vpxor xmm6, xmm6, xmm1
vpclmulqdq xmm1, xmm8, xmm3, 1
vaesenc xmm10, xmm10, xmm15
movbe r13, qword [r14 + 0x28]
vpxor xmm7, xmm7, xmm2
vpclmulqdq xmm2, xmm8, xmm3, 0
vaesenc xmm11, xmm11, xmm15
movbe r12, qword [r14 + 0x20]
vpclmulqdq xmm8, xmm8, xmm3, 0x11
vaesenc xmm12, xmm12, xmm15
mov qword [rsp + 0x58], r13
vaesenc xmm13, xmm13, xmm15
mov qword [rsp + 0x60], r12
vpxor xmm6, xmm6, xmm5
vaesenc xmm14, xmm14, xmm15
vpxor xmm6, xmm6, xmm1
vmovups xmm15, xmmword [r9 - 0x10]
vpslldq xmm5, xmm6, 8
vpxor xmm4, xmm4, xmm2
vmovdqu xmm3, xmmword [r11 + 0x10]
vaesenc xmm9, xmm9, xmm15
vpxor xmm7, xmm7, xmm8
vaesenc xmm10, xmm10, xmm15
vpxor xmm4, xmm4, xmm5
movbe r13, qword [r14 + 0x18]
vaesenc xmm11, xmm11, xmm15
movbe r12, qword [r14 + 0x10]
vpalignr xmm0, xmm4, xmm4, 8
vpclmulqdq xmm4, xmm4, xmm3, 0x10
mov qword [rsp + 0x68], r13
vaesenc xmm12, xmm12, xmm15
mov qword [rsp + 0x70], r12
vaesenc xmm13, xmm13, xmm15
vmovups xmm1, xmmword [r9]
vaesenc xmm14, xmm14, xmm15
vaesenc xmm9, xmm9, xmm1
vmovups xmm15, xmmword [r9 + 0x10]
vaesenc xmm10, xmm10, xmm1
vpsrldq xmm6, xmm6, 8
vaesenc xmm11, xmm11, xmm1
vpxor xmm7, xmm7, xmm6
vaesenc xmm12, xmm12, xmm1
vpxor xmm4, xmm4, xmm0
movbe r13, qword [r14 + 8]
vaesenc xmm13, xmm13, xmm1
movbe r12, qword [r14]
vaesenc xmm14, xmm14, xmm1
vmovups xmm1, xmmword [r9 + 0x20]
cmp r10d, 0xb
jb 0x599b00
vaesenc xmm9, xmm9, xmm15
vaesenc xmm10, xmm10, xmm15
vaesenc xmm11, xmm11, xmm15
vaesenc xmm12, xmm12, xmm15
vaesenc xmm13, xmm13, xmm15
vaesenc xmm14, xmm14, xmm15
vaesenc xmm9, xmm9, xmm1
vaesenc xmm10, xmm10, xmm1
vaesenc xmm11, xmm11, xmm1
vaesenc xmm12, xmm12, xmm1
vaesenc xmm13, xmm13, xmm1
vmovups xmm15, xmmword [r9 + 0x30]
vaesenc xmm14, xmm14, xmm1
vmovups xmm1, xmmword [r9 + 0x40]
vaesenc xmm9, xmm9, xmm15
vaesenc xmm10, xmm10, xmm15
vaesenc xmm11, xmm11, xmm15
vaesenc xmm12, xmm12, xmm15
vaesenc xmm13, xmm13, xmm15
vaesenc xmm14, xmm14, xmm15
vaesenc xmm9, xmm9, xmm1
vaesenc xmm10, xmm10, xmm1
vaesenc xmm11, xmm11, xmm1
vaesenc xmm12, xmm12, xmm1
vaesenc xmm13, xmm13, xmm1
vmovups xmm15, xmmword [r9 + 0x50]
vaesenc xmm14, xmm14, xmm1
vmovups xmm1, xmmword [r9 + 0x60]
jmp 0x599b00
vmovdqu xmm0, xmmword [r11]
vpshufb xmm6, xmm1, xmm0
vmovdqu xmm5, xmmword [r11 + 0x30]
vpaddd xmm10, xmm6, xmmword [r11 + 0x40]
vpaddd xmm11, xmm6, xmm5
vmovdqu xmm3, xmmword [rsi - 0x20]
vpaddd xmm12, xmm10, xmm5
vpshufb xmm10, xmm10, xmm0
vpaddd xmm13, xmm11, xmm5
vpshufb xmm11, xmm11, xmm0
vpxor xmm10, xmm10, xmm15
vpaddd xmm14, xmm12, xmm5
vpshufb xmm12, xmm12, xmm0
vpxor xmm11, xmm11, xmm15
vpaddd xmm1, xmm13, xmm5
vpshufb xmm13, xmm13, xmm0
vpshufb xmm14, xmm14, xmm0
vpshufb xmm1, xmm1, xmm0
jmp 0x5996df
vaesenc xmm9, xmm9, xmm15
vmovdqu xmmword [rsp + 0x18], xmm7
vpalignr xmm8, xmm4, xmm4, 8
vaesenc xmm10, xmm10, xmm15
vpclmulqdq xmm4, xmm4, xmm3, 0x10
vpxor xmm2, xmm1, xmmword [rcx]
vaesenc xmm11, xmm11, xmm15
vpxor xmm0, xmm1, xmmword [rcx + 0x10]
vaesenc xmm12, xmm12, xmm15
vpxor xmm5, xmm1, xmmword [rcx + 0x20]
vaesenc xmm13, xmm13, xmm15
vpxor xmm6, xmm1, xmmword [rcx + 0x30]
vaesenc xmm14, xmm14, xmm15
vpxor xmm7, xmm1, xmmword [rcx + 0x40]
vpxor xmm3, xmm1, xmmword [rcx + 0x50]
vmovdqu xmm1, xmmword [rdi]
vaesenclast xmm9, xmm9, xmm2
vmovdqu xmm2, xmmword [r11 + 0x20]
vaesenclast xmm10, xmm10, xmm0
vpaddb xmm0, xmm1, xmm2
mov qword [rsp + 0x78], r13
lea rcx, [rcx + 0x60]
prefetcht0 byte [rcx + 0x200]
prefetcht0 byte [rcx + 0x240]
vaesenclast xmm11, xmm11, xmm5
vpaddb xmm5, xmm0, xmm2
mov qword [rsp + 0x80], r12
lea rdx, [rdx + 0x60]
vmovdqu xmm15, xmmword [r9 - 0x80]
vaesenclast xmm12, xmm12, xmm6
vpaddb xmm6, xmm5, xmm2
vaesenclast xmm13, xmm13, xmm7
vpaddb xmm7, xmm6, xmm2
vaesenclast xmm14, xmm14, xmm3
vpaddb xmm3, xmm7, xmm2
add rax, 0x60
sub r8, 6
jb 0x599c02
vmovups xmmword [rdx - 0x60], xmm9
vpxor xmm9, xmm1, xmm15
vmovups xmmword [rdx - 0x50], xmm10
vmovdqa xmm10, xmm0
vmovups xmmword [rdx - 0x40], xmm11
vmovdqa xmm11, xmm5
vmovups xmmword [rdx - 0x30], xmm12
vmovdqa xmm12, xmm6
vmovups xmmword [rdx - 0x20], xmm13
vmovdqa xmm13, xmm7
vmovups xmmword [rdx - 0x10], xmm14
vmovdqa xmm14, xmm3
vmovdqu xmm7, xmmword [rsp + 0x28]
jmp 0x5996c0
vpxor xmm8, xmm8, xmmword [rsp + 0x18]
vpxor xmm8, xmm8, xmm4
ret