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

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
mov r8, qword [rsp + 0x28]
cmp rdx, 1
jne 0x140277430
movups xmm2, xmmword [r8]
movups xmm3, xmmword [rdi]
mov edx, dword [rcx + 0xf0]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec edx
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x1402773f3
aesenclast xmm2, xmm1
pxor xmm0, xmm0
pxor xmm1, xmm1
xorps xmm2, xmm3
pxor xmm3, xmm3
movups xmmword [rsi], xmm2
xorps xmm2, xmm2
jmp 0x140277dbf
lea r11, [rsp]
push rbp
sub rsp, 0x120
and rsp, 0xfffffffffffffff0
movaps xmmword [r11 - 0xa8], xmm6
movaps xmmword [r11 - 0x98], xmm7
movaps xmmword [r11 - 0x88], xmm8
movaps xmmword [r11 - 0x78], xmm9
movaps xmmword [r11 - 0x68], xmm10
movaps xmmword [r11 - 0x58], xmm11
movaps xmmword [r11 - 0x48], xmm12
movaps xmmword [r11 - 0x38], xmm13
movaps xmmword [r11 - 0x28], xmm14
movaps xmmword [r11 - 0x18], xmm15
movdqu xmm2, xmmword [r8]
movdqu xmm0, xmmword [rcx]
mov r8d, dword [r8 + 0xc]
pxor xmm2, xmm0
mov ebp, dword [rcx + 0xc]
movdqa xmmword [rsp], xmm2
bswap r8d
movdqa xmm3, xmm2
movdqa xmm4, xmm2
movdqa xmm5, xmm2
movdqa xmmword [rsp + 0x40], xmm2
movdqa xmmword [rsp + 0x50], xmm2
movdqa xmmword [rsp + 0x60], xmm2
mov r10, rdx
movdqa xmmword [rsp + 0x70], xmm2
lea rax, [r8 + 1]
lea rdx, [r8 + 2]
bswap eax
bswap edx
xor eax, ebp
xor edx, ebp
pinsrd xmm3, eax, 3
lea rax, [r8 + 3]
movdqa xmmword [rsp + 0x10], xmm3
pinsrd xmm4, edx, 3
bswap eax
mov rdx, r10
lea r10, [r8 + 4]
movdqa xmmword [rsp + 0x20], xmm4
xor eax, ebp
bswap r10d
pinsrd xmm5, eax, 3
xor r10d, ebp
movdqa xmmword [rsp + 0x30], xmm5
lea r9, [r8 + 5]
mov dword [rsp + 0x4c], r10d
bswap r9d
lea r10, [r8 + 6]
mov eax, dword [rcx + 0xf0]
xor r9d, ebp
bswap r10d
mov dword [rsp + 0x5c], r9d
xor r10d, ebp
lea r9, [r8 + 7]
mov dword [rsp + 0x6c], r10d
bswap r9d
lea r10, [0x14056a168]
mov r10d, dword [r10 + 4]
xor r9d, ebp
and r10d, 0x4400000
mov dword [rsp + 0x7c], r9d
movups xmm1, xmmword [rcx + 0x10]
movdqa xmm6, xmmword [rsp + 0x40]
movdqa xmm7, xmmword [rsp + 0x50]
cmp rdx, 8
jb 0x140277b3a
sub rdx, 6
cmp r10d, 0x400000
je 0x140277590
lea rcx, [rcx + 0x80]
sub rdx, 2
jmp 0x140277720
shl eax, 4
mov r10d, 0x30
bswap ebp
lea rcx, [rcx + rax + 0x20]
sub r10, rax
jmp 0x1402775b0
add r8d, 6
movups xmm0, xmmword [rcx + r10 - 0x30]
aesenc xmm2, xmm1
mov eax, r8d
xor eax, ebp
aesenc xmm3, xmm1
movbe dword [rsp + 0xc], eax
lea eax, [r8 + 1]
aesenc xmm4, xmm1
xor eax, ebp
movbe dword [rsp + 0x1c], eax
aesenc xmm5, xmm1
lea eax, [r8 + 2]
xor eax, ebp
aesenc xmm6, xmm1
movbe dword [rsp + 0x2c], eax
lea eax, [r8 + 3]
aesenc xmm7, xmm1
movups xmm1, xmmword [rcx + r10 - 0x20]
xor eax, ebp
aesenc xmm2, xmm0
movbe dword [rsp + 0x3c], eax
lea eax, [r8 + 4]
aesenc xmm3, xmm0
xor eax, ebp
movbe dword [rsp + 0x4c], eax
aesenc xmm4, xmm0
lea eax, [r8 + 5]
xor eax, ebp
aesenc xmm5, xmm0
movbe dword [rsp + 0x5c], eax
mov rax, r10
aesenc xmm6, xmm0
aesenc xmm7, xmm0
movups xmm0, xmmword [rcx + r10 - 0x10]
call fcn.140277210
movdqu xmm8, xmmword [rdi]
movdqu xmm9, xmmword [rdi + 0x10]
movdqu xmm10, xmmword [rdi + 0x20]
movdqu xmm11, xmmword [rdi + 0x30]
movdqu xmm12, xmmword [rdi + 0x40]
movdqu xmm13, xmmword [rdi + 0x50]
lea rdi, [rdi + 0x60]
movups xmm1, xmmword [rcx + r10 - 0x40]
pxor xmm8, xmm2
movaps xmm2, xmmword [rsp]
pxor xmm9, xmm3
movaps xmm3, xmmword [rsp + 0x10]
pxor xmm10, xmm4
movaps xmm4, xmmword [rsp + 0x20]
pxor xmm11, xmm5
movaps xmm5, xmmword [rsp + 0x30]
pxor xmm12, xmm6
movaps xmm6, xmmword [rsp + 0x40]
pxor xmm13, xmm7
movaps xmm7, xmmword [rsp + 0x50]
movdqu xmmword [rsi], xmm8
movdqu xmmword [rsi + 0x10], xmm9
movdqu xmmword [rsi + 0x20], xmm10
movdqu xmmword [rsi + 0x30], xmm11
movdqu xmmword [rsi + 0x40], xmm12
movdqu xmmword [rsi + 0x50], xmm13
lea rsi, [rsi + 0x60]
sub rdx, 6
jae 0x1402775b0
add rdx, 6
je 0x140277d02
lea eax, [r10 - 0x30]
lea rcx, [rcx + r10 - 0x50]
neg eax
shr eax, 4
jmp 0x140277b3a
add r8d, 8
movdqa xmm8, xmmword [rsp + 0x60]
aesenc xmm2, xmm1
mov r9d, r8d
movdqa xmm9, xmmword [rsp + 0x70]
aesenc xmm3, xmm1
bswap r9d
movups xmm0, xmmword [rcx - 0x60]
aesenc xmm4, xmm1
xor r9d, ebp
nop
aesenc xmm5, xmm1
mov dword [rsp + 0xc], r9d
lea r9, [r8 + 1]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx - 0x50]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
xor r9d, ebp
nop
aesenc xmm4, xmm0
aesenc xmm5, xmm0
mov dword [rsp + 0x1c], r9d
lea r9, [r8 + 2]
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx - 0x40]
bswap r9d
aesenc xmm2, xmm1
aesenc xmm3, xmm1
xor r9d, ebp
nop
aesenc xmm4, xmm1
aesenc xmm5, xmm1
mov dword [rsp + 0x2c], r9d
lea r9, [r8 + 3]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx - 0x30]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
xor r9d, ebp
nop
aesenc xmm4, xmm0
aesenc xmm5, xmm0
mov dword [rsp + 0x3c], r9d
lea r9, [r8 + 4]
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx - 0x20]
bswap r9d
aesenc xmm2, xmm1
aesenc xmm3, xmm1
xor r9d, ebp
nop
aesenc xmm4, xmm1
aesenc xmm5, xmm1
mov dword [rsp + 0x4c], r9d
lea r9, [r8 + 5]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx - 0x10]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
xor r9d, ebp
nop
aesenc xmm4, xmm0
aesenc xmm5, xmm0
mov dword [rsp + 0x5c], r9d
lea r9, [r8 + 6]
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx]
bswap r9d
aesenc xmm2, xmm1
aesenc xmm3, xmm1
xor r9d, ebp
nop
aesenc xmm4, xmm1
aesenc xmm5, xmm1
mov dword [rsp + 0x6c], r9d
lea r9, [r8 + 7]
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx + 0x10]
bswap r9d
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
xor r9d, ebp
movdqu xmm10, xmmword [rdi]
aesenc xmm5, xmm0
mov dword [rsp + 0x7c], r9d
cmp eax, 0xb
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx + 0x20]
jb 0x140277a00
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx + 0x30]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
aesenc xmm5, xmm0
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx + 0x40]
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movups xmm1, xmmword [rcx + 0x50]
aesenc xmm2, xmm0
aesenc xmm3, xmm0
aesenc xmm4, xmm0
aesenc xmm5, xmm0
aesenc xmm6, xmm0
aesenc xmm7, xmm0
aesenc xmm8, xmm0
aesenc xmm9, xmm0
movups xmm0, xmmword [rcx + 0x60]
jmp 0x140277a00
movdqu xmm11, xmmword [rdi + 0x10]
pxor xmm10, xmm0
movdqu xmm12, xmmword [rdi + 0x20]
pxor xmm11, xmm0
movdqu xmm13, xmmword [rdi + 0x30]
pxor xmm12, xmm0
movdqu xmm14, xmmword [rdi + 0x40]
pxor xmm13, xmm0
movdqu xmm15, xmmword [rdi + 0x50]
pxor xmm14, xmm0
pxor xmm15, xmm0
aesenc xmm2, xmm1
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
aesenc xmm6, xmm1
aesenc xmm7, xmm1
aesenc xmm8, xmm1
aesenc xmm9, xmm1
movdqu xmm1, xmmword [rdi + 0x60]
lea rdi, [rdi + 0x80]
aesenclast xmm2, xmm10
pxor xmm1, xmm0
movdqu xmm10, xmmword [rdi - 0x10]
aesenclast xmm3, xmm11
pxor xmm10, xmm0
movdqa xmm11, xmmword [rsp]
aesenclast xmm4, xmm12
aesenclast xmm5, xmm13
movdqa xmm12, xmmword [rsp + 0x10]
movdqa xmm13, xmmword [rsp + 0x20]
aesenclast xmm6, xmm14
aesenclast xmm7, xmm15
movdqa xmm14, xmmword [rsp + 0x30]
movdqa xmm15, xmmword [rsp + 0x40]
aesenclast xmm8, xmm1
movdqa xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rcx - 0x70]
aesenclast xmm9, xmm10
movups xmmword [rsi], xmm2
movdqa xmm2, xmm11
movups xmmword [rsi + 0x10], xmm3
movdqa xmm3, xmm12
movups xmmword [rsi + 0x20], xmm4
movdqa xmm4, xmm13
movups xmmword [rsi + 0x30], xmm5
movdqa xmm5, xmm14
movups xmmword [rsi + 0x40], xmm6
movdqa xmm6, xmm15
movups xmmword [rsi + 0x50], xmm7
movdqa xmm7, xmm0
movups xmmword [rsi + 0x60], xmm8
movups xmmword [rsi + 0x70], xmm9
lea rsi, [rsi + 0x80]
sub rdx, 8
jae 0x140277720
add rdx, 8
je 0x140277d02
lea rcx, [rcx - 0x80]
lea rcx, [rcx + 0x10]
cmp rdx, 4
jb 0x140277ca0
je 0x140277c20
shl eax, 4
movdqa xmm8, xmmword [rsp + 0x60]
pxor xmm9, xmm9
movups xmm0, xmmword [rcx + 0x10]
aesenc xmm2, xmm1
aesenc xmm3, xmm1
lea rcx, [rax + rcx + 0x10]
neg rax
aesenc xmm4, xmm1
add rax, 0x10
movups xmm10, xmmword [rdi]
aesenc xmm5, xmm1
aesenc xmm6, xmm1
movups xmm11, xmmword [rdi + 0x10]
movups xmm12, xmmword [rdi + 0x20]
aesenc xmm7, xmm1
aesenc xmm8, xmm1
call fcn.14027731a
movdqu xmm13, xmmword [rdi + 0x30]
pxor xmm2, xmm10
movdqu xmm10, xmmword [rdi + 0x40]
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm6, xmm10
movdqu xmmword [rsi + 0x30], xmm5
movdqu xmmword [rsi + 0x40], xmm6
cmp rdx, 6
jb 0x140277d02
movups xmm11, xmmword [rdi + 0x50]
xorps xmm7, xmm11
movups xmmword [rsi + 0x50], xmm7
je 0x140277d02
movups xmm12, xmmword [rdi + 0x60]
xorps xmm8, xmm12
movups xmmword [rsi + 0x60], xmm8
jmp 0x140277d02
aesenc xmm2, xmm1
lea rcx, [rcx + 0x10]
dec eax
aesenc xmm3, xmm1
aesenc xmm4, xmm1
aesenc xmm5, xmm1
movups xmm1, xmmword [rcx]
jne 0x140277c20
aesenclast xmm2, xmm1
aesenclast xmm3, xmm1
movups xmm10, xmmword [rdi]
movups xmm11, xmmword [rdi + 0x10]
aesenclast xmm4, xmm1
aesenclast xmm5, xmm1
movups xmm12, xmmword [rdi + 0x20]
movups xmm13, xmmword [rdi + 0x30]
xorps xmm2, xmm10
movups xmmword [rsi], xmm2
xorps xmm3, xmm11
movups xmmword [rsi + 0x10], xmm3
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x30], xmm5
jmp 0x140277d02
aesenc xmm2, xmm1
lea rcx, [rcx + 0x10]
dec eax
aesenc xmm3, xmm1
aesenc xmm4, xmm1
movups xmm1, xmmword [rcx]
jne 0x140277ca0
aesenclast xmm2, xmm1
aesenclast xmm3, xmm1
aesenclast xmm4, xmm1
movups xmm10, xmmword [rdi]
xorps xmm2, xmm10
movups xmmword [rsi], xmm2
cmp rdx, 2
jb 0x140277d02
movups xmm11, xmmword [rdi + 0x10]
xorps xmm3, xmm11
movups xmmword [rsi + 0x10], xmm3
je 0x140277d02
movups xmm12, xmmword [rdi + 0x20]
xorps xmm4, xmm12
movups xmmword [rsi + 0x20], xmm4
xorps xmm0, xmm0
xor ebp, ebp
pxor xmm1, xmm1
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
movaps xmm6, xmmword [r11 - 0xa8]
movaps xmmword [r11 - 0xa8], xmm0
movaps xmm7, xmmword [r11 - 0x98]
movaps xmmword [r11 - 0x98], xmm0
movaps xmm8, xmmword [r11 - 0x88]
movaps xmmword [r11 - 0x88], xmm0
movaps xmm9, xmmword [r11 - 0x78]
movaps xmmword [r11 - 0x78], xmm0
movaps xmm10, xmmword [r11 - 0x68]
movaps xmmword [r11 - 0x68], xmm0
movaps xmm11, xmmword [r11 - 0x58]
movaps xmmword [r11 - 0x58], xmm0
movaps xmm12, xmmword [r11 - 0x48]
movaps xmmword [r11 - 0x48], xmm0
movaps xmm13, xmmword [r11 - 0x38]
movaps xmmword [r11 - 0x38], xmm0
movaps xmm14, xmmword [r11 - 0x28]
movaps xmmword [r11 - 0x28], xmm0
movaps xmm15, xmmword [r11 - 0x18]
movaps xmmword [r11 - 0x18], xmm0
movaps xmmword [rsp], xmm0
movaps xmmword [rsp + 0x10], xmm0
movaps xmmword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm0
mov rbp, qword [r11 - 8]
lea rsp, [r11]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret