Function at 0xec8ed9
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffec0
push ebx
push esi
push edi
movdqu xmmword [ebp - 0x120], xmm6
cmp dword [ebp + 0x10], 0
je 0xec94ac
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
shr ecx, 4
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x128], edx
mov dword [ebp - 0x130], ecx
xor eax, eax
mov dword [ebp - 0x12c], eax
movdqu xmm5, xmmword [ebp - 0x130]
xor eax, eax
inc eax
movd xmm6, eax
test byte [ebp + 0x14], 0xf
je 0xec9028
movdqa xmm0, xmm5
movdqu xmm4, xmmword [esi]
pxor xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x10]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x20]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x30]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x40]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x50]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x60]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x70]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x80]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x90]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xa0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xb0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xc0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xd0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xe0]
aesenclast xmm0, xmm4
movdqu xmmword [ebp - 0x140], xmm0
mov edx, dword [ebp + 0x14]
mov ecx, 0x10
and edx, 0xf
sub ecx, edx
cmp ecx, dword [ebp + 0x10]
cmova ecx, dword [ebp + 0x10]
lea edx, [ebp + edx - 0x140]
mov ebx, ecx
mov al, byte [edx + ecx - 1]
xor byte [edi + ecx - 1], al
dec ecx
jne 0xec900e
add edi, ebx
sub dword [ebp + 0x10], ebx
je 0xec94ac
paddd xmm5, xmm6
cmp dword [ebp + 0x10], 0x40
jl 0xec9309
test esi, 0xf
je 0xec9109
lea edx, [ebp - 0x101]
and edx, 0xfffffff0
movdqu xmm4, xmmword [esi]
movdqa xmmword [edx], xmm4
movdqu xmm4, xmmword [esi + 0x10]
movdqa xmmword [edx + 0x10], xmm4
movdqu xmm4, xmmword [esi + 0x20]
movdqa xmmword [edx + 0x20], xmm4
movdqu xmm4, xmmword [esi + 0x30]
movdqa xmmword [edx + 0x30], xmm4
movdqu xmm4, xmmword [esi + 0x40]
movdqa xmmword [edx + 0x40], xmm4
movdqu xmm4, xmmword [esi + 0x50]
movdqa xmmword [edx + 0x50], xmm4
movdqu xmm4, xmmword [esi + 0x60]
movdqa xmmword [edx + 0x60], xmm4
movdqu xmm4, xmmword [esi + 0x70]
movdqa xmmword [edx + 0x70], xmm4
movdqu xmm4, xmmword [esi + 0x80]
movdqa xmmword [edx + 0x80], xmm4
movdqu xmm4, xmmword [esi + 0x90]
movdqa xmmword [edx + 0x90], xmm4
movdqu xmm4, xmmword [esi + 0xa0]
movdqa xmmword [edx + 0xa0], xmm4
movdqu xmm4, xmmword [esi + 0xb0]
movdqa xmmword [edx + 0xb0], xmm4
movdqu xmm4, xmmword [esi + 0xc0]
movdqa xmmword [edx + 0xc0], xmm4
movdqu xmm4, xmmword [esi + 0xd0]
movdqa xmmword [edx + 0xd0], xmm4
movdqu xmm4, xmmword [esi + 0xe0]
movdqa xmmword [edx + 0xe0], xmm4
mov esi, edx
mov edi, edi
movdqa xmm0, xmm5
paddd xmm5, xmm6
movdqa xmm1, xmm5
paddd xmm5, xmm6
movdqa xmm2, xmm5
paddd xmm5, xmm6
movdqa xmm3, xmm5
paddd xmm5, xmm6
movdqa xmm4, xmmword [esi]
pxor xmm0, xmm4
pxor xmm1, xmm4
pxor xmm2, xmm4
pxor xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x10]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x20]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x30]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x40]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x50]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x60]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x70]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x80]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0x90]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0xa0]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0xb0]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0xc0]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0xd0]
aesenc xmm0, xmm4
aesenc xmm1, xmm4
aesenc xmm2, xmm4
aesenc xmm3, xmm4
movdqa xmm4, xmmword [esi + 0xe0]
aesenclast xmm0, xmm4
aesenclast xmm1, xmm4
aesenclast xmm2, xmm4
aesenclast xmm3, xmm4
movdqu xmm4, xmmword [edi]
pxor xmm0, xmm4
movdqu xmm4, xmmword [edi + 0x10]
pxor xmm1, xmm4
movdqu xmm4, xmmword [edi + 0x20]
pxor xmm2, xmm4
movdqu xmm4, xmmword [edi + 0x30]
pxor xmm3, xmm4
movdqu xmmword [edi], xmm0
movdqu xmmword [edi + 0x10], xmm1
movdqu xmmword [edi + 0x20], xmm2
movdqu xmmword [edi + 0x30], xmm3
add edi, 0x40
sub dword [ebp + 0x10], 0x40
je 0xec94ac
cmp dword [ebp + 0x10], 0x40
jge 0xec9109
lea esp, [esp]
jmp 0xec9309
cmp dword [ebp + 0x10], 0x10
jb 0xec93e2
movdqa xmm0, xmm5
movdqu xmm4, xmmword [esi]
pxor xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x10]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x20]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x30]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x40]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x50]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x60]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x70]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x80]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x90]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xa0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xb0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xc0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xd0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xe0]
aesenclast xmm0, xmm4
movdqu xmm4, xmmword [edi]
pxor xmm0, xmm4
movdqu xmmword [edi], xmm0
paddd xmm5, xmm6
add edi, 0x10
sub dword [ebp + 0x10], 0x10
jne 0xec9309
jmp 0xec94ac
movdqa xmm0, xmm5
movdqu xmm4, xmmword [esi]
pxor xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x10]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x20]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x30]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x40]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x50]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x60]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x70]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x80]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0x90]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xa0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xb0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xc0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xd0]
aesenc xmm0, xmm4
movdqu xmm4, xmmword [esi + 0xe0]
aesenclast xmm0, xmm4
movdqu xmmword [ebp - 0x140], xmm0
mov edx, dword [ebp + 0x10]
test edx, edx
je 0xec94ac
mov al, byte [ebp + edx - 0x141]
xor byte [edi + edx - 1], al
dec edx
jne 0xec949e
movdqu xmm6, xmmword [ebp - 0x120]
pop edi
pop esi
pop ebx
leave
ret 0x18