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

Disassembly:
push ebp
mov ecx, eax
mov ebp, esp
push ebx
lea ebx, [eax + 0x400000]
and esp, 0xfffffff0
sub esp, 0xc0
movdqa xmm7, xmmword [edx + 0x20]
movdqa xmm2, xmm7
movdqa xmm4, xmmword [edx + 0x30]
pslldq xmm2, 4
movdqa xmm0, xmm2
aeskeygenassist xmm1, xmm4, 1
movdqa xmm6, xmmword [edx + 0x60]
pslldq xmm0, 4
movdqa xmm3, xmm0
pxor xmm0, xmm2
pshufd xmm1, xmm1, 0xff
pslldq xmm3, 4
movaps xmmword [esp + 0x40], xmm7
pxor xmm0, xmm7
movaps xmmword [esp + 0x50], xmm4
pxor xmm0, xmm3
movdqa xmm3, xmm4
pxor xmm0, xmm1
pslldq xmm3, 4
movdqa xmm7, xmm0
aeskeygenassist xmm1, xmm0, 0
movaps xmmword [esp + 0x70], xmm0
movdqa xmm0, xmm3
pshufd xmm1, xmm1, 0xaa
pslldq xmm0, 4
movdqa xmm2, xmm0
pxor xmm0, xmm3
movdqa xmm3, xmm7
pslldq xmm2, 4
pxor xmm0, xmm4
pslldq xmm3, 4
pxor xmm0, xmm2
pxor xmm0, xmm1
movdqa xmm4, xmm0
movaps xmmword [esp + 0x60], xmm0
aeskeygenassist xmm0, xmm0, 2
pshufd xmm1, xmm0, 0xff
movdqa xmm0, xmm3
pslldq xmm0, 4
movdqa xmm2, xmm0
pxor xmm0, xmm3
pslldq xmm2, 4
pxor xmm0, xmm2
pxor xmm0, xmm1
movdqa xmm1, xmm4
pxor xmm0, xmm7
pslldq xmm1, 4
movdqa xmm5, xmm0
aeskeygenassist xmm3, xmm0, 0
movaps xmmword [esp + 0x90], xmm0
movdqa xmm0, xmm1
pshufd xmm3, xmm3, 0xaa
pslldq xmm0, 4
movdqa xmm2, xmm0
pxor xmm0, xmm1
movdqa xmm1, xmm5
pslldq xmm2, 4
pxor xmm2, xmm0
pslldq xmm1, 4
movdqa xmm0, xmm1
pxor xmm3, xmm2
pslldq xmm0, 4
movdqa xmm2, xmm0
pxor xmm0, xmm1
pxor xmm3, xmm4
pslldq xmm2, 4
pxor xmm0, xmm2
movdqa xmm7, xmm3
movaps xmmword [esp + 0x80], xmm3
aeskeygenassist xmm3, xmm3, 4
movdqa xmm1, xmm7
pshufd xmm3, xmm3, 0xff
pslldq xmm1, 4
pxor xmm3, xmm0
movdqa xmm0, xmm1
pxor xmm3, xmm5
pslldq xmm0, 4
movdqa xmm2, xmm0
pxor xmm0, xmm1
movdqa xmm4, xmm3
pslldq xmm2, 4
movaps xmmword [esp + 0xb0], xmm3
aeskeygenassist xmm3, xmm3, 0
pxor xmm0, xmm2
movdqa xmm1, xmm4
pshufd xmm3, xmm3, 0xaa
pslldq xmm1, 4
pxor xmm0, xmm3
pxor xmm0, xmm7
movdqa xmm7, xmmword [edx + 0x50]
movdqa xmm5, xmm0
movaps xmmword [esp + 0xa0], xmm0
aeskeygenassist xmm0, xmm0, 8
pshufd xmm3, xmm0, 0xff
movdqa xmm0, xmm1
pslldq xmm0, 4
movdqa xmm2, xmm0
pxor xmm0, xmm1
movdqa xmm1, xmm5
pslldq xmm2, 4
pslldq xmm1, 4
pxor xmm0, xmm2
pxor xmm0, xmm3
pxor xmm0, xmm4
movdqa xmm4, xmmword [edx + 0x80]
movaps xmmword [esp + 0x30], xmm0
aeskeygenassist xmm0, xmm0, 0
pshufd xmm3, xmm0, 0xaa
movdqa xmm0, xmm1
pslldq xmm0, 4
movdqa xmm2, xmm0
pxor xmm0, xmm1
pslldq xmm2, 4
pxor xmm0, xmm2
movdqa xmm2, xmmword [edx + 0xa0]
pxor xmm0, xmm3
movdqa xmm3, xmmword [edx + 0x90]
movdqa xmm1, xmm2
pxor xmm0, xmm5
movdqa xmm5, xmmword [edx + 0x40]
movdqa xmm2, xmm3
movdqa xmm3, xmm4
movaps xmmword [esp + 0x10], xmm5
movaps xmmword [esp + 0x20], xmm0
movdqa xmm5, xmmword [edx + 0x70]
movdqa xmm0, xmmword [edx + 0xb0]
movdqa xmm4, xmm5
movdqa xmm5, xmm6
pxor xmm4, xmmword [ecx + 0x30]
sub ecx, 0xffffff80
movdqa xmm6, xmmword [esp + 0x10]
pxor xmm7, xmmword [ecx - 0x70]
pxor xmm6, xmmword [ecx - 0x80]
pxor xmm5, xmmword [ecx - 0x60]
pxor xmm3, xmmword [ecx - 0x40]
pxor xmm2, xmmword [ecx - 0x30]
pxor xmm1, xmmword [ecx - 0x20]
pxor xmm0, xmmword [ecx - 0x10]
cmp ebx, ecx
aesenc xmm4, xmmword [esp + 0x40]
aesenc xmm6, xmmword [esp + 0x40]
aesenc xmm7, xmmword [esp + 0x40]
aesenc xmm5, xmmword [esp + 0x40]
aesenc xmm3, xmmword [esp + 0x40]
aesenc xmm2, xmmword [esp + 0x40]
aesenc xmm1, xmmword [esp + 0x40]
aesenc xmm0, xmmword [esp + 0x40]
aesenc xmm4, xmmword [esp + 0x50]
aesenc xmm6, xmmword [esp + 0x50]
aesenc xmm7, xmmword [esp + 0x50]
aesenc xmm5, xmmword [esp + 0x50]
aesenc xmm3, xmmword [esp + 0x50]
aesenc xmm2, xmmword [esp + 0x50]
aesenc xmm1, xmmword [esp + 0x50]
aesenc xmm4, xmmword [esp + 0x70]
aesenc xmm0, xmmword [esp + 0x50]
aesenc xmm6, xmmword [esp + 0x70]
aesenc xmm7, xmmword [esp + 0x70]
aesenc xmm5, xmmword [esp + 0x70]
aesenc xmm3, xmmword [esp + 0x70]
aesenc xmm2, xmmword [esp + 0x70]
aesenc xmm1, xmmword [esp + 0x70]
aesenc xmm0, xmmword [esp + 0x70]
aesenc xmm4, xmmword [esp + 0x60]
aesenc xmm6, xmmword [esp + 0x60]
aesenc xmm7, xmmword [esp + 0x60]
aesenc xmm5, xmmword [esp + 0x60]
aesenc xmm3, xmmword [esp + 0x60]
aesenc xmm2, xmmword [esp + 0x60]
aesenc xmm1, xmmword [esp + 0x60]
aesenc xmm0, xmmword [esp + 0x60]
aesenc xmm4, xmmword [esp + 0x90]
aesenc xmm6, xmmword [esp + 0x90]
aesenc xmm7, xmmword [esp + 0x90]
aesenc xmm5, xmmword [esp + 0x90]
aesenc xmm3, xmmword [esp + 0x90]
aesenc xmm2, xmmword [esp + 0x90]
aesenc xmm1, xmmword [esp + 0x90]
aesenc xmm0, xmmword [esp + 0x90]
aesenc xmm4, xmmword [esp + 0x80]
aesenc xmm6, xmmword [esp + 0x80]
aesenc xmm7, xmmword [esp + 0x80]
aesenc xmm5, xmmword [esp + 0x80]
aesenc xmm3, xmmword [esp + 0x80]
aesenc xmm2, xmmword [esp + 0x80]
aesenc xmm1, xmmword [esp + 0x80]
aesenc xmm4, xmmword [esp + 0xb0]
aesenc xmm0, xmmword [esp + 0x80]
aesenc xmm6, xmmword [esp + 0xb0]
aesenc xmm7, xmmword [esp + 0xb0]
aesenc xmm5, xmmword [esp + 0xb0]
aesenc xmm3, xmmword [esp + 0xb0]
aesenc xmm2, xmmword [esp + 0xb0]
aesenc xmm1, xmmword [esp + 0xb0]
aesenc xmm0, xmmword [esp + 0xb0]
aesenc xmm4, xmmword [esp + 0xa0]
aesenc xmm6, xmmword [esp + 0xa0]
aesenc xmm7, xmmword [esp + 0xa0]
aesenc xmm4, xmmword [esp + 0x30]
aesenc xmm5, xmmword [esp + 0xa0]
aesenc xmm3, xmmword [esp + 0xa0]
aesenc xmm2, xmmword [esp + 0xa0]
aesenc xmm1, xmmword [esp + 0xa0]
aesenc xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x10], xmm4
aesenc xmm5, xmmword [esp + 0x30]
aesenc xmm6, xmmword [esp + 0x30]
aesenc xmm7, xmmword [esp + 0x30]
movdqa xmm4, xmmword [esp + 0x30]
aesenc xmm3, xmm4
aesenc xmm2, xmm4
aesenc xmm1, xmm4
aesenc xmm0, xmm4
movdqa xmm4, xmmword [esp + 0x20]
aesenc xmm6, xmm4
aesenc xmm7, xmm4
movdqa xmm4, xmm5
movdqa xmm5, xmmword [esp + 0x20]
aesenc xmm4, xmm5
aesenc xmm3, xmm5
aesenc xmm2, xmm5
movaps xmmword [esp], xmm4
aesenc xmm1, xmm5
aesenc xmm0, xmm5
movdqa xmm4, xmmword [esp + 0x10]
aesenc xmm4, xmm5
movdqa xmm5, xmm6
pxor xmm5, xmm7
movaps xmmword [esp + 0x10], xmm5
movdqa xmm5, xmmword [esp]
pxor xmm7, xmm5
pxor xmm5, xmm4
pxor xmm4, xmm3
pxor xmm3, xmm2
pxor xmm2, xmm1
pxor xmm1, xmm0
pxor xmm0, xmm6
jne 0x4a8362
lea esi, [esi]
lea edi, [edi]
pxor xmm4, xmmword [eax + 0x30]
sub eax, 0xffffff80
movdqa xmm6, xmmword [esp + 0x10]
pxor xmm7, xmmword [eax - 0x70]
pxor xmm6, xmmword [eax - 0x80]
pxor xmm5, xmmword [eax - 0x60]
pxor xmm3, xmmword [eax - 0x40]
pxor xmm2, xmmword [eax - 0x30]
pxor xmm1, xmmword [eax - 0x20]
pxor xmm0, xmmword [eax - 0x10]
cmp eax, ecx
aesenc xmm4, xmmword [esp + 0x40]
aesenc xmm6, xmmword [esp + 0x40]
aesenc xmm7, xmmword [esp + 0x40]
aesenc xmm5, xmmword [esp + 0x40]
aesenc xmm3, xmmword [esp + 0x40]
aesenc xmm2, xmmword [esp + 0x40]
aesenc xmm1, xmmword [esp + 0x40]
aesenc xmm0, xmmword [esp + 0x40]
aesenc xmm4, xmmword [esp + 0x50]
aesenc xmm6, xmmword [esp + 0x50]
aesenc xmm7, xmmword [esp + 0x50]
aesenc xmm5, xmmword [esp + 0x50]
aesenc xmm3, xmmword [esp + 0x50]
aesenc xmm2, xmmword [esp + 0x50]
aesenc xmm1, xmmword [esp + 0x50]
aesenc xmm4, xmmword [esp + 0x70]
aesenc xmm0, xmmword [esp + 0x50]
aesenc xmm6, xmmword [esp + 0x70]
aesenc xmm7, xmmword [esp + 0x70]
aesenc xmm5, xmmword [esp + 0x70]
aesenc xmm3, xmmword [esp + 0x70]
aesenc xmm2, xmmword [esp + 0x70]
aesenc xmm1, xmmword [esp + 0x70]
aesenc xmm0, xmmword [esp + 0x70]
aesenc xmm4, xmmword [esp + 0x60]
aesenc xmm6, xmmword [esp + 0x60]
aesenc xmm7, xmmword [esp + 0x60]
aesenc xmm5, xmmword [esp + 0x60]
aesenc xmm3, xmmword [esp + 0x60]
aesenc xmm2, xmmword [esp + 0x60]
aesenc xmm1, xmmword [esp + 0x60]
aesenc xmm0, xmmword [esp + 0x60]
aesenc xmm4, xmmword [esp + 0x90]
aesenc xmm6, xmmword [esp + 0x90]
aesenc xmm7, xmmword [esp + 0x90]
aesenc xmm5, xmmword [esp + 0x90]
aesenc xmm3, xmmword [esp + 0x90]
aesenc xmm2, xmmword [esp + 0x90]
aesenc xmm1, xmmword [esp + 0x90]
aesenc xmm0, xmmword [esp + 0x90]
aesenc xmm4, xmmword [esp + 0x80]
aesenc xmm6, xmmword [esp + 0x80]
aesenc xmm7, xmmword [esp + 0x80]
aesenc xmm5, xmmword [esp + 0x80]
aesenc xmm3, xmmword [esp + 0x80]
aesenc xmm2, xmmword [esp + 0x80]
aesenc xmm1, xmmword [esp + 0x80]
aesenc xmm4, xmmword [esp + 0xb0]
aesenc xmm0, xmmword [esp + 0x80]
aesenc xmm6, xmmword [esp + 0xb0]
aesenc xmm7, xmmword [esp + 0xb0]
aesenc xmm5, xmmword [esp + 0xb0]
aesenc xmm3, xmmword [esp + 0xb0]
aesenc xmm2, xmmword [esp + 0xb0]
aesenc xmm1, xmmword [esp + 0xb0]
aesenc xmm0, xmmword [esp + 0xb0]
aesenc xmm4, xmmword [esp + 0xa0]
aesenc xmm6, xmmword [esp + 0xa0]
aesenc xmm7, xmmword [esp + 0xa0]
aesenc xmm4, xmmword [esp + 0x30]
aesenc xmm5, xmmword [esp + 0xa0]
aesenc xmm3, xmmword [esp + 0xa0]
aesenc xmm2, xmmword [esp + 0xa0]
aesenc xmm1, xmmword [esp + 0xa0]
aesenc xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x10], xmm4
aesenc xmm5, xmmword [esp + 0x30]
aesenc xmm6, xmmword [esp + 0x30]
aesenc xmm7, xmmword [esp + 0x30]
movdqa xmm4, xmmword [esp + 0x30]
aesenc xmm3, xmm4
aesenc xmm2, xmm4
aesenc xmm1, xmm4
aesenc xmm0, xmm4
movdqa xmm4, xmmword [esp + 0x20]
aesenc xmm6, xmm4
aesenc xmm7, xmm4
movdqa xmm4, xmm5
movdqa xmm5, xmmword [esp + 0x20]
aesenc xmm4, xmm5
aesenc xmm3, xmm5
aesenc xmm2, xmm5
movaps xmmword [esp], xmm4
aesenc xmm1, xmm5
aesenc xmm0, xmm5
movdqa xmm4, xmmword [esp + 0x10]
aesenc xmm4, xmm5
movdqa xmm5, xmm6
pxor xmm5, xmm7
movaps xmmword [esp + 0x10], xmm5
movdqa xmm5, xmmword [esp]
pxor xmm7, xmm5
pxor xmm5, xmm4
pxor xmm4, xmm3
pxor xmm3, xmm2
pxor xmm2, xmm1
pxor xmm1, xmm0
pxor xmm0, xmm6
jne 0x4a8670
movdqa xmm6, xmm5
mov eax, 0x10
movdqa xmm5, xmm4
movdqa xmm4, xmm3
movdqa xmm3, xmm2
movaps xmmword [esp], xmm0
movdqa xmm2, xmm4
movdqa xmm4, xmm5
movdqa xmm5, xmm6
movdqa xmm6, xmm7
lea esi, [esi]
movdqa xmm0, xmmword [esp + 0x10]
sub eax, 1
aesenc xmm0, xmmword [esp + 0x40]
movdqa xmm7, xmm0
movdqa xmm0, xmmword [esp + 0x40]
aesenc xmm1, xmm0
aesenc xmm4, xmm0
aesenc xmm6, xmm0
movaps xmmword [esp + 0x10], xmm1
aesenc xmm5, xmm0
aesenc xmm2, xmm0
aesenc xmm3, xmm0
movdqa xmm1, xmmword [esp]
aesenc xmm1, xmm0
movdqa xmm0, xmmword [esp + 0x10]
movaps xmmword [esp], xmm1
movdqa xmm1, xmmword [esp + 0x50]
aesenc xmm4, xmm1
aesenc xmm0, xmm1
aesenc xmm7, xmm1
aesenc xmm6, xmm1
aesenc xmm5, xmm1
aesenc xmm2, xmm1
aesenc xmm3, xmm1
movdqa xmm1, xmm0
aesenc xmm4, xmmword [esp + 0x70]
movdqa xmm0, xmmword [esp]
aesenc xmm7, xmmword [esp + 0x70]
aesenc xmm6, xmmword [esp + 0x70]
aesenc xmm0, xmmword [esp + 0x50]
aesenc xmm5, xmmword [esp + 0x70]
aesenc xmm2, xmmword [esp + 0x70]
aesenc xmm3, xmmword [esp + 0x70]
aesenc xmm1, xmmword [esp + 0x70]
aesenc xmm4, xmmword [esp + 0x60]
aesenc xmm0, xmmword [esp + 0x70]
aesenc xmm7, xmmword [esp + 0x60]
aesenc xmm6, xmmword [esp + 0x60]
aesenc xmm5, xmmword [esp + 0x60]
aesenc xmm2, xmmword [esp + 0x60]
aesenc xmm3, xmmword [esp + 0x60]
aesenc xmm4, xmmword [esp + 0x90]
aesenc xmm1, xmmword [esp + 0x60]
aesenc xmm0, xmmword [esp + 0x60]
aesenc xmm7, xmmword [esp + 0x90]
aesenc xmm6, xmmword [esp + 0x90]
aesenc xmm5, xmmword [esp + 0x90]
aesenc xmm2, xmmword [esp + 0x90]
aesenc xmm3, xmmword [esp + 0x90]
aesenc xmm1, xmmword [esp + 0x90]
aesenc xmm4, xmmword [esp + 0x80]
aesenc xmm0, xmmword [esp + 0x90]
aesenc xmm7, xmmword [esp + 0x80]
aesenc xmm4, xmmword [esp + 0xb0]
aesenc xmm6, xmmword [esp + 0x80]
aesenc xmm5, xmmword [esp + 0x80]
aesenc xmm2, xmmword [esp + 0x80]
aesenc xmm3, xmmword [esp + 0x80]
aesenc xmm1, xmmword [esp + 0x80]
aesenc xmm0, xmmword [esp + 0x80]
aesenc xmm4, xmmword [esp + 0xa0]
aesenc xmm7, xmmword [esp + 0xb0]
aesenc xmm6, xmmword [esp + 0xb0]
aesenc xmm5, xmmword [esp + 0xb0]
aesenc xmm2, xmmword [esp + 0xb0]
aesenc xmm3, xmmword [esp + 0xb0]
aesenc xmm1, xmmword [esp + 0xb0]
aesenc xmm0, xmmword [esp + 0xb0]
aesenc xmm4, xmmword [esp + 0x30]
aesenc xmm7, xmmword [esp + 0xa0]
aesenc xmm6, xmmword [esp + 0xa0]
aesenc xmm5, xmmword [esp + 0xa0]
aesenc xmm2, xmmword [esp + 0xa0]
aesenc xmm3, xmmword [esp + 0xa0]
aesenc xmm1, xmmword [esp + 0xa0]
aesenc xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x10], xmm4
aesenc xmm5, xmmword [esp + 0x30]
aesenc xmm7, xmmword [esp + 0x30]
aesenc xmm6, xmmword [esp + 0x30]
movdqa xmm4, xmmword [esp + 0x30]
aesenc xmm2, xmm4
aesenc xmm3, xmm4
aesenc xmm1, xmm4
aesenc xmm0, xmm4
movdqa xmm4, xmmword [esp + 0x20]
aesenc xmm7, xmm4
aesenc xmm6, xmm4
movdqa xmm4, xmm5
movdqa xmm5, xmmword [esp + 0x20]
aesenc xmm4, xmm5
aesenc xmm2, xmm5
aesenc xmm3, xmm5
movaps xmmword [esp], xmm4
aesenc xmm1, xmm5
aesenc xmm0, xmm5
movdqa xmm4, xmmword [esp + 0x10]
aesenc xmm4, xmm5
movdqa xmm5, xmm7
pxor xmm5, xmm6
movaps xmmword [esp + 0x10], xmm5
movdqa xmm5, xmmword [esp]
pxor xmm6, xmm5
pxor xmm5, xmm4
pxor xmm4, xmm2
pxor xmm2, xmm3
pxor xmm3, xmm1
pxor xmm1, xmm0
pxor xmm0, xmm7
movaps xmmword [esp], xmm0
jne 0x4a89a0
movdqa xmm7, xmm6
mov ebx, dword [ebp - 4]
movdqa xmm6, xmm5
movdqa xmm5, xmm4
movdqa xmm4, xmm2
movdqa xmm2, xmm1
movdqa xmm1, xmmword [esp + 0x10]
movaps xmmword [edx + 0x50], xmm7
movaps xmmword [edx + 0x40], xmm1
movaps xmmword [edx + 0x60], xmm6
movaps xmmword [edx + 0x70], xmm5
movaps xmmword [edx + 0x80], xmm4
movaps xmmword [edx + 0x90], xmm3
movaps xmmword [edx + 0xa0], xmm2
movaps xmmword [edx + 0xb0], xmm0
leave
ret