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

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