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

Disassembly:
push ebp
push ebx
push esi
push edi
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
and eax, 0xfffffff0
je 0x4cdee4
mov ecx, dword [edx + 0xf0]
test ebx, ebx
je 0x4cdd60
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x4cdc7b
movdqu xmm2, xmmword [esi]
movdqu xmm3, xmmword [esi + 0x10]
movdqu xmm4, xmmword [esi + 0x20]
movdqu xmm5, xmmword [esi + 0x30]
movdqu xmm6, xmmword [esi + 0x40]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
sub eax, 0x60
jmp 0x4cdc4a
movups xmmword [edi], xmm2
movdqu xmm2, xmmword [esi]
movups xmmword [edi + 0x10], xmm3
movdqu xmm3, xmmword [esi + 0x10]
movups xmmword [edi + 0x20], xmm4
movdqu xmm4, xmmword [esi + 0x20]
movups xmmword [edi + 0x30], xmm5
movdqu xmm5, xmmword [esi + 0x30]
movups xmmword [edi + 0x40], xmm6
movdqu xmm6, xmmword [esi + 0x40]
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
call fcn.004cd9e0
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x4cdc10
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
add eax, 0x60
je 0x4cdee4
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x4cdcd0
movups xmm3, xmmword [esi + 0x10]
je 0x4cdd00
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x4cdd20
movups xmm5, xmmword [esi + 0x30]
je 0x4cdd40
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.004cd9e0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
jmp 0x4cdee4
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
lea edx, [edx + 0x20]
xorps xmm2, xmm0
aesenc xmm2, xmm1
dec ecx
movups xmm1, xmmword [edx]
lea edx, [edx + 0x10]
jne 0x4cdcdd
aesenclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x4cdee4
xorps xmm4, xmm4
call fcn.004cd800
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x4cdee4
call fcn.004cd800
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x4cdee4
call fcn.004cd8e0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
jmp 0x4cdee4
mov ebp, edx
mov ebx, ecx
cmp eax, 0x60
jb 0x4cde0b
movdqu xmm2, xmmword [esi]
movdqu xmm3, xmmword [esi + 0x10]
movdqu xmm4, xmmword [esi + 0x20]
movdqu xmm5, xmmword [esi + 0x30]
movdqu xmm6, xmmword [esi + 0x40]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
sub eax, 0x60
jmp 0x4cddda
movups xmmword [edi], xmm2
movdqu xmm2, xmmword [esi]
movups xmmword [edi + 0x10], xmm3
movdqu xmm3, xmmword [esi + 0x10]
movups xmmword [edi + 0x20], xmm4
movdqu xmm4, xmmword [esi + 0x20]
movups xmmword [edi + 0x30], xmm5
movdqu xmm5, xmmword [esi + 0x30]
movups xmmword [edi + 0x40], xmm6
movdqu xmm6, xmmword [esi + 0x40]
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
movdqu xmm7, xmmword [esi + 0x50]
lea esi, [esi + 0x60]
call fcn.004cdac0
mov edx, ebp
mov ecx, ebx
sub eax, 0x60
jae 0x4cdda0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
movups xmmword [edi + 0x50], xmm7
lea edi, [edi + 0x60]
add eax, 0x60
je 0x4cdee4
movups xmm2, xmmword [esi]
cmp eax, 0x20
jb 0x4cde60
movups xmm3, xmmword [esi + 0x10]
je 0x4cde90
movups xmm4, xmmword [esi + 0x20]
cmp eax, 0x40
jb 0x4cdeb0
movups xmm5, xmmword [esi + 0x30]
je 0x4cded0
movups xmm6, xmmword [esi + 0x40]
xorps xmm7, xmm7
call fcn.004cdac0
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
movups xmmword [edi + 0x40], xmm6
jmp 0x4cdee4
movups xmm0, xmmword [edx]
movups xmm1, xmmword [edx + 0x10]
lea edx, [edx + 0x20]
xorps xmm2, xmm0
aesdec xmm2, xmm1
dec ecx
movups xmm1, xmmword [edx]
lea edx, [edx + 0x10]
jne 0x4cde6d
aesdeclast xmm2, xmm1
movups xmmword [edi], xmm2
jmp 0x4cdee4
xorps xmm4, xmm4
call fcn.004cd870
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
jmp 0x4cdee4
call fcn.004cd870
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
jmp 0x4cdee4
call fcn.004cd960
movups xmmword [edi], xmm2
movups xmmword [edi + 0x10], xmm3
movups xmmword [edi + 0x20], xmm4
movups xmmword [edi + 0x30], xmm5
pop edi
pop esi
pop ebx
pop ebp
ret