Function at 0x140016a50
Capabilities:
Decrypt data using aes via x86 extensions
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]
mov r9, qword [rsp + 0x30]
test rdx, rdx
je 0x140016f35
mov r10d, dword [rcx + 0xf0]
mov r11, rcx
test r9d, r9d
je 0x140016b30
movups xmm2, xmmword [r8]
mov eax, r10d
cmp rdx, 0x10
jb 0x140016aff
sub rdx, 0x10
jmp 0x140016ab0
movups xmm3, xmmword [rdi]
lea rdi, [rdi + 0x10]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
xorps xmm3, xmm0
lea rcx, [rcx + 0x20]
xorps xmm2, xmm3
aesenc xmm2, xmm1
dec eax
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x140016ac8
aesenclast xmm2, xmm1
mov eax, r10d
mov rcx, r11
movups xmmword [rsi], xmm2
lea rsi, [rsi + 0x10]
sub rdx, 0x10
jae 0x140016ab0
add rdx, 0x10
jne 0x140016aff
movups xmmword [r8], xmm2
jmp 0x140016f35
mov rcx, rdx
xchg rdi, rsi
rep movsb byte [rdi], byte [rsi]
nop
mov ecx, reloc.WS2_32.dll_recv
sub rcx, rdx
xor eax, eax
rep stosb byte [rdi], al
nop
lea rdi, [rdi - 0x10]
mov eax, r10d
mov rsi, rdi
mov rcx, r11
xor rdx, rdx
jmp 0x140016ab0
lea rsp, [rsp - 0x58]
movaps xmmword [rsp], xmm6
movaps xmmword [rsp + 0x10], xmm7
movaps xmmword [rsp + 0x20], xmm8
movaps xmmword [rsp + 0x30], xmm9
movups xmm9, xmmword [r8]
mov eax, r10d
cmp rdx, 0x70
jbe 0x140016c9a
shr r10d, 1
sub rdx, 0x70
mov eax, r10d
movaps xmmword [rsp + 0x40], xmm9
jmp 0x140016b7d
movaps xmmword [rsp + 0x40], xmm0
movups xmmword [rsi], xmm9
lea rsi, [rsi + 0x10]
movups xmm0, xmmword [rcx]
movups xmm2, xmmword [rdi]
movups xmm3, xmmword [rdi + 0x10]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
movdqu xmm4, xmmword [rdi + 0x20]
xorps xmm2, xmm0
movdqu xmm5, xmmword [rdi + 0x30]
xorps xmm3, xmm0
movdqu xmm6, xmmword [rdi + 0x40]
aesdec xmm2, xmm1
pxor xmm4, xmm0
movdqu xmm7, xmmword [rdi + 0x50]
aesdec xmm3, xmm1
pxor xmm5, xmm0
movdqu xmm8, xmmword [rdi + 0x60]
aesdec xmm4, xmm1
pxor xmm6, xmm0
movdqu xmm9, xmmword [rdi + 0x70]
aesdec xmm5, xmm1
pxor xmm7, xmm0
dec eax
aesdec xmm6, xmm1
pxor xmm8, xmm0
aesdec xmm7, xmm1
pxor xmm9, xmm0
movups xmm0, xmmword [rcx]
aesdec xmm8, xmm1
aesdec xmm9, xmm1
movups xmm1, xmmword [rcx + 0x10]
call fcn.140014ef0
movups xmm1, xmmword [rdi]
movups xmm0, xmmword [rdi + 0x10]
xorps xmm2, xmmword [rsp + 0x40]
xorps xmm3, xmm1
movups xmm1, xmmword [rdi + 0x20]
xorps xmm4, xmm0
movups xmm0, xmmword [rdi + 0x30]
xorps xmm5, xmm1
movups xmm1, xmmword [rdi + 0x40]
xorps xmm6, xmm0
movups xmm0, xmmword [rdi + 0x50]
xorps xmm7, xmm1
movups xmm1, xmmword [rdi + 0x60]
xorps xmm8, xmm0
movups xmm0, xmmword [rdi + 0x70]
xorps xmm9, xmm1
movups xmmword [rsi], xmm2
movups xmmword [rsi + 0x10], xmm3
movups xmmword [rsi + 0x20], xmm4
movups xmmword [rsi + 0x30], xmm5
mov eax, r10d
movups xmmword [rsi + 0x40], xmm6
mov rcx, r11
movups xmmword [rsi + 0x50], xmm7
lea rdi, [rdi + 0x80]
movups xmmword [rsi + 0x60], xmm8
lea rsi, [rsi + 0x70]
sub rdx, 0x80
ja 0x140016b70
movaps xmm2, xmm9
movaps xmm9, xmm0
add rdx, 0x70
jle 0x140016ef0
movups xmmword [rsi], xmm2
lea eax, [r10 + r10 + 1]
lea rsi, [rsi + 0x10]
movups xmm2, xmmword [rdi]
movaps xmm8, xmm2
cmp rdx, 0x10
jbe 0x140016d70
movups xmm3, xmmword [rdi + 0x10]
movaps xmm7, xmm3
cmp rdx, 0x20
jbe 0x140016db0
movups xmm4, xmmword [rdi + 0x20]
movaps xmm6, xmm4
cmp rdx, 0x30
jbe 0x140016de0
movups xmm5, xmmword [rdi + 0x30]
cmp rdx, 0x40
jbe 0x140016e10
movups xmm6, xmmword [rdi + 0x40]
cmp rdx, 0x50
jbe 0x140016e50
movups xmm7, xmmword [rdi + 0x50]
cmp rdx, 0x60
jbe 0x140016ea0
movups xmm8, xmmword [rdi + 0x60]
movaps xmmword [rsp + 0x40], xmm9
call fcn.140014e50
movups xmm1, xmmword [rdi]
movups xmm0, xmmword [rdi + 0x10]
xorps xmm2, xmmword [rsp + 0x40]
xorps xmm3, xmm1
movups xmm1, xmmword [rdi + 0x20]
xorps xmm4, xmm0
movups xmm0, xmmword [rdi + 0x30]
xorps xmm5, xmm1
movups xmm1, xmmword [rdi + 0x40]
xorps xmm6, xmm0
movups xmm0, xmmword [rdi + 0x50]
xorps xmm7, xmm1
movups xmm9, xmmword [rdi + 0x60]
xorps xmm8, xmm0
movups xmmword [rsi], xmm2
movups xmmword [rsi + 0x10], xmm3
movups xmmword [rsi + 0x20], xmm4
movups xmmword [rsi + 0x30], xmm5
movups xmmword [rsi + 0x40], xmm6
movups xmmword [rsi + 0x50], xmm7
lea rsi, [rsi + 0x60]
movaps xmm2, xmm8
sub rdx, 0x70
jmp 0x140016ef0
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec eax
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x140016d7e
aesdeclast xmm2, xmm1
xorps xmm2, xmm9
movaps xmm9, xmm8
sub rdx, 0x10
jmp 0x140016ef0
xorps xmm4, xmm4
call fcn.1400149f0
xorps xmm2, xmm9
xorps xmm3, xmm8
movups xmmword [rsi], xmm2
movaps xmm9, xmm7
movaps xmm2, xmm3
lea rsi, [rsi + 0x10]
sub rdx, 0x20
jmp 0x140016ef0
call fcn.1400149f0
xorps xmm2, xmm9
xorps xmm3, xmm8
movups xmmword [rsi], xmm2
xorps xmm4, xmm7
movups xmmword [rsi + 0x10], xmm3
movaps xmm9, xmm6
movaps xmm2, xmm4
lea rsi, [rsi + 0x20]
sub rdx, 0x30
jmp 0x140016ef0
call fcn.140014ae0
xorps xmm2, xmm9
movups xmm9, xmmword [rdi + 0x30]
xorps xmm3, xmm8
movups xmmword [rsi], xmm2
xorps xmm4, xmm7
movups xmmword [rsi + 0x10], xmm3
xorps xmm5, xmm6
movups xmmword [rsi + 0x20], xmm4
movaps xmm2, xmm5
lea rsi, [rsi + 0x30]
sub rdx, 0x40
jmp 0x140016ef0
xorps xmm7, xmm7
call fcn.140014c40
movups xmm1, xmmword [rdi + 0x10]
movups xmm0, xmmword [rdi + 0x20]
xorps xmm2, xmm9
xorps xmm3, xmm8
xorps xmm4, xmm1
movups xmm1, xmmword [rdi + 0x30]
xorps xmm5, xmm0
movups xmm9, xmmword [rdi + 0x40]
xorps xmm6, xmm1
movups xmmword [rsi], xmm2
movups xmmword [rsi + 0x10], xmm3
movups xmmword [rsi + 0x20], xmm4
movups xmmword [rsi + 0x30], xmm5
lea rsi, [rsi + 0x40]
movaps xmm2, xmm6
sub rdx, 0x50
jmp 0x140016ef0
call fcn.140014c40
movups xmm1, xmmword [rdi + 0x10]
movups xmm0, xmmword [rdi + 0x20]
xorps xmm2, xmm9
xorps xmm3, xmm8
xorps xmm4, xmm1
movups xmm1, xmmword [rdi + 0x30]
xorps xmm5, xmm0
movups xmm0, xmmword [rdi + 0x40]
xorps xmm6, xmm1
movups xmm9, xmmword [rdi + 0x50]
xorps xmm7, xmm0
movups xmmword [rsi], xmm2
movups xmmword [rsi + 0x10], xmm3
movups xmmword [rsi + 0x20], xmm4
movups xmmword [rsi + 0x30], xmm5
movups xmmword [rsi + 0x40], xmm6
lea rsi, [rsi + 0x50]
movaps xmm2, xmm7
sub rdx, 0x60
jmp 0x140016ef0
and rdx, 0xf
movups xmmword [r8], xmm9
jne 0x140016f00
movups xmmword [rsi], xmm2
jmp 0x140016f1b
movaps xmmword [rsp + 0x40], xmm2
mov rcx, reloc.WS2_32.dll_recv
mov rdi, rsi
sub rcx, rdx
lea rsi, [rsp + 0x40]
rep movsb byte [rdi], byte [rsi]
nop
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
lea rsp, [rsp + 0x58]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret