Function at 0x14004a170
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 0x14004ab9c
mov r10d, dword [rcx + 0xf0]
mov r11, rcx
test r9d, r9d
je 0x14004a260
movups xmm2, xmmword [r8]
mov eax, r10d
cmp rdx, 0x10
jb 0x14004a22f
sub rdx, 0x10
jmp 0x14004a1d0
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 0x14004a1e8
aesenclast xmm2, xmm1
mov eax, r10d
mov rcx, r11
movups xmmword [rsi], xmm2
lea rsi, [rsi + 0x10]
sub rdx, 0x10
jae 0x14004a1d0
add rdx, 0x10
jne 0x14004a22f
pxor xmm0, xmm0
pxor xmm1, xmm1
movups xmmword [r8], xmm2
pxor xmm2, xmm2
pxor xmm3, xmm3
jmp 0x14004ab9c
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 0x14004a1d0
cmp rdx, 0x10
jne 0x14004a2c0
movdqu xmm2, xmmword [rdi]
movdqu xmm3, xmmword [r8]
movdqa xmm4, xmm2
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec r10d
movups xmm1, xmmword [rcx]
lea rcx, [rcx + 0x10]
jne 0x14004a281
aesdeclast xmm2, xmm1
pxor xmm0, xmm0
pxor xmm1, xmm1
movdqu xmmword [r8], xmm4
xorps xmm2, xmm3
pxor xmm3, xmm3
movups xmmword [rsi], xmm2
pxor xmm2, xmm2
jmp 0x14004ab9c
lea r11, [rsp]
push rbp
sub rsp, 0xb0
and rsp, 0xfffffffffffffff0
movaps xmmword [rsp + 0x10], xmm6
movaps xmmword [rsp + 0x20], xmm7
movaps xmmword [rsp + 0x30], xmm8
movaps xmmword [rsp + 0x40], xmm9
movaps xmmword [rsp + 0x50], xmm10
movaps xmmword [rsp + 0x60], xmm11
movaps xmmword [rsp + 0x70], xmm12
movaps xmmword [rsp + 0x80], xmm13
movaps xmmword [rsp + 0x90], xmm14
movaps xmmword [rsp + 0xa0], xmm15
mov rbp, rcx
movups xmm10, xmmword [r8]
mov eax, r10d
cmp rdx, 0x50
jbe 0x14004a91f
movups xmm0, xmmword [rcx]
movdqu xmm2, xmmword [rdi]
movdqu xmm3, xmmword [rdi + 0x10]
movdqa xmm11, xmm2
movdqu xmm4, xmmword [rdi + 0x20]
movdqa xmm12, xmm3
movdqu xmm5, xmmword [rdi + 0x30]
movdqa xmm13, xmm4
movdqu xmm6, xmmword [rdi + 0x40]
movdqa xmm14, xmm5
movdqu xmm7, xmmword [rdi + 0x50]
movdqa xmm15, xmm6
mov r9d, dword [0x1406775c4]
cmp rdx, 0x70
jbe 0x14004a776
and r9d, 0x4400000
sub rdx, 0x50
cmp r9d, 0x400000
je 0x14004a8ad
sub rdx, 0x20
lea rcx, [rcx + 0x70]
jmp 0x14004a3a8
movups xmmword [rsi], xmm9
lea rsi, [rsi + 0x10]
movdqu xmm8, xmmword [rdi + 0x60]
pxor xmm2, xmm0
movdqu xmm9, xmmword [rdi + 0x70]
pxor xmm3, xmm0
movups xmm1, xmmword [rcx - 0x60]
pxor xmm4, xmm0
mov rbp, 0xffffffffffffffff
cmp rdx, 0x70
pxor xmm5, xmm0
pxor xmm6, xmm0
pxor xmm7, xmm0
pxor xmm8, xmm0
aesdec xmm2, xmm1
pxor xmm9, xmm0
movups xmm0, xmmword [rcx - 0x50]
aesdec xmm3, xmm1
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
aesdec xmm7, xmm1
aesdec xmm8, xmm1
adc rbp, 0
and rbp, 0x80
aesdec xmm9, xmm1
add rbp, rdi
movups xmm1, xmmword [rcx - 0x40]
aesdec xmm2, xmm0
aesdec xmm3, xmm0
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
aesdec xmm7, xmm0
aesdec xmm8, xmm0
aesdec xmm9, xmm0
movups xmm0, xmmword [rcx - 0x30]
nop
aesdec xmm2, xmm1
aesdec xmm3, xmm1
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
aesdec xmm7, xmm1
aesdec xmm8, xmm1
aesdec xmm9, xmm1
movups xmm1, xmmword [rcx - 0x20]
nop
aesdec xmm2, xmm0
aesdec xmm3, xmm0
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
aesdec xmm7, xmm0
aesdec xmm8, xmm0
aesdec xmm9, xmm0
movups xmm0, xmmword [rcx - 0x10]
nop
aesdec xmm2, xmm1
aesdec xmm3, xmm1
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
aesdec xmm7, xmm1
aesdec xmm8, xmm1
aesdec xmm9, xmm1
movups xmm1, xmmword [rcx]
nop
aesdec xmm2, xmm0
aesdec xmm3, xmm0
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
aesdec xmm7, xmm0
aesdec xmm8, xmm0
aesdec xmm9, xmm0
movups xmm0, xmmword [rcx + 0x10]
nop
aesdec xmm2, xmm1
aesdec xmm3, xmm1
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
aesdec xmm7, xmm1
aesdec xmm8, xmm1
aesdec xmm9, xmm1
movups xmm1, xmmword [rcx + 0x20]
cmp eax, 0xb
aesdec xmm2, xmm0
aesdec xmm3, xmm0
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
aesdec xmm7, xmm0
aesdec xmm8, xmm0
aesdec xmm9, xmm0
movups xmm0, xmmword [rcx + 0x30]
jb 0x14004a640
aesdec xmm2, xmm1
aesdec xmm3, xmm1
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
aesdec xmm7, xmm1
aesdec xmm8, xmm1
aesdec xmm9, xmm1
movups xmm1, xmmword [rcx + 0x40]
nop
aesdec xmm2, xmm0
aesdec xmm3, xmm0
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
aesdec xmm7, xmm0
aesdec xmm8, xmm0
aesdec xmm9, xmm0
movups xmm0, xmmword [rcx + 0x50]
je 0x14004a640
aesdec xmm2, xmm1
aesdec xmm3, xmm1
aesdec xmm4, xmm1
aesdec xmm5, xmm1
aesdec xmm6, xmm1
aesdec xmm7, xmm1
aesdec xmm8, xmm1
aesdec xmm9, xmm1
movups xmm1, xmmword [rcx + 0x60]
nop
aesdec xmm2, xmm0
aesdec xmm3, xmm0
aesdec xmm4, xmm0
aesdec xmm5, xmm0
aesdec xmm6, xmm0
aesdec xmm7, xmm0
aesdec xmm8, xmm0
aesdec xmm9, xmm0
movups xmm0, xmmword [rcx + 0x70]
jmp 0x14004a640
aesdec xmm2, xmm1
aesdec xmm3, xmm1
pxor xmm10, xmm0
pxor xmm11, xmm0
aesdec xmm4, xmm1
aesdec xmm5, xmm1
pxor xmm12, xmm0
pxor xmm13, xmm0
aesdec xmm6, xmm1
aesdec xmm7, xmm1
pxor xmm14, xmm0
pxor xmm15, xmm0
aesdec xmm8, xmm1
aesdec xmm9, xmm1
movdqu xmm1, xmmword [rdi + 0x50]
aesdeclast xmm2, xmm10
movdqu xmm10, xmmword [rdi + 0x60]
pxor xmm1, xmm0
aesdeclast xmm3, xmm11
pxor xmm10, xmm0
movdqu xmm0, xmmword [rdi + 0x70]
aesdeclast xmm4, xmm12
lea rdi, [rdi + 0x80]
movdqu xmm11, xmmword [rbp]
aesdeclast xmm5, xmm13
aesdeclast xmm6, xmm14
movdqu xmm12, xmmword [rbp + 0x10]
movdqu xmm13, xmmword [rbp + 0x20]
aesdeclast xmm7, xmm15
aesdeclast xmm8, xmm1
movdqu xmm14, xmmword [rbp + 0x30]
movdqu xmm15, xmmword [rbp + 0x40]
aesdeclast xmm9, xmm10
movdqa xmm10, xmm0
movdqu xmm1, xmmword [rbp + 0x50]
movups xmm0, xmmword [rcx - 0x70]
movups xmmword [rsi], xmm2
movdqa xmm2, xmm11
movups xmmword [rsi + 0x10], xmm3
movdqa xmm3, xmm12
movups xmmword [rsi + 0x20], xmm4
movdqa xmm4, xmm13
movups xmmword [rsi + 0x30], xmm5
movdqa xmm5, xmm14
movups xmmword [rsi + 0x40], xmm6
movdqa xmm6, xmm15
movups xmmword [rsi + 0x50], xmm7
movdqa xmm7, xmm1
movups xmmword [rsi + 0x60], xmm8
lea rsi, [rsi + 0x70]
sub rdx, 0x80
ja 0x14004a3a0
movaps xmm2, xmm9
lea rcx, [rcx - 0x70]
add rdx, 0x70
jle 0x14004aad0
movups xmmword [rsi], xmm9
lea rsi, [rsi + 0x10]
cmp rdx, 0x50
jbe 0x14004a91f
movaps xmm2, xmm11
cmp rdx, 0x60
ja 0x14004a7e0
movaps xmm8, xmm7
call fcn.140046d00
pxor xmm2, xmm10
movaps xmm10, xmm8
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm3, xmm3
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm4, xmm4
pxor xmm6, xmm14
movdqu xmmword [rsi + 0x30], xmm5
pxor xmm5, xmm5
pxor xmm7, xmm15
movdqu xmmword [rsi + 0x40], xmm6
pxor xmm6, xmm6
lea rsi, [rsi + 0x50]
movdqa xmm2, xmm7
pxor xmm7, xmm7
jmp 0x14004aadc
movups xmm8, xmmword [rdi + 0x60]
xorps xmm9, xmm9
call fcn.140046ef0
movups xmm9, xmmword [rdi + 0x50]
pxor xmm2, xmm10
movups xmm10, xmmword [rdi + 0x60]
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm3, xmm3
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm4, xmm4
pxor xmm6, xmm14
movdqu xmmword [rsi + 0x30], xmm5
pxor xmm5, xmm5
pxor xmm7, xmm15
movdqu xmmword [rsi + 0x40], xmm6
pxor xmm6, xmm6
pxor xmm8, xmm9
movdqu xmmword [rsi + 0x50], xmm7
pxor xmm7, xmm7
lea rsi, [rsi + 0x60]
movdqa xmm2, xmm8
pxor xmm8, xmm8
pxor xmm9, xmm9
jmp 0x14004aadc
movups xmmword [rsi], xmm7
lea rsi, [rsi + 0x10]
movdqu xmm2, xmmword [rdi]
movdqu xmm3, xmmword [rdi + 0x10]
movdqa xmm11, xmm2
movdqu xmm4, xmmword [rdi + 0x20]
movdqa xmm12, xmm3
movdqu xmm5, xmmword [rdi + 0x30]
movdqa xmm13, xmm4
movdqu xmm6, xmmword [rdi + 0x40]
movdqa xmm14, xmm5
movdqu xmm7, xmmword [rdi + 0x50]
movdqa xmm15, xmm6
lea rdi, [rdi + 0x60]
movdqa xmm8, xmm7
call fcn.140046d00
pxor xmm2, xmm10
movdqa xmm10, xmm8
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm6, xmm14
mov rcx, rbp
movdqu xmmword [rsi + 0x30], xmm5
pxor xmm7, xmm15
mov eax, r10d
movdqu xmmword [rsi + 0x40], xmm6
lea rsi, [rsi + 0x50]
sub rdx, 0x60
ja 0x14004a870
movdqa xmm2, xmm7
add rdx, 0x50
jle 0x14004aad0
movups xmmword [rsi], xmm7
lea rsi, [rsi + 0x10]
movups xmm2, xmmword [rdi]
sub rdx, 0x10
jbe 0x14004a9d0
movups xmm3, xmmword [rdi + 0x10]
movaps xmm11, xmm2
sub rdx, 0x10
jbe 0x14004aa10
movups xmm4, xmmword [rdi + 0x20]
movaps xmm12, xmm3
sub rdx, 0x10
jbe 0x14004aa40
movups xmm5, xmmword [rdi + 0x30]
movaps xmm13, xmm4
sub rdx, 0x10
jbe 0x14004aa80
movups xmm6, xmmword [rdi + 0x40]
movaps xmm14, xmm5
movaps xmm15, xmm6
xorps xmm7, xmm7
call fcn.140046d00
pxor xmm2, xmm10
movaps xmm10, xmm15
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm3, xmm3
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm4, xmm4
pxor xmm6, xmm14
movdqu xmmword [rsi + 0x30], xmm5
pxor xmm5, xmm5
lea rsi, [rsi + 0x40]
movdqa xmm2, xmm6
pxor xmm6, xmm6
pxor xmm7, xmm7
sub rdx, 0x10
jmp 0x14004aadc
movaps xmm11, xmm2
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 0x14004a9e2
aesdeclast xmm2, xmm1
xorps xmm2, xmm10
movaps xmm10, xmm11
jmp 0x14004aadc
movaps xmm12, xmm3
call fcn.1400469c0
pxor xmm2, xmm10
movaps xmm10, xmm12
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
movdqa xmm2, xmm3
pxor xmm3, xmm3
lea rsi, [rsi + 0x10]
jmp 0x14004aadc
movaps xmm13, xmm4
call fcn.140046a90
pxor xmm2, xmm10
movaps xmm10, xmm13
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm3, xmm3
movdqa xmm2, xmm4
pxor xmm4, xmm4
lea rsi, [rsi + 0x20]
jmp 0x14004aadc
movaps xmm14, xmm5
call fcn.140046b90
pxor xmm2, xmm10
movaps xmm10, xmm14
pxor xmm3, xmm11
movdqu xmmword [rsi], xmm2
pxor xmm4, xmm12
movdqu xmmword [rsi + 0x10], xmm3
pxor xmm3, xmm3
pxor xmm5, xmm13
movdqu xmmword [rsi + 0x20], xmm4
pxor xmm4, xmm4
movdqa xmm2, xmm5
pxor xmm5, xmm5
lea rsi, [rsi + 0x30]
jmp 0x14004aadc
pxor xmm3, xmm3
pxor xmm4, xmm4
pxor xmm5, xmm5
movups xmmword [r8], xmm10
and rdx, 0xf
jne 0x14004aaf0
movups xmmword [rsi], xmm2
pxor xmm2, xmm2
jmp 0x14004ab10
movaps xmmword [rsp], xmm2
pxor xmm2, xmm2
mov ecx, reloc.WS2_32.dll_recv
mov rdi, rsi
sub rcx, rdx
lea rsi, [rsp]
rep movsb byte [rdi], byte [rsi]
nop
movdqa xmmword [rsp], xmm2
xorps xmm0, xmm0
pxor xmm1, xmm1
movaps xmm6, xmmword [rsp + 0x10]
movaps xmmword [rsp + 0x10], xmm0
movaps xmm7, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm0
movaps xmm8, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x30], xmm0
movaps xmm9, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x40], xmm0
movaps xmm10, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x50], xmm0
movaps xmm11, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
movaps xmm12, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
movaps xmm13, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x80], xmm0
movaps xmm14, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x90], xmm0
movaps xmm15, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
mov rbp, qword [r11 - 8]
lea rsp, [r11]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret