Function at 0x4af310
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, eax
and esp, 0xfffffff0
sub esp, 0x150
lea eax, [esp + 0x140]
mov dword [esp + 0x28], edx
lea ecx, [esp + 0xc0]
lea edx, [esp + 0xb0]
lea edi, [esp + 0x50]
lea esi, [esp + 0x40]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x130]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x100]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xf0]
mov dword [esp + 8], eax
lea eax, [esp + 0xe0]
mov dword [esp + 4], eax
lea eax, [esp + 0xd0]
mov dword [esp], eax
mov eax, ebx
call fcn.004a0980
movdqa xmm4, xmmword [ebx + 0x40]
mov dword [esp + 0x2c], 0x10
movdqa xmm5, xmmword [ebx + 0x50]
movdqa xmm6, xmmword [ebx + 0x60]
movdqa xmm7, xmmword [ebx + 0x70]
movaps xmmword [esp + 0x30], xmm4
movaps xmmword [esp + 0x40], xmm5
movaps xmmword [esp + 0x50], xmm6
movaps xmmword [esp + 0x60], xmm7
movdqa xmm4, xmmword [ebx + 0x80]
movdqa xmm5, xmmword [ebx + 0x90]
movdqa xmm6, xmmword [ebx + 0xa0]
movdqa xmm7, xmmword [ebx + 0xb0]
lea ebx, [esp + 0x30]
movaps xmmword [esp + 0x70], xmm4
movaps xmmword [esp + 0x80], xmm5
movaps xmmword [esp + 0x90], xmm6
movaps xmmword [esp + 0xa0], xmm7
lea esi, [esi]
lea eax, [esp + 0xa0]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp + 8], edi
movdqa xmm0, xmmword [esp + 0xb0]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xc0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xd0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xe0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xf0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x100]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x110]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x120]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x130]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x140]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
movdqa xmm0, xmmword [esp + 0x30]
sub dword [esp + 0x2c], 1
movdqa xmm1, xmmword [esp + 0x40]
pxor xmm1, xmm0
pxor xmm0, xmmword [esp + 0xa0]
movaps xmmword [esp + 0x30], xmm1
movdqa xmm1, xmmword [esp + 0x40]
pxor xmm1, xmmword [esp + 0x50]
movaps xmmword [esp + 0x40], xmm1
movdqa xmm1, xmmword [esp + 0x50]
pxor xmm1, xmmword [esp + 0x60]
movaps xmmword [esp + 0x50], xmm1
movdqa xmm1, xmmword [esp + 0x60]
pxor xmm1, xmmword [esp + 0x70]
movaps xmmword [esp + 0x60], xmm1
movdqa xmm1, xmmword [esp + 0x70]
pxor xmm1, xmmword [esp + 0x80]
movaps xmmword [esp + 0x70], xmm1
movdqa xmm1, xmmword [esp + 0x80]
pxor xmm1, xmmword [esp + 0x90]
movaps xmmword [esp + 0x80], xmm1
movdqa xmm1, xmmword [esp + 0x90]
pxor xmm1, xmmword [esp + 0xa0]
movaps xmmword [esp + 0xa0], xmm0
movaps xmmword [esp + 0x90], xmm1
jne 0x4af410
mov eax, dword [esp + 0x28]
lea edx, [eax + 0x400000]
mov dword [esp + 0x28], edx
nop
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xa0]
mov dword [esp + 8], edi
movdqa xmm0, xmmword [esp + 0xb0]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xc0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xd0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xe0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0xf0]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x100]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x110]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x120]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x130]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
lea eax, [esp + 0xa0]
movdqa xmm0, xmmword [esp + 0x140]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x60]
mov dword [esp + 0xc], eax
call fcn.004a98d0
mov eax, dword [esp + 0x2c]
movdqa xmm2, xmmword [esp + 0x30]
movdqa xmm3, xmmword [esp + 0x40]
sub eax, 0xffffff80
movaps xmmword [eax - 0x80], xmm2
movaps xmmword [eax - 0x70], xmm3
movdqa xmm4, xmmword [esp + 0x50]
movdqa xmm5, xmmword [esp + 0x60]
movdqa xmm6, xmmword [esp + 0x70]
movdqa xmm7, xmmword [esp + 0x80]
movdqa xmm2, xmmword [esp + 0x90]
movdqa xmm3, xmmword [esp + 0xa0]
movaps xmmword [eax - 0x60], xmm4
movaps xmmword [eax - 0x50], xmm5
movaps xmmword [eax - 0x40], xmm6
movaps xmmword [eax - 0x30], xmm7
movaps xmmword [eax - 0x20], xmm2
movaps xmmword [eax - 0x10], xmm3
cmp eax, dword [esp + 0x28]
jne 0x4af7b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret