Function at 0x140438140
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov qword [rsp + 0x10], r8
vmovdqu xmm1, xmmword [rdx]
movzx eax, byte [rcx]
mov qword [rsp + 0x18], rax
add rcx, 0x30
mov eax, 2
mov qword [rsp + 8], rax
vmovdqa xmm0, xmmword [0x14046e6d0]
nop word [rax + rax]
vpxor xmm1, xmm1, xmmword [rcx - 0x2c]
vmovd eax, xmm1
movzx edx, al
lea r10, str.cw
movzx edx, byte [rdx + r10]
mov r9, r10
vpshufb xmm2, xmm1, xmm0
vpmovzxdq ymm2, xmm2
vmovq r8, xmm2
lea r11, [0x14046e250]
movzx ebx, byte [r8 + r11]
shl ebx, 8
or ebx, edx
mov edx, eax
shr edx, 0x10
movzx edx, dl
lea rsi, [0x14046e150]
movzx edx, byte [rdx + rsi]
shl edx, 0x10
shr rax, 0x18
lea r10, [0x14046e050]
movzx r15d, byte [rax + r10]
shl r15d, 0x18
or r15d, edx
vpextrd eax, xmm1, 1
lea edi, [r15 + rbx]
movzx edx, al
vpextrq r8, xmm2, 1
movzx edx, byte [rdx + r9]
movzx r14d, byte [r8 + r11]
shl r14d, 8
or r14d, edx
mov edx, eax
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + rsi]
shl edx, 0x10
shr rax, 0x18
movzx r12d, byte [rax + r10]
shl r12d, 0x18
or r12d, edx
lea ebp, [r12 + r14]
vpextrd eax, xmm1, 2
movzx edx, al
movzx edx, byte [rdx + r9]
vextracti128 xmm2, ymm2, 1
vmovq r8, xmm2
movzx r8d, byte [r8 + r11]
shl r8d, 8
or r8d, edx
mov edx, eax
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + rsi]
shl edx, 0x10
or edx, r8d
shr rax, 0x18
movzx eax, byte [rax + r10]
shl eax, 0x18
or eax, edx
vpextrd edx, xmm1, 3
movzx r8d, dl
movzx r8d, byte [r8 + r9]
vpextrq r13, xmm2, 1
movzx r9d, byte [r13 + r11]
shl r9d, 8
or r9d, r8d
mov r8d, edx
shr r8d, 0x10
movzx r8d, r8b
movzx r8d, byte [r8 + rsi]
shl r8d, 0x10
shr rdx, 0x18
movzx r13d, byte [rdx + r10]
shl r13d, 0x18
or r13d, r8d
lea r8d, [r9 + r13]
shrd r12d, r14d, 0x10
shrd r13d, r9d, 0x10
bswap eax
xor r13d, eax
rol eax, 0x10
bswap r8d
xor ebp, eax
shrd r15d, ebx, 0x10
bswap ebp
rol ebp, 0x10
mov r14d, r12d
bswap r14d
rol r14d, 0x10
xor r14d, r15d
mov ebx, r15d
xor ebx, r8d
xor ebx, ebp
mov r15d, r13d
rol r15d, 0x10
xor r15d, ebx
bswap r15d
rol r15d, 0x10
xor edi, dword [rcx - 0x18]
xor edi, r13d
mov edx, ebx
rol edx, 0x10
mov r13d, r14d
bswap r13d
xor r15d, dword [rcx - 0x1c]
xor r15d, r12d
xor edi, ebx
xor r13d, dword [rcx - 0x14]
bswap ebx
xor r13d, edx
mov qword [rsp], rcx
xor ebx, dword [rcx - 0x10]
xor r13d, r8d
xor r14d, eax
xor r14d, ebx
movzx eax, r15b
mov r11, rsi
movzx eax, byte [rax + rsi]
mov edx, r15d
shr edx, 8
movzx edx, dl
mov rsi, r10
movzx ebx, byte [rdx + r10]
shl ebx, 8
or ebx, eax
mov eax, r15d
shr eax, 0x10
movzx eax, al
lea rcx, str.cw
movzx eax, byte [rax + rcx]
shl eax, 0x10
shr r15, 0x18
lea r10, [0x14046e250]
movzx r12d, byte [r15 + r10]
shl r12d, 0x18
or r12d, eax
lea ebp, [r12 + rbx]
movzx eax, dil
movzx eax, byte [rax + r11]
mov edx, edi
shr edx, 8
movzx edx, dl
movzx r15d, byte [rdx + rsi]
shl r15d, 8
or r15d, eax
mov eax, edi
shr eax, 0x10
movzx eax, al
movzx eax, byte [rax + rcx]
shl eax, 0x10
shr rdi, 0x18
movzx r8d, byte [rdi + r10]
shl r8d, 0x18
or r8d, eax
lea eax, [r8 + r15]
movzx edx, r13b
movzx edx, byte [rdx + r11]
mov r9d, r13d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + rsi]
shl r9d, 8
or r9d, edx
mov edx, r13d
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + rcx]
shl edx, 0x10
or edx, r9d
shr r13, 0x18
movzx edi, byte [r13 + r10]
shl edi, 0x18
or edi, edx
movzx edx, r14b
movzx edx, byte [rdx + r11]
mov r9d, r14d
shr r9d, 8
movzx r9d, r9b
movzx r13d, byte [r9 + rsi]
shl r13d, 8
or r13d, edx
mov edx, r14d
shr edx, 0x10
movzx edx, dl
movzx r9d, byte [rdx + rcx]
shl r9d, 0x10
shr r14, 0x18
movzx edx, byte [r14 + r10]
shl edx, 0x18
or edx, r9d
lea r14d, [rdx + r13]
mov r9, qword [rsp + 8]
cmp r9, qword [rsp + 0x18]
jae 0x140438504
shld r15d, r8d, 0x10
shld r13d, edx, 0x10
bswap edi
xor r13d, edi
rol edi, 0x10
mov r8d, r14d
bswap r8d
xor eax, edi
shld ebx, r12d, 0x10
bswap eax
rol eax, 0x10
xor r8d, ebx
mov r12d, r15d
bswap r12d
rol r12d, 0x10
xor r8d, eax
xor ebp, r13d
rol r13d, 0x10
xor r13d, r8d
bswap r13d
rol r13d, 0x10
vmovd xmm1, r15d
vpinsrd xmm1, xmm1, r8d, 1
mov eax, r8d
rol r8d, 0x10
xor r12d, ebx
bswap eax
xor eax, r12d
xor r12d, r14d
bswap r12d
vmovd xmm2, r13d
vpinsrd xmm2, xmm2, ebp, 1
vpinsrd xmm2, xmm2, r12d, 2
vpinsrd xmm2, xmm2, eax, 3
vpinsrd xmm1, xmm1, r8d, 2
vpinsrd xmm1, xmm1, edi, 3
vpxor xmm1, xmm2, xmm1
mov rcx, qword [rsp]
add rcx, 0x20
add r9, 2
mov qword [rsp + 8], r9
jmp 0x140438180
mov r11, qword [rsp]
xor ebp, dword [r11 - 0xc]
xor eax, dword [r11 - 8]
xor edi, dword [r11 - 4]
xor r14d, dword [r11]
mov rcx, qword [rsp + 0x10]
mov dword [rcx], ebp
mov dword [rcx + 4], eax
mov dword [rcx + 8], edi
mov dword [rcx + 0xc], r14d
xor eax, eax
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret