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

Disassembly:
mov r14, qword [0x0098c2c8]
mov r14, qword gs:[r14]
mov r14, qword [r14]
lea r12, [rsp - 0x88]
cmp r12, qword [r14 + 0x10]
jbe 0x512d85
push rbp
mov rbp, rsp
sub rsp, 0x100
mov rdi, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x130]
mov r9, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x148]
mov r8, qword [rsp + 0x150]
mov rax, qword [rsp + 0x158]
mov r13, qword [rsp + 0x160]
shr r13, 2
dec r13
movdqu xmm15, xmmword [0x00756bb0]
movdqu xmm14, xmmword [0x00756bc0]
movdqu xmm8, xmmword [r8]
pxor xmm9, xmm9
pxor xmm10, xmm10
movdqu xmm0, xmmword [rcx]
mov r10d, dword [rcx + 0xc]
movdqu xmm11, xmmword [rax]
mov r12d, dword [rax + 0xc]
bswap r10d
bswap r12d
pxor xmm11, xmm0
movdqu xmmword [rsp + 0x80], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0x8c], r11d
cmp r9, 0x80
jb 0x512a59
sub r9, 0x80
movdqu xmmword [rsp + 0x90], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0x9c], r11d
movdqu xmmword [rsp + 0xa0], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xac], r11d
movdqu xmmword [rsp + 0xb0], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xbc], r11d
movdqu xmmword [rsp + 0xc0], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xcc], r11d
movdqu xmmword [rsp + 0xd0], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xdc], r11d
movdqu xmmword [rsp + 0xe0], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xec], r11d
movdqu xmmword [rsp + 0xf0], xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xfc], r11d
movdqu xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm2, xmmword [rsp + 0xa0]
movdqu xmm3, xmmword [rsp + 0xb0]
movdqu xmm4, xmmword [rsp + 0xc0]
movdqu xmm5, xmmword [rsp + 0xd0]
movdqu xmm6, xmmword [rsp + 0xe0]
movdqu xmm7, xmmword [rsp + 0xf0]
movdqu xmm11, xmmword [rax + 0x10]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0x8c], r11d
movdqu xmm11, xmmword [rax + 0x20]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0x9c], r11d
movdqu xmm11, xmmword [rax + 0x30]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xac], r11d
movdqu xmm11, xmmword [rax + 0x40]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xbc], r11d
movdqu xmm11, xmmword [rax + 0x50]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xcc], r11d
movdqu xmm11, xmmword [rax + 0x60]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xdc], r11d
movdqu xmm11, xmmword [rax + 0x70]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xec], r11d
movdqu xmm11, xmmword [rax + 0x80]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xfc], r11d
movdqu xmm11, xmmword [rax + 0x90]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xa0]
cmp r13, 0xc
jb 0x511ef0
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xb0]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xc0]
je 0x511ef0
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xd0]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xe0]
aesenclast xmm0, xmm11
aesenclast xmm1, xmm11
aesenclast xmm2, xmm11
aesenclast xmm3, xmm11
aesenclast xmm4, xmm11
aesenclast xmm5, xmm11
aesenclast xmm6, xmm11
aesenclast xmm7, xmm11
movdqu xmm11, xmmword [rsi]
pxor xmm0, xmm11
movdqu xmm11, xmmword [rsi + 0x10]
pxor xmm1, xmm11
movdqu xmm11, xmmword [rsi + 0x20]
pxor xmm2, xmm11
movdqu xmm11, xmmword [rsi + 0x30]
pxor xmm3, xmm11
movdqu xmm11, xmmword [rsi + 0x40]
pxor xmm4, xmm11
movdqu xmm11, xmmword [rsi + 0x50]
pxor xmm5, xmm11
movdqu xmm11, xmmword [rsi + 0x60]
pxor xmm6, xmm11
movdqu xmm11, xmmword [rsi + 0x70]
pxor xmm7, xmm11
movdqu xmmword [rdx], xmm0
pshufb xmm0, xmm15
pxor xmm0, xmm8
movdqu xmmword [rdx + 0x10], xmm1
pshufb xmm1, xmm15
movdqu xmmword [rdx + 0x20], xmm2
pshufb xmm2, xmm15
movdqu xmmword [rdx + 0x30], xmm3
pshufb xmm3, xmm15
movdqu xmmword [rdx + 0x40], xmm4
pshufb xmm4, xmm15
movdqu xmmword [rdx + 0x50], xmm5
pshufb xmm5, xmm15
movdqu xmmword [rdx + 0x60], xmm6
pshufb xmm6, xmm15
movdqu xmmword [rdx + 0x70], xmm7
pshufb xmm7, xmm15
movdqu xmmword [rsp], xmm0
movdqu xmmword [rsp + 0x10], xmm1
movdqu xmmword [rsp + 0x20], xmm2
movdqu xmmword [rsp + 0x30], xmm3
movdqu xmmword [rsp + 0x40], xmm4
movdqu xmmword [rsp + 0x50], xmm5
movdqu xmmword [rsp + 0x60], xmm6
movdqu xmmword [rsp + 0x70], xmm7
lea rsi, [rsi + 0x80]
lea rdx, [rdx + 0x80]
cmp r9, 0x80
jb 0x5127b5
sub r9, 0x80
movdqu xmm0, xmmword [rsp + 0x80]
movdqu xmm1, xmmword [rsp + 0x90]
movdqu xmm2, xmmword [rsp + 0xa0]
movdqu xmm3, xmmword [rsp + 0xb0]
movdqu xmm4, xmmword [rsp + 0xc0]
movdqu xmm5, xmmword [rsp + 0xd0]
movdqu xmm6, xmmword [rsp + 0xe0]
movdqu xmm7, xmmword [rsp + 0xf0]
movdqu xmm11, xmmword [rsp]
pshufd xmm12, xmm11, 0x4e
pxor xmm12, xmm11
movdqu xmm8, xmmword [rdi]
movdqu xmm10, xmmword [rdi + 0x10]
movdqu xmm9, xmm8
pclmulqdq xmm10, xmm12, 0
pclmulqdq xmm8, xmm11, 0
pclmulqdq xmm9, xmm11, 0x11
movdqu xmm11, xmmword [rax + 0x10]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmm12, xmmword [rdi + 0x20]
movdqu xmm13, xmm12
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rsp + 0x10]
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pshufd xmm12, xmm11, 0x4e
pclmulqdq xmm13, xmm11, 0x11
pxor xmm11, xmm12
pxor xmm9, xmm13
movdqu xmm13, xmmword [rdi + 0x30]
pclmulqdq xmm11, xmm13, 0
pxor xmm10, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0x8c], r11d
movdqu xmm11, xmmword [rax + 0x20]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmm12, xmmword [rdi + 0x40]
movdqu xmm13, xmm12
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rsp + 0x20]
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pshufd xmm12, xmm11, 0x4e
pclmulqdq xmm13, xmm11, 0x11
pxor xmm11, xmm12
pxor xmm9, xmm13
movdqu xmm13, xmmword [rdi + 0x50]
pclmulqdq xmm11, xmm13, 0
pxor xmm10, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0x9c], r11d
movdqu xmm11, xmmword [rax + 0x30]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmm12, xmmword [rdi + 0x60]
movdqu xmm13, xmm12
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rsp + 0x30]
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pshufd xmm12, xmm11, 0x4e
pclmulqdq xmm13, xmm11, 0x11
pxor xmm11, xmm12
pxor xmm9, xmm13
movdqu xmm13, xmmword [rdi + 0x70]
pclmulqdq xmm11, xmm13, 0
pxor xmm10, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xac], r11d
movdqu xmm11, xmmword [rax + 0x40]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmm12, xmmword [rdi + 0x80]
movdqu xmm13, xmm12
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rsp + 0x40]
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pshufd xmm12, xmm11, 0x4e
pclmulqdq xmm13, xmm11, 0x11
pxor xmm11, xmm12
pxor xmm9, xmm13
movdqu xmm13, xmmword [rdi + 0x90]
pclmulqdq xmm11, xmm13, 0
pxor xmm10, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xbc], r11d
movdqu xmm11, xmmword [rax + 0x50]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmm12, xmmword [rdi + 0xa0]
movdqu xmm13, xmm12
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rsp + 0x50]
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pshufd xmm12, xmm11, 0x4e
pclmulqdq xmm13, xmm11, 0x11
pxor xmm11, xmm12
pxor xmm9, xmm13
movdqu xmm13, xmmword [rdi + 0xb0]
pclmulqdq xmm11, xmm13, 0
pxor xmm10, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xcc], r11d
movdqu xmm11, xmmword [rax + 0x60]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmm12, xmmword [rdi + 0xc0]
movdqu xmm13, xmm12
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rsp + 0x60]
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pshufd xmm12, xmm11, 0x4e
pclmulqdq xmm13, xmm11, 0x11
pxor xmm11, xmm12
pxor xmm9, xmm13
movdqu xmm13, xmmword [rdi + 0xd0]
pclmulqdq xmm11, xmm13, 0
pxor xmm10, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xdc], r11d
movdqu xmm11, xmmword [rax + 0x70]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
movdqu xmm12, xmmword [rdi + 0xe0]
movdqu xmm13, xmm12
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rsp + 0x70]
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pshufd xmm12, xmm11, 0x4e
pclmulqdq xmm13, xmm11, 0x11
pxor xmm11, xmm12
pxor xmm9, xmm13
movdqu xmm13, xmmword [rdi + 0xf0]
pclmulqdq xmm11, xmm13, 0
pxor xmm10, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xec], r11d
movdqu xmm11, xmmword [rax + 0x80]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0xfc], r11d
pxor xmm10, xmm8
pxor xmm10, xmm9
movdqu xmm11, xmm10
psrldq xmm10, 8
pslldq xmm11, 8
pxor xmm9, xmm10
pxor xmm8, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
movdqu xmm11, xmmword [rax + 0x90]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
pxor xmm8, xmm9
movdqu xmm11, xmmword [rax + 0xa0]
cmp r13, 0xc
jb 0x512690
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xb0]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xc0]
je 0x512690
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xd0]
aesenc xmm0, xmm11
aesenc xmm1, xmm11
aesenc xmm2, xmm11
aesenc xmm3, xmm11
aesenc xmm4, xmm11
aesenc xmm5, xmm11
aesenc xmm6, xmm11
aesenc xmm7, xmm11
movdqu xmm11, xmmword [rax + 0xe0]
aesenclast xmm0, xmm11
aesenclast xmm1, xmm11
aesenclast xmm2, xmm11
aesenclast xmm3, xmm11
aesenclast xmm4, xmm11
aesenclast xmm5, xmm11
aesenclast xmm6, xmm11
aesenclast xmm7, xmm11
movdqu xmm11, xmmword [rsi]
pxor xmm0, xmm11
movdqu xmm11, xmmword [rsi + 0x10]
pxor xmm1, xmm11
movdqu xmm11, xmmword [rsi + 0x20]
pxor xmm2, xmm11
movdqu xmm11, xmmword [rsi + 0x30]
pxor xmm3, xmm11
movdqu xmm11, xmmword [rsi + 0x40]
pxor xmm4, xmm11
movdqu xmm11, xmmword [rsi + 0x50]
pxor xmm5, xmm11
movdqu xmm11, xmmword [rsi + 0x60]
pxor xmm6, xmm11
movdqu xmm11, xmmword [rsi + 0x70]
pxor xmm7, xmm11
movdqu xmmword [rdx], xmm0
pshufb xmm0, xmm15
pxor xmm0, xmm8
movdqu xmmword [rdx + 0x10], xmm1
pshufb xmm1, xmm15
movdqu xmmword [rdx + 0x20], xmm2
pshufb xmm2, xmm15
movdqu xmmword [rdx + 0x30], xmm3
pshufb xmm3, xmm15
movdqu xmmword [rdx + 0x40], xmm4
pshufb xmm4, xmm15
movdqu xmmword [rdx + 0x50], xmm5
pshufb xmm5, xmm15
movdqu xmmword [rdx + 0x60], xmm6
pshufb xmm6, xmm15
movdqu xmmword [rdx + 0x70], xmm7
pshufb xmm7, xmm15
movdqu xmmword [rsp], xmm0
movdqu xmmword [rsp + 0x10], xmm1
movdqu xmmword [rsp + 0x20], xmm2
movdqu xmmword [rsp + 0x30], xmm3
movdqu xmmword [rsp + 0x40], xmm4
movdqu xmmword [rsp + 0x50], xmm5
movdqu xmmword [rsp + 0x60], xmm6
movdqu xmmword [rsp + 0x70], xmm7
lea rsi, [rsi + 0x80]
lea rdx, [rdx + 0x80]
jmp 0x512010
movdqu xmm11, xmmword [rsp]
movdqu xmm8, xmmword [rdi]
movdqu xmm10, xmmword [rdi + 0x10]
movdqu xmm9, xmm8
pshufd xmm12, xmm11, 0x4e
pxor xmm12, xmm11
pclmulqdq xmm8, xmm11, 0
pclmulqdq xmm9, xmm11, 0x11
pclmulqdq xmm10, xmm12, 0
movdqu xmm11, xmmword [rsp + 0x10]
movdqu xmm12, xmmword [rdi + 0x20]
movdqu xmm13, xmm12
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pclmulqdq xmm13, xmm11, 0x11
pxor xmm9, xmm13
pshufd xmm12, xmm11, 0x4e
pxor xmm11, xmm12
movdqu xmm12, xmmword [rdi + 0x30]
pclmulqdq xmm12, xmm11, 0
pxor xmm10, xmm12
movdqu xmm11, xmmword [rsp + 0x20]
movdqu xmm12, xmmword [rdi + 0x40]
movdqu xmm13, xmm12
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pclmulqdq xmm13, xmm11, 0x11
pxor xmm9, xmm13
pshufd xmm12, xmm11, 0x4e
pxor xmm11, xmm12
movdqu xmm12, xmmword [rdi + 0x50]
pclmulqdq xmm12, xmm11, 0
pxor xmm10, xmm12
movdqu xmm11, xmmword [rsp + 0x30]
movdqu xmm12, xmmword [rdi + 0x60]
movdqu xmm13, xmm12
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pclmulqdq xmm13, xmm11, 0x11
pxor xmm9, xmm13
pshufd xmm12, xmm11, 0x4e
pxor xmm11, xmm12
movdqu xmm12, xmmword [rdi + 0x70]
pclmulqdq xmm12, xmm11, 0
pxor xmm10, xmm12
movdqu xmm11, xmmword [rsp + 0x40]
movdqu xmm12, xmmword [rdi + 0x80]
movdqu xmm13, xmm12
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pclmulqdq xmm13, xmm11, 0x11
pxor xmm9, xmm13
pshufd xmm12, xmm11, 0x4e
pxor xmm11, xmm12
movdqu xmm12, xmmword [rdi + 0x90]
pclmulqdq xmm12, xmm11, 0
pxor xmm10, xmm12
movdqu xmm11, xmmword [rsp + 0x50]
movdqu xmm12, xmmword [rdi + 0xa0]
movdqu xmm13, xmm12
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pclmulqdq xmm13, xmm11, 0x11
pxor xmm9, xmm13
pshufd xmm12, xmm11, 0x4e
pxor xmm11, xmm12
movdqu xmm12, xmmword [rdi + 0xb0]
pclmulqdq xmm12, xmm11, 0
pxor xmm10, xmm12
movdqu xmm11, xmmword [rsp + 0x60]
movdqu xmm12, xmmword [rdi + 0xc0]
movdqu xmm13, xmm12
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pclmulqdq xmm13, xmm11, 0x11
pxor xmm9, xmm13
pshufd xmm12, xmm11, 0x4e
pxor xmm11, xmm12
movdqu xmm12, xmmword [rdi + 0xd0]
pclmulqdq xmm12, xmm11, 0
pxor xmm10, xmm12
movdqu xmm11, xmmword [rsp + 0x70]
movdqu xmm12, xmmword [rdi + 0xe0]
movdqu xmm13, xmm12
pclmulqdq xmm12, xmm11, 0
pxor xmm8, xmm12
pclmulqdq xmm13, xmm11, 0x11
pxor xmm9, xmm13
pshufd xmm12, xmm11, 0x4e
pxor xmm11, xmm12
movdqu xmm12, xmmword [rdi + 0xf0]
pclmulqdq xmm12, xmm11, 0
pxor xmm10, xmm12
pxor xmm10, xmm8
pxor xmm10, xmm9
movdqu xmm11, xmm10
psrldq xmm10, 8
pslldq xmm11, 8
pxor xmm9, xmm10
pxor xmm8, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
pxor xmm8, xmm9
test r9, r9
je 0x512d77
sub r10, 7
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movdqu xmm3, xmmword [rax + 0x30]
movdqu xmm4, xmmword [rax + 0x40]
movdqu xmm5, xmmword [rax + 0x50]
movdqu xmm6, xmmword [rax + 0x60]
movdqu xmm7, xmmword [rax + 0x70]
movdqu xmm13, xmmword [rdi + 0xe0]
cmp r9, 0x10
jb 0x512bf6
sub r9, 0x10
movdqu xmm0, xmmword [rsp + 0x80]
add r10d, 1
mov r11d, r10d
xor r11d, r12d
bswap r11d
mov dword [rsp + 0x8c], r11d
aesenc xmm0, xmm1
aesenc xmm0, xmm2
aesenc xmm0, xmm3
aesenc xmm0, xmm4
aesenc xmm0, xmm5
aesenc xmm0, xmm6
aesenc xmm0, xmm7
movdqu xmm11, xmmword [rax + 0x80]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0x90]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xa0]
cmp r13, 0xc
jb 0x512b3f
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xb0]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xc0]
je 0x512b3f
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xd0]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xe0]
aesenclast xmm0, xmm11
movdqu xmm11, xmmword [rsi]
pxor xmm0, xmm11
movdqu xmmword [rdx], xmm0
pshufb xmm0, xmm15
pxor xmm0, xmm8
movdqu xmm8, xmm13
movdqu xmm9, xmm13
movdqu xmm10, xmmword [rdi + 0xf0]
pshufd xmm11, xmm0, 0x4e
pxor xmm11, xmm0
pclmulqdq xmm8, xmm0, 0
pclmulqdq xmm9, xmm0, 0x11
pclmulqdq xmm10, xmm11, 0
pxor xmm10, xmm8
pxor xmm10, xmm9
movdqu xmm11, xmm10
psrldq xmm10, 8
pslldq xmm11, 8
pxor xmm9, xmm10
pxor xmm8, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
pxor xmm8, xmm9
lea rsi, [rsi + 0x10]
lea rdx, [rdx + 0x10]
jmp 0x512a85
test r9, r9
je 0x512d77
movdqu xmm0, xmmword [rsp + 0x80]
aesenc xmm0, xmm1
aesenc xmm0, xmm2
aesenc xmm0, xmm3
aesenc xmm0, xmm4
aesenc xmm0, xmm5
aesenc xmm0, xmm6
aesenc xmm0, xmm7
movdqu xmm11, xmmword [rax + 0x80]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0x90]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xa0]
cmp r13, 0xc
jb 0x512c96
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xb0]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xc0]
je 0x512c96
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xd0]
aesenc xmm0, xmm11
movdqu xmm11, xmmword [rax + 0xe0]
aesenclast xmm0, xmm11
movdqu xmm11, xmm0
lea rsi, [rsi + r9 - 1]
mov r11, r9
shl r11, 4
lea r10, [0x0075c5c0]
movdqu xmm12, xmmword [r10 + r11 - 0x10]
pxor xmm0, xmm0
pslldq xmm0, 1
pinsrb xmm0, byte [rsi], 0
lea rsi, [rsi - 1]
dec r9
jne 0x512cbf
pxor xmm0, xmm11
pand xmm0, xmm12
movdqu xmmword [rdx], xmm0
pshufb xmm0, xmm15
pxor xmm0, xmm8
movdqu xmm8, xmm13
movdqu xmm9, xmm13
movdqu xmm10, xmmword [rdi + 0xf0]
pshufd xmm11, xmm0, 0x4e
pxor xmm11, xmm0
pclmulqdq xmm8, xmm0, 0
pclmulqdq xmm9, xmm0, 0x11
pclmulqdq xmm10, xmm11, 0
pxor xmm10, xmm8
pxor xmm10, xmm9
movdqu xmm11, xmm10
psrldq xmm10, 8
pslldq xmm11, 8
pxor xmm9, xmm10
pxor xmm8, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
movdqu xmm11, xmm14
pclmulqdq xmm11, xmm8, 1
pshufd xmm8, xmm8, 0x4e
pxor xmm8, xmm11
pxor xmm8, xmm9
movdqu xmmword [r8], xmm8
add rsp, 0x100
pop rbp
ret
call sym.runtime.morestack_noctxt.abi0
jmp sym.crypto_aes.gcmAesEnc.abi0