Function at 0x3c6099
Capabilities:
Decrypt data using aes via x86 extensions
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef0
push esi
push edi
mov eax, dword [ebp + 0x14]
movdqu xmm5, xmmword [eax]
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
sub edi, esi
test eax, eax
je 0x3c637e
cmp eax, 4
jl 0x3c62e9
test ecx, 0xf
je 0x3c6169
lea edx, [ebp - 0x101]
and edx, 0xfffffff0
movdqu xmm4, xmmword [ecx]
movdqa xmmword [edx], xmm4
movdqu xmm4, xmmword [ecx + 0x10]
movdqa xmmword [edx + 0x10], xmm4
movdqu xmm4, xmmword [ecx + 0x20]
movdqa xmmword [edx + 0x20], xmm4
movdqu xmm4, xmmword [ecx + 0x30]
movdqa xmmword [edx + 0x30], xmm4
movdqu xmm4, xmmword [ecx + 0x40]
movdqa xmmword [edx + 0x40], xmm4
movdqu xmm4, xmmword [ecx + 0x50]
movdqa xmmword [edx + 0x50], xmm4
movdqu xmm4, xmmword [ecx + 0x60]
movdqa xmmword [edx + 0x60], xmm4
movdqu xmm4, xmmword [ecx + 0x70]
movdqa xmmword [edx + 0x70], xmm4
movdqu xmm4, xmmword [ecx + 0x80]
movdqa xmmword [edx + 0x80], xmm4
movdqu xmm4, xmmword [ecx + 0x90]
movdqa xmmword [edx + 0x90], xmm4
movdqu xmm4, xmmword [ecx + 0xa0]
movdqa xmmword [edx + 0xa0], xmm4
mov ecx, edx
lea esp, [esp]
lea ecx, [ecx]
movdqa xmm4, xmmword [ecx + 0xa0]
movdqu xmm0, xmmword [esi]
pxor xmm0, xmm4
movdqu xmm1, xmmword [esi + 0x10]
pxor xmm1, xmm4
movdqu xmm2, xmmword [esi + 0x20]
pxor xmm2, xmm4
movdqu xmm3, xmmword [esi + 0x30]
pxor xmm3, xmm4
add esi, 0x40
movdqa xmm4, xmmword [ecx + 0x90]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x80]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x70]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x60]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x50]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x40]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x30]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x20]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx + 0x10]
aesdec xmm0, xmm4
aesdec xmm1, xmm4
aesdec xmm2, xmm4
aesdec xmm3, xmm4
movdqa xmm4, xmmword [ecx]
aesdeclast xmm0, xmm4
aesdeclast xmm1, xmm4
aesdeclast xmm2, xmm4
aesdeclast xmm3, xmm4
pxor xmm0, xmm5
movdqu xmm4, xmmword [esi - 0x40]
pxor xmm1, xmm4
movdqu xmm4, xmmword [esi - 0x30]
pxor xmm2, xmm4
movdqu xmm4, xmmword [esi - 0x20]
pxor xmm3, xmm4
movdqu xmm5, xmmword [esi - 0x10]
movdqu xmmword [esi + edi - 0x40], xmm0
movdqu xmmword [esi + edi - 0x30], xmm1
movdqu xmmword [esi + edi - 0x20], xmm2
movdqu xmmword [esi + edi - 0x10], xmm3
sub eax, 4
je 0x3c637e
cmp eax, 4
jge 0x3c6169
jmp 0x3c62e9
movdqu xmm0, xmmword [esi]
movdqa xmm1, xmm0
movdqu xmm4, xmmword [ecx + 0xa0]
pxor xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x90]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x80]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x70]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x60]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x50]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x40]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x30]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x20]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx + 0x10]
aesdec xmm0, xmm4
movdqu xmm4, xmmword [ecx]
aesdeclast xmm0, xmm4
pxor xmm0, xmm5
movdqa xmm5, xmm1
add esi, 0x10
movdqu xmmword [edi + esi - 0x10], xmm0
dec eax
jne 0x3c62e9
pop edi
pop esi
leave
ret 0x14