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

Disassembly:
jp 0x14002ec22
jnp 0x14002ec22
call 0x160fb6f6f
cmp r8, 0x20
je 0x14002eee1
cmp r8, 0x18
je 0x14002f254
xor eax, eax
cmp r8, 0x10
jne 0x14002f554
jl 0x14002ec47
jge 0x14002ec47
call 0x14271fc3e
movdqu xmm0, xmmword [rdx]
movdqa xmmword [rcx], xmm0
jg 0x14002ec54
jle 0x14002ec54
call 0x11f3cfbbe
enter 0x6601, 0xf
aeskeygenassist xmm1, xmm0, 1
movdqa xmm2, xmm0
pslldq xmm2, 4
pxor xmm2, xmm0
outsd dx, dword [rsi]
shl byte [rsi + 0xf], 1
jae 0x14002ec5c
add al, 0x66
pxor mm2, mm0
movdqa xmm0, xmm2
pslldq xmm0, 4
pxor xmm0, xmm2
movdqa xmm2, xmm0
pslldq xmm2, 4
pshufd xmm1, xmm1, 0xff
pxor xmm2, xmm0
pxor xmm2, xmm1
movdqa xmmword [rcx + 0x10], xmm2
jl 0x14002ec94
jge 0x14002ec94
call 0x11f3cfbfe
ret 0x6602
aeskeygenassist xmm0, xmm2, 2
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pshufd xmm0, xmm0, 0xff
pxor xmm1, xmm2
pxor xmm1, xmm0
movdqa xmmword [rcx + 0x20], xmm1
je 0x14002ecd4
jne 0x14002ecd4
call 0x11f3cfc3e
rol dword [rsi + riz*2], 0xf
aeskeygenassist xmm0, xmm1, 4
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
outsd dx, dword [rsi]
shl dword [rsi + 0xf], 1
jae 0x14002ecdc
add al, 0x66
pxor mm2, mm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pshufd xmm0, xmm0, 0xff
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmmword [rcx + 0x30], xmm2
jo 0x14002ed14
jno 0x14002ed14
call 0x11f3cfc7e
ret 0x6608
aeskeygenassist xmm0, xmm2, 8
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pshufd xmm0, xmm0, 0xff
pxor xmm1, xmm2
pxor xmm1, xmm0
movdqa xmmword [rcx + 0x40], xmm1
jl 0x14002ed54
jge 0x14002ed54
call 0x11f3cfcbe
rcl dword [rax], 0x66
movq mm2, mm1
aeskeygenassist xmm0, xmm1, 0x10
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pshufd xmm0, xmm0, 0xff
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmmword [rcx + 0x50], xmm2
je 0x14002ed94
jne 0x14002ed94
call 0x11f3cfcfe
ret 0x6620
aeskeygenassist xmm0, xmm2, 0x20
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pshufd xmm0, xmm0, 0xff
pxor xmm1, xmm2
pxor xmm1, xmm0
movdqa xmmword [rcx + 0x60], xmm1
jg 0x14002edd4
jle 0x14002edd4
call 0x11f3cfd3e
rol dword [rax + 0x66], 0xf
aeskeygenassist xmm0, xmm1, 0x40
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
outsd dx, dword [rsi]
shl dword [rsi + 0xf], 1
jae 0x14002eddc
add al, 0x66
pxor mm2, mm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pshufd xmm0, xmm0, 0xff
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmmword [rcx + 0x70], xmm2
jp 0x14002ee14
jnp 0x14002ee14
call 0x11f3cfd7e
ret 0x6680
aeskeygenassist xmm0, xmm2, 0x80
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pshufd xmm0, xmm0, 0xff
pxor xmm1, xmm2
pxor xmm1, xmm0
movdqa xmmword [rcx + 0x80], xmm1
jae 0x14002ee57
jb 0x14002ee57
call 0x11f3cfdc1
rcr dword [rbx], 0x66
movq mm2, mm1
aeskeygenassist xmm0, xmm1, 0x1b
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
pshufd xmm0, xmm0, 0xff
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmmword [rcx + 0x90], xmm2
call 0x14002ee9b
add al, ch
aeskeygenassist xmm1, xmm2, 0x36
movdqa xmm0, xmm2
pslldq xmm0, 4
pxor xmm0, xmm2
movdqa xmm2, xmm0
pslldq xmm2, 4
pxor xmm2, xmm0
movdqa xmm0, xmm2
pslldq xmm0, 4
pshufd xmm1, xmm1, 0xff
pxor xmm0, xmm2
pxor xmm0, xmm1
mov eax, 0xa
mov edx, 0xa
jmp 0x14002f546
jae 0x14002eee6
jb 0x14002eee6
call 0x14a71fedd
movdqu xmm1, xmmword [rdx]
movdqu xmm2, xmmword [rdx + 0x10]
movdqa xmmword [rcx], xmm1
movdqa xmmword [rcx + 0x10], xmm2
jne 0x14002eefd
je 0x14002eefd
call 0x11f3cfe67
aeskeygenassist xmm0, xmm2, 1
pshufd xmm3, xmm0, 0xff
movdqa xmm4, xmm1
pslldq xmm4, 4
movdqa xmm5, xmm1
pslldq xmm5, 8
movdqa xmm0, xmm1
pslldq xmm0, 0xc
pxor xmm0, xmm4
jae 0x14002ef1a
or al, 0x66
pxor mm0, mm4
pxor xmm0, xmm5
pxor xmm0, xmm1
pxor xmm0, xmm3
movdqa xmmword [rcx + 0x20], xmm0
jle 0x14002ef3d
jg 0x14002ef3d
call 0x11f3cfea7
enter 0x6600, 0xf
jo 0x14002ef20
aeskeygenassist xmm1, xmm0, 0
pshufd xmm3, xmm1, 0xaa
stosb byte [rdi], al
movdqa xmm4, xmm2
pslldq xmm4, 4
movdqa xmm5, xmm2
pslldq xmm5, 8
movdqa xmm1, xmm2
pslldq xmm1, 0xc
pxor xmm1, xmm4
pxor xmm1, xmm5
pxor xmm1, xmm2
pxor xmm1, xmm3
movdqa xmmword [rcx + 0x30], xmm1
jo 0x14002ef7d
jno 0x14002ef7d
call 0x11f3cfee7
rol dword [rdx], 1
aeskeygenassist xmm2, xmm1, 2
pshufd xmm3, xmm2, 0xff
movdqa xmm4, xmm0
pslldq xmm4, 4
movdqa xmm5, xmm0
pslldq xmm5, 8
movdqa xmm2, xmm0
pslldq xmm2, 0xc
pxor xmm2, xmm4
pxor xmm2, xmm5
pxor xmm2, xmm0
pxor xmm2, xmm3
movdqa xmmword [rcx + 0x40], xmm2
jo 0x14002efbd
jno 0x14002efbd
call 0x11f3cff27
ret 0x6600
aeskeygenassist xmm0, xmm2, 0
pshufd xmm3, xmm0, 0xaa
movdqa xmm4, xmm1
pslldq xmm4, 4
movdqa xmm5, xmm1
pslldq xmm5, 8
movdqa xmm0, xmm1
pslldq xmm0, 0xc
pxor xmm0, xmm4
jae 0x14002efda
or al, 0x66
pxor mm0, mm4
pxor xmm0, xmm5
pxor xmm0, xmm1
pxor xmm0, xmm3
movdqa xmmword [rcx + 0x50], xmm0
jno 0x14002effd
jo 0x14002effd
call 0x11f3cff67
enter 0x6604, 0xf
jo 0x14002efe0
aeskeygenassist xmm1, xmm0, 4
pshufd xmm3, xmm1, 0xff
movdqa xmm4, xmm2
pslldq xmm4, 4
movdqa xmm5, xmm2
pslldq xmm5, 8
movdqa xmm1, xmm2
pslldq xmm1, 0xc
pxor xmm1, xmm4
pxor xmm1, xmm5
pxor xmm1, xmm2
pxor xmm1, xmm3
movdqa xmmword [rcx + 0x60], xmm1
jo 0x14002f03d
jmp qword [rsi + 0xf]
jno 0x14002f03d
call 0x11f3cffa7
rol dword [rax], 1
aeskeygenassist xmm2, xmm1, 0
pshufd xmm3, xmm2, 0xaa
movdqa xmm4, xmm0
pslldq xmm4, 4
movdqa xmm5, xmm0
pslldq xmm5, 8
movdqa xmm2, xmm0
pslldq xmm2, 0xc
pxor xmm2, xmm4
pxor xmm2, xmm5
pxor xmm2, xmm0
pxor xmm2, xmm3
movdqa xmmword [rcx + 0x70], xmm2
jns 0x14002f07d
js 0x14002f07d
call 0x11f3cffe7
ret 0x6608
aeskeygenassist xmm0, xmm2, 8
pshufd xmm3, xmm0, 0xff
movdqa xmm4, xmm1
pslldq xmm4, 4
movdqa xmm5, xmm1
pslldq xmm5, 8
movdqa xmm0, xmm1
pslldq xmm0, 0xc
pxor xmm0, xmm4
pxor xmm0, xmm5
pxor xmm0, xmm1
pxor xmm0, xmm3
movdqa xmmword [rcx + 0x80], xmm0
ja 0x14002f0c0
jbe 0x14002f0c0
call 0x11f3d002a
enter 0x6600, 0xf
jo 0x14002f0a3
aeskeygenassist xmm1, xmm0, 0
pshufd xmm3, xmm1, 0xaa
stosb byte [rdi], al
movdqa xmm4, xmm2
pslldq xmm4, 4
movdqa xmm5, xmm2
pslldq xmm5, 8
movdqa xmm1, xmm2
pslldq xmm1, 0xc
pxor xmm1, xmm4
pxor xmm1, xmm5
pxor xmm1, xmm2
pxor xmm1, xmm3
movdqa xmmword [rcx + 0x90], xmm1
jae 0x14002f103
jb 0x14002f103
call 0x11f3d006d
rcl dword [rax]
aeskeygenassist xmm2, xmm1, 0x10
pshufd xmm3, xmm2, 0xff
movdqa xmm4, xmm0
pslldq xmm4, 4
movdqa xmm5, xmm0
pslldq xmm5, 8
movdqa xmm2, xmm0
pslldq xmm2, 0xc
pxor xmm2, xmm4
pxor xmm2, xmm5
pxor xmm2, xmm0
pxor xmm2, xmm3
movdqa xmmword [rcx + 0xa0], xmm2
je 0x14002f146
jne 0x14002f146
call 0x11f3d00b0
ret 0x6600
aeskeygenassist xmm0, xmm2, 0
pshufd xmm3, xmm0, 0xaa
movdqa xmm4, xmm1
pslldq xmm4, 4
movdqa xmm5, xmm1
pslldq xmm5, 8
movdqa xmm0, xmm1
pslldq xmm0, 0xc
pxor xmm0, xmm4
pxor xmm0, xmm5
pxor xmm0, xmm1
pxor xmm0, xmm3
movdqa xmmword [rcx + 0xb0], xmm0
ja 0x14002f189
jbe 0x14002f189
call 0x11f3d00f3
enter 0x6620, 0xf
jo 0x14002f16c
aeskeygenassist xmm1, xmm0, 0x20
pshufd xmm3, xmm1, 0xff
movdqa xmm4, xmm2
pslldq xmm4, 4
movdqa xmm5, xmm2
pslldq xmm5, 8
movdqa xmm1, xmm2
pslldq xmm1, 0xc
pxor xmm1, xmm4
pxor xmm1, xmm5
pxor xmm1, xmm2
pxor xmm1, xmm3
movdqa xmmword [rcx + 0xc0], xmm1
js 0x14002f1cc
jmp qword [rsi + 0xf]
jns 0x14002f1cc
call 0x11f3d0136
rol dword [rax], 1
aeskeygenassist xmm2, xmm1, 0
pshufd xmm2, xmm2, 0xaa
movdqa xmm3, xmm0
pslldq xmm3, 4
movdqa xmm4, xmm0
pslldq xmm4, 8
movdqa xmm5, xmm0
pslldq xmm5, 0xc
pxor xmm5, xmm3
pxor xmm5, xmm4
pxor xmm5, xmm0
pxor xmm5, xmm2
movdqa xmmword [rcx + 0xd0], xmm5
ja 0x14002f20f
jbe 0x14002f20f
call 0x11f3d0179
invalid
aeskeygenassist xmm0, xmm5, 0x40
pshufd xmm2, xmm0, 0xff
movdqa xmm3, xmm1
pslldq xmm3, 4
movdqa xmm4, xmm1
pslldq xmm4, 8
movdqa xmm0, xmm1
pslldq xmm0, 0xc
pxor xmm0, xmm3
pxor xmm0, xmm4
pxor xmm0, xmm1
pxor xmm0, xmm2
mov eax, 0xe
mov edx, 0xe
jmp 0x14002f546
je 0x14002f259
jne 0x14002f259
call 0x14a720250
movdqu xmm1, xmmword [rdx]
movdqu xmm0, xmmword [rdx + 8]
pshufd xmm2, xmm0, 0x4e
movdqa xmmword [rcx], xmm1
jg 0x14002f270
jle 0x14002f270
call 0x11f3d01da
ret 0x6601
aeskeygenassist xmm0, xmm2, 1
pshufd xmm3, xmm0, 0x55
movdqa xmm4, xmm1
pslldq xmm4, 4
movdqa xmm5, xmm1
pslldq xmm5, 8
movdqa xmm0, xmm1
pslldq xmm0, 0xc
pxor xmm0, xmm4
pxor xmm0, xmm5
pxor xmm0, xmm1
pxor xmm0, xmm3
pshufd xmm3, xmm0, 0xff
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
pxor xmm1, xmm3
punpcklqdq xmm2, xmm0
movdqa xmmword [rcx + 0x10], xmm2
movdqa xmm2, xmm0
pslldq xmm2, 4
movdqa xmm3, xmm0
pslldq xmm3, 8
movdqa xmm4, xmm0
pslldq xmm4, 0xc
pxor xmm4, xmm2
pxor xmm4, xmm3
pxor xmm4, xmm0
shufps xmm0, xmm1, 0x4e
movaps xmmword [rcx + 0x20], xmm0
jg 0x14002f2f9
jle 0x14002f2f9
call 0x11f3d0263
rol dword [rdx], 0x66
pshufw mm0, mm0, 0x55
aeskeygenassist xmm0, xmm1, 2
pshufd xmm0, xmm0, 0x55
pxor xmm4, xmm0
pshufd xmm0, xmm4, 0xff
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmmword [rcx + 0x30], xmm4
jns 0x14002f328
js 0x14002f328
call 0x11f3d0292
ret 0x6604
aeskeygenassist xmm0, xmm2, 4
pshufd xmm1, xmm0, 0x55
movdqa xmm3, xmm4
pslldq xmm3, 4
movdqa xmm5, xmm4
pslldq xmm5, 8
movdqa xmm0, xmm4
pslldq xmm0, 0xc
pxor xmm0, xmm3
pxor xmm0, xmm5
pxor xmm0, xmm4
pxor xmm0, xmm1
pshufd xmm3, xmm0, 0xff
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
pxor xmm1, xmm3
punpcklqdq xmm2, xmm0
movdqa xmmword [rcx + 0x40], xmm2
movdqa xmm2, xmm0
pslldq xmm2, 4
movdqa xmm3, xmm0
pslldq xmm3, 8
movdqa xmm4, xmm0
pslldq xmm4, 0xc
pxor xmm4, xmm2
pxor xmm4, xmm3
pxor xmm4, xmm0
shufps xmm0, xmm1, 0x4e
movaps xmmword [rcx + 0x50], xmm0
jp 0x14002f3b1
jnp 0x14002f3b1
call 0x11f3d031b
ror dword [rax], 0x66
pshufw mm0, mm0, 0x55
aeskeygenassist xmm0, xmm1, 8
pshufd xmm0, xmm0, 0x55
pxor xmm4, xmm0
pshufd xmm0, xmm4, 0xff
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmmword [rcx + 0x60], xmm4
jno 0x14002f3e0
jo 0x14002f3e0
call 0x11f3d034a
ret 0x6610
aeskeygenassist xmm0, xmm2, 0x10
pshufd xmm1, xmm0, 0x55
movdqa xmm3, xmm4
pslldq xmm3, 4
movdqa xmm5, xmm4
pslldq xmm5, 8
movdqa xmm0, xmm4
pslldq xmm0, 0xc
pxor xmm0, xmm3
pxor xmm0, xmm5
pxor xmm0, xmm4
pxor xmm0, xmm1
pshufd xmm3, xmm0, 0xff
movdqa xmm1, xmm2
pslldq xmm1, 4
pxor xmm1, xmm2
pxor xmm1, xmm3
punpcklqdq xmm2, xmm0
movdqa xmmword [rcx + 0x70], xmm2
movdqa xmm2, xmm0
pslldq xmm2, 4
movdqa xmm3, xmm0
pslldq xmm3, 8
movdqa xmm4, xmm0
pslldq xmm4, 0xc
pxor xmm4, xmm2
pxor xmm4, xmm3
pxor xmm4, xmm0
shufps xmm0, xmm1, 0x4e
movaps xmmword [rcx + 0x80], xmm0
jne 0x14002f46c
je 0x14002f46c
call 0x11f3d03d6
shl dword [rax], 0x66
pshufw mm0, mm0, 0x55
aeskeygenassist xmm0, xmm1, 0x20
pshufd xmm0, xmm0, 0x55
pxor xmm4, xmm0
pshufd xmm0, xmm4, 0xff
movdqa xmm2, xmm1
pslldq xmm2, 4
pxor xmm2, xmm1
pxor xmm2, xmm0
movdqa xmmword [rcx + 0x90], xmm4
jge 0x14002f49e
jl 0x14002f49e
call 0x11f3d0408
ret 0x6640
aeskeygenassist xmm0, xmm2, 0x40
pshufd xmm0, xmm0, 0x55
movdqa xmm3, xmm4
pslldq xmm3, 4
movdqa xmm5, xmm4
pslldq xmm5, 8
movdqa xmm1, xmm4
pslldq xmm1, 0xc
pxor xmm1, xmm3
pxor xmm1, xmm5
pxor xmm1, xmm4
pxor xmm1, xmm0
pshufd xmm0, xmm1, 0xff
movdqa xmm3, xmm2
pslldq xmm3, 4
pxor xmm3, xmm2
pxor xmm3, xmm0
punpcklqdq xmm2, xmm1
movdqa xmmword [rcx + 0xa0], xmm2
movdqa xmm2, xmm1
pslldq xmm2, 4
movdqa xmm4, xmm1
pslldq xmm4, 8
movdqa xmm0, xmm1
pslldq xmm0, 0xc
pxor xmm0, xmm2
pxor xmm0, xmm4
pxor xmm0, xmm1
shufps xmm1, xmm3, 0x4e
movaps xmmword [rcx + 0xb0], xmm1
js 0x14002f52d
jns 0x14002f52d
call 0x11f3d0497
retf
aeskeygenassist xmm1, xmm3, 0x80
pshufd xmm1, xmm1, 0x55
pxor xmm0, xmm1
mov eax, 0xc
mov edx, 0xc
jo 0x14002f54b
jno 0x14002f54b
call 0x144e5b697
shl rdx, 4
movdqa xmmword [rcx + rdx], xmm0
jb 0x14002f559
jae 0x14002f559
call 0xc14b4c20
in al, dx
adc byte [rcx], al
add byte [rax], al
mov rsi, rcx
jns 0x14002f56a
ret
js 0x14002f56a
call 0x14174f8e1
jae 0x14002f56f
jb 0x14002f56f
call 0x14178f8ea
ja 0x14002f574
jbe 0x14002f574
call 0x1644f82c0
and al, ch
lahf
idiv bh
dec dword [rcx + 0x48c089c1]
mov edx, eax
lea rcx, [rsp + 0x20]
call fcn.14002ec1d
mov ecx, eax
mov eax, eax
mov rdx, rax
shl rdx, 4
movdqa xmm0, xmmword [rsp + rdx + 0x20]
movdqu xmmword [rsi], xmm0
cmp ecx, 2
jb 0x14002f5d2
lea ecx, [rax - 1]
mov r8d, 0x10
js 0x14002f5a6
jns 0x14002f5a6
call 0x181c47eef
and ecx, 0xfffffff0
mov r9d, r8d
and r9d, 0xfffffff0
mov r10d, ecx
shl r10, 4
aesimc xmm0, xmmword [rsp + r10 + 0x20]
jae 0x14002f5c1
jb 0x14002f5c1
call 0x1bf1238b8
add al, 0xe
movdqu xmmword [rsi + r9], xmm0
add r8, 0x10
dec ecx
cmp rdx, r8
jne 0x14002f5a1
jl 0x14002f5d7
jge 0x14002f5d7
call 0x121c4b764
add al, 0xf
sub byte [rsp + 0x20], al
mov ecx, eax
shl ecx, 4
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rsi + rcx], xmm0
js 0x14002f5ea
jns 0x14002f5ea
call 0x150c77736
add dword [rax], eax
add byte [rsi - 0x3d], bl
push rsi
sub rsp, 0x20
mov rsi, rcx
ja 0x14002f600
add rsp, 0x110
pop rsi
ret
jbe 0x14002f600
call 0xf908834c
invalid
lea rax, [0x1400059c0]
mov qword [rcx], rax
add rcx, 8
jns 0x14002f613
js 0x14002f613
call 0x13ff8a3ff
dec dword [rcx + 0xf886]
add byte [rax - 0x7d], cl
invalid
call 0x14002ebc5
mov dword [rsi + 0xf8], eax
add rsp, 0x20
pop rsi
ret