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

Disassembly:
sub rsp, 0x248
vmovups xmmword [rsp + 0x1a0], xmm6
vmovups xmmword [rsp + 0x1b0], xmm7
vmovups xmmword [rsp + 0x1c0], xmm8
vmovups xmmword [rsp + 0x1d0], xmm9
vmovups xmmword [rsp + 0x1e0], xmm10
vmovups xmmword [rsp + 0x1f0], xmm11
vmovups xmmword [rsp + 0x200], xmm12
vmovups xmmword [rsp + 0x210], xmm13
vmovups xmmword [rsp + 0x220], xmm14
vmovups xmmword [rsp + 0x230], xmm15
vpxor xmm0, xmm0, xmm0
xor eax, eax
vmovdqu xmm15, xmm0
vmovdqu ymm7, ymmword [rcx + 0x120]
vmovdqu ymm2, ymmword [rdx]
vmovdqu ymm0, ymm15
vmovdqu ymm4, ymmword [rdx + 0x20]
vmovdqu ymm6, ymmword [rcx + 0x160]
vpxor ymm1, ymm2, ymm7
vmovdqu ymm8, ymmword [rcx + 0x100]
mov r8d, dword [rcx + 0x194]
vaesenc ymm1, ymm1, ymm15
mov r9d, dword [rcx + 0x190]
mov r10d, dword [rcx + 0x188]
vmovdqu ymmword [rsp + 0x20], ymm7
mov r11d, r8d
vmovdqu ymmword [rsp + 0x140], ymm7
vmovdqu ymm7, ymmword [rdx + 0x40]
vmovd xmm5, r9d
not r11d
vmovdqu ymmword [rsp + 0xc0], ymm6
vmovdqu ymmword [rsp + 0xa0], ymm7
vmovdqu ymmword [rsp + 0x100], ymm6
vmovdqu ymmword [rsp + 0x160], ymm8
vpxor ymm1, ymm4, ymm1
vaesenc ymm1, ymm1, ymm15
vmovdqu ymmword [rsp + 0x180], ymm15
vpxor ymm1, ymm1, ymm7
vmovdqu ymm7, ymmword [rdx + 0x60]
vaesenc ymm1, ymm1, ymm15
vmovdqu ymmword [rsp + 0x80], ymm7
vpxor ymm1, ymm1, ymm7
vmovdqu ymm7, ymmword [rdx + 0x80]
vaesenc ymm1, ymm1, ymm15
vpxor ymm3, ymm8, ymm1
vpxor ymm1, ymm6, ymm7
vmovdqu ymm6, ymmword [rdx + 0xa0]
vmovdqu ymm8, ymm7
vaesenc ymm1, ymm1, ymm15
vmovdqu ymmword [rsp], ymm3
vmovdqu ymm3, ymmword [rcx + 0x140]
vmovdqu ymmword [rsp + 0x60], ymm6
vmovdqu ymmword [rsp + 0x120], ymm3
vpxor ymm1, ymm1, ymm6
vmovdqu ymm6, ymmword [rdx + 0xc0]
vaesenc ymm1, ymm1, ymm15
vmovdqu ymmword [rsp + 0x40], ymm6
vpxor ymm1, ymm1, ymm6
vmovdqu ymm6, ymmword [rdx + 0xe0]
mov edx, dword [rcx + 0x18c]
vaesenc ymm1, ymm1, ymm15
vpxor ymm1, ymm6, ymm1
vaesenc ymm1, ymm1, ymm15
vpxor ymm12, ymm1, ymm3
vpinsrd xmm3, xmm5, r11d, 1
vmovd xmm5, r10d
vpinsrd xmm1, xmm5, edx, 1
vpunpcklqdq xmm1, xmm1, xmm3
vpermq ymm3, ymm1, 0x44
vmovdqu ymmword [rsp + 0xe0], ymm3
vaesenc ymm1, ymm2, ymm0
vpshufd ymm1, ymm1, 0x39
vpxor ymm1, ymm6, ymm1
test eax, eax
je 0x140182770
vaesenc ymm3, ymm4, ymm0
vpxor ymm5, ymm1, ymmword [rsp]
vaesenc ymm5, ymm5, ymm0
vpshufd ymm3, ymm3, 0x39
vpxor ymm3, ymm1, ymm3
cmp eax, 1
jne 0x14018226b
mov r11d, r10d
vmovd xmm7, edx
not r11d
vpinsrd xmm4, xmm7, r11d, 1
vmovd xmm7, r8d
vpinsrd xmm2, xmm7, r9d, 1
vpunpcklqdq xmm2, xmm2, xmm4
vpermq ymm2, ymm2, 0x44
vpxor ymm3, ymm3, ymm2
vmovdqu ymm4, ymmword [rsp + 0xa0]
vpxor ymm7, ymm3, ymm5
vaesenc ymm8, ymm8, ymm0
vaesenc ymm5, ymm4, ymm0
vmovdqu ymm4, ymmword [rsp + 0x80]
vaesenc ymm7, ymm7, ymm0
vaesenc ymm9, ymm4, ymm0
vmovdqu ymm4, ymmword [rsp + 0x60]
vaesenc ymm2, ymm6, ymm0
vaesenc ymm14, ymm4, ymm0
vmovdqu ymm4, ymmword [rsp + 0x40]
vpshufd ymm8, ymm8, 0x39
vaesenc ymm4, ymm4, ymm0
vpshufd ymm5, ymm5, 0x39
vpxor ymm5, ymm3, ymm5
vpshufd ymm9, ymm9, 0x39
vpxor ymm7, ymm5, ymm7
vaesenc ymm7, ymm7, ymm0
vpxor ymm9, ymm5, ymm9
vpshufd ymm2, ymm2, 0x39
vpxor ymm8, ymm9, ymm8
vpshufd ymm14, ymm14, 0x39
vpxor ymm10, ymm12, ymm8
vpxor ymm14, ymm8, ymm14
vaesenc ymm10, ymm10, ymm0
vpshufd ymm4, ymm4, 0x39
vpxor ymm13, ymm14, ymm4
vpxor ymm11, ymm13, ymm2
vpxor ymm7, ymm9, ymm7
vaesenc ymm7, ymm7, ymm0
vpxor ymm7, ymm7, ymmword [rsp + 0xc0]
vpxor ymm10, ymm14, ymm10
vaesenc ymm10, ymm10, ymm0
vpxor ymm10, ymm13, ymm10
vaesenc ymm10, ymm10, ymm0
cmp eax, 2
je 0x1401827a0
vpalignr ymm2, ymm11, ymm13, 4
vpxor ymm10, ymm11, ymm10
add eax, 1
vaesenc ymm10, ymm10, ymm0
vpxor ymm1, ymm1, ymm2
vpxor ymm15, ymm1, ymm7
vpalignr ymm2, ymm1, ymm11, 4
vaesenc ymm15, ymm15, ymm0
vpxor ymm3, ymm3, ymm2
vpxor ymm10, ymm10, ymmword [rsp + 0x20]
vpalignr ymm2, ymm3, ymm1, 4
vaesenc ymm1, ymm1, ymm0
vpxor ymm5, ymm5, ymm2
vpalignr ymm2, ymm5, ymm3, 4
vpxor ymm9, ymm9, ymm2
vpalignr ymm2, ymm9, ymm5, 4
vpxor ymm15, ymm3, ymm15
vpxor ymm8, ymm8, ymm2
vaesenc ymm15, ymm15, ymm0
vpalignr ymm2, ymm8, ymm9, 4
vaesenc ymm3, ymm3, ymm0
vpxor ymm6, ymm14, ymm2
vpshufd ymm1, ymm1, 0x39
vpalignr ymm2, ymm6, ymm8, 4
vpxor ymm4, ymm13, ymm2
vaesenc ymm13, ymm4, ymm0
vpalignr ymm2, ymm4, ymm6, 4
vpxor ymm2, ymm11, ymm2
vaesenc ymm14, ymm2, ymm0
vpxor ymm15, ymm5, ymm15
vpxor ymm1, ymm2, ymm1
vaesenc ymm15, ymm15, ymm0
vpshufd ymm3, ymm3, 0x39
vaesenc ymm5, ymm5, ymm0
vpxor ymm3, ymm1, ymm3
vpshufd ymm13, ymm13, 0x39
vpshufd ymm14, ymm14, 0x39
vpxor ymm15, ymm9, ymm15
vaesenc ymm15, ymm15, ymm0
vpshufd ymm5, ymm5, 0x39
vaesenc ymm9, ymm9, ymm0
vpxor ymm5, ymm3, ymm5
vpxor ymm15, ymm12, ymm15
vpxor ymm12, ymm8, ymm10
vaesenc ymm12, ymm12, ymm0
vpxor ymm11, ymm1, ymm15
vpshufd ymm9, ymm9, 0x39
vaesenc ymm11, ymm11, ymm0
vpxor ymm9, ymm5, ymm9
vaesenc ymm8, ymm8, ymm0
vpxor ymm12, ymm6, ymm12
vaesenc ymm12, ymm12, ymm0
vpxor ymm11, ymm3, ymm11
vaesenc ymm11, ymm11, ymm0
vpshufd ymm8, ymm8, 0x39
vaesenc ymm6, ymm6, ymm0
vpxor ymm8, ymm9, ymm8
vpxor ymm12, ymm4, ymm12
vaesenc ymm12, ymm12, ymm0
vpxor ymm11, ymm5, ymm11
vaesenc ymm11, ymm11, ymm0
vpshufd ymm6, ymm6, 0x39
vpxor ymm6, ymm8, ymm6
vpxor ymm13, ymm6, ymm13
vpxor ymm14, ymm13, ymm14
vpxor ymm12, ymm2, ymm12
vpalignr ymm2, ymm14, ymm13, 4
vaesenc ymm12, ymm12, ymm0
vpxor ymm11, ymm9, ymm11
vpxor ymm1, ymm1, ymm2
vaesenc ymm11, ymm11, ymm0
vmovdqu ymm2, ymm1
vpxor ymm12, ymm12, ymmword [rsp]
vpxor ymm11, ymm10, ymm11
vpxor ymm10, ymm8, ymm12
vaesenc ymm10, ymm10, ymm0
vmovdqu ymmword [rsp + 0x20], ymm11
vpxor ymm10, ymm6, ymm10
vaesenc ymm10, ymm10, ymm0
vpxor ymm4, ymm13, ymm10
vpxor ymm10, ymm1, ymm11
vaesenc ymm4, ymm4, ymm0
vaesenc ymm10, ymm10, ymm0
vpxor ymm4, ymm14, ymm4
vaesenc ymm4, ymm4, ymm0
vpxor ymm7, ymm7, ymm4
vpalignr ymm4, ymm1, ymm14, 4
vmovdqu ymmword [rsp + 0xc0], ymm7
vpxor ymm3, ymm3, ymm4
vpxor ymm10, ymm3, ymm10
vpalignr ymm11, ymm3, ymm1, 4
vmovdqu ymm4, ymm3
vaesenc ymm10, ymm10, ymm0
vpxor ymm5, ymm5, ymm11
vmovdqu ymmword [rsp + 0xa0], ymm5
vpalignr ymm11, ymm5, ymm3, 4
vpxor ymm11, ymm9, ymm11
vmovdqu ymmword [rsp + 0x80], ymm11
vpxor ymm10, ymm5, ymm10
vaesenc ymm10, ymm10, ymm0
vpxor ymm10, ymm11, ymm10
vaesenc ymm10, ymm10, ymm0
vpxor ymm9, ymm12, ymm10
vpalignr ymm10, ymm11, ymm5, 4
vpxor ymm10, ymm8, ymm10
vmovdqu ymmword [rsp], ymm9
vpxor ymm12, ymm10, ymm7
vpalignr ymm9, ymm10, ymm11, 4
vmovdqu ymm8, ymm10
vaesenc ymm12, ymm12, ymm0
vpxor ymm9, ymm6, ymm9
vpalignr ymm6, ymm9, ymm10, 4
vmovdqu ymmword [rsp + 0x60], ymm9
vpxor ymm13, ymm13, ymm6
vpalignr ymm6, ymm13, ymm9, 4
vmovdqu ymmword [rsp + 0x40], ymm13
vpxor ymm14, ymm14, ymm6
vmovdqu ymm6, ymm14
vpxor ymm12, ymm9, ymm12
vaesenc ymm12, ymm12, ymm0
vpxor ymm12, ymm13, ymm12
vaesenc ymm12, ymm12, ymm0
vpxor ymm12, ymm14, ymm12
vaesenc ymm12, ymm12, ymm0
vpxor ymm12, ymm15, ymm12
cmp eax, 3
jne 0x14018220f
vmovdqu ymm15, ymmword [rsp + 0x180]
vmovdqu ymm6, ymmword [rsp]
vmovd xmm4, r8d
not r9d
vmovdqu ymm8, ymmword [rsp + 0x160]
vaesenc ymm1, ymm1, ymm15
vaesenc ymm3, ymm3, ymm15
vpxor ymm8, ymm8, ymm12
vaesenc ymm5, ymm5, ymm15
vmovdqu ymmword [rcx + 0x100], ymm8
vaesenc ymm11, ymm11, ymm15
vaesenc ymm10, ymm10, ymm15
vaesenc ymm9, ymm9, ymm15
vaesenc ymm13, ymm13, ymm15
vpshufd ymm1, ymm1, 0x39
vpxor ymm1, ymm14, ymm1
vpshufd ymm3, ymm3, 0x39
vaesenc ymm14, ymm14, ymm15
vpxor ymm0, ymm1, ymm6
vpxor ymm3, ymm1, ymm3
vpshufd ymm5, ymm5, 0x39
vaesenc ymm0, ymm0, ymm15
vpxor ymm5, ymm3, ymm5
vpshufd ymm11, ymm11, 0x39
vpxor ymm11, ymm5, ymm11
vpshufd ymm10, ymm10, 0x39
vpxor ymm10, ymm11, ymm10
vpshufd ymm9, ymm9, 0x39
vpxor ymm1, ymm10, ymm12
vpxor ymm10, ymm10, ymm9
vpshufd ymm13, ymm13, 0x39
vaesenc ymm1, ymm1, ymm15
vpshufd ymm14, ymm14, 0x39
vpxor ymm0, ymm3, ymm0
vpinsrd xmm3, xmm4, r9d, 1
vmovd xmm4, edx
vaesenc ymm0, ymm0, ymm15
vpinsrd xmm2, xmm4, r10d, 1
vpunpcklqdq xmm2, xmm2, xmm3
vpermq ymm2, ymm2, 0x44
vpxor ymm1, ymm10, ymm1
vpxor ymm2, ymm2, ymm13
vaesenc ymm1, ymm1, ymm15
vpxor ymm2, ymm2, ymm10
vpxor ymm0, ymm5, ymm0
vaesenc ymm0, ymm0, ymm15
vpxor ymm1, ymm2, ymm1
vaesenc ymm1, ymm1, ymm15
vpxor ymm0, ymm11, ymm0
vaesenc ymm0, ymm0, ymm15
vpxor ymm1, ymm1, ymm14
vpxor ymm1, ymm1, ymm2
vpxor ymm2, ymm7, ymmword [rsp + 0x140]
vmovdqu ymm7, ymmword [rsp + 0x100]
vaesenc ymm1, ymm1, ymm15
vpxor ymm0, ymm2, ymm0
vmovdqu ymmword [rcx + 0x120], ymm0
vpxor ymm0, ymm6, ymmword [rsp + 0x120]
vmovdqu ymmword [rcx + 0x140], ymm0
vpxor ymm0, ymm7, ymmword [rsp + 0x20]
vpxor ymm0, ymm0, ymm1
vmovdqu ymmword [rcx + 0x160], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x1a0]
vmovups xmm7, xmmword [rsp + 0x1b0]
vmovups xmm8, xmmword [rsp + 0x1c0]
vmovups xmm9, xmmword [rsp + 0x1d0]
vmovups xmm10, xmmword [rsp + 0x1e0]
vmovups xmm11, xmmword [rsp + 0x1f0]
vmovups xmm12, xmmword [rsp + 0x200]
vmovups xmm13, xmmword [rsp + 0x210]
vmovups xmm14, xmmword [rsp + 0x220]
vmovups xmm15, xmmword [rsp + 0x230]
add rsp, 0x248
ret
vaesenc ymm3, ymm4, ymm0
vpxor ymm1, ymm1, ymmword [rsp + 0xe0]
vpxor ymm5, ymm1, ymmword [rsp]
vaesenc ymm5, ymm5, ymm0
vpshufd ymm3, ymm3, 0x39
vpxor ymm3, ymm1, ymm3
jmp 0x14018226b
mov r11d, edx
vmovd xmm6, r10d
not r11d
vpinsrd xmm4, xmm6, r11d, 1
vmovd xmm6, r9d
vpinsrd xmm2, xmm6, r8d, 1
vpunpcklqdq xmm2, xmm2, xmm4
vpermq ymm2, ymm2, 0x44
vpxor ymm11, ymm11, ymm2
jmp 0x14018232e