Function at 0x1018bb30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x2c4
mov dword [esp], edx
cmp dword [ebp + 0x14], 0
jle 0x1018c4a4
mov edi, ecx
lea ebx, [ecx + 1]
mov esi, ebx
lea edx, [ecx + ecx*4]
shr esi, 0x1f
mov dword [esp + 0x18], edx
add esi, ebx
shl edx, 4
lea ebx, [ecx + ecx*2]
movaps xmm7, xmmword [0x103a3de0]
mov dword [esp + 0x2c], edx
mov edx, ecx
shl edi, 4
mov dword [esp + 0x20], edi
lea edi, [ecx*8]
movaps xmmword [esp + 0xc0], xmm7
sub edi, ecx
shl edx, 5
movaps xmm0, xmmword [0x103a3d80]
movaps xmm7, xmmword [0x103a3df0]
mov dword [esp + 0x1c], edx
mov edx, ebx
mov dword [esp + 0x24], edi
mov edi, ecx
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xb0], xmm7
shl edx, 4
movaps xmm6, xmmword [0x103a3e10]
movaps xmm5, xmmword [0x103a3d70]
movaps xmm4, xmmword [0x103a3d90]
movaps xmm3, xmmword [0x103a3da0]
movaps xmm2, xmmword [0x103a3db0]
movaps xmm1, xmmword [0x103a3dc0]
movaps xmm0, xmmword [0x103a3dd0]
movaps xmm7, xmmword [0x103a3e00]
mov dword [esp + 4], 0
sar esi, 1
shl edi, 6
mov dword [esp + 0x14], edi
lea edi, [ecx + ecx*8]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
movaps xmmword [esp + 0xa0], xmm7
mov dword [esp + 0x10], edi
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x60], xmm1
movaps xmmword [esp + 0x80], xmm2
movaps xmmword [esp + 0x50], xmm3
movaps xmmword [esp + 0x40], xmm4
movaps xmmword [esp + 0x30], xmm5
movaps xmmword [esp + 0x90], xmm6
mov dword [esp + 0x270], esi
mov dword [esp + 0x28], ecx
mov ebx, dword [esp + 4]
mov edx, dword [esp]
mov dword [esp], eax
cmp dword [esp + 0x28], 0
jle 0x1018c492
mov edi, dword [esp + 0x2c]
xor ecx, ecx
mov dword [esp + 4], ebx
mov ebx, ecx
lea esi, [edi + eax]
mov dword [esp + 0x298], esi
lea esi, [edi + edx]
mov dword [esp + 0x29c], esi
mov esi, dword [esp + 0x28]
lea edi, [eax + esi*8]
mov dword [esp + 0x2a0], edi
lea edi, [edx + esi*8]
mov dword [esp + 0x2a4], edi
mov edi, dword [esp + 0x20]
lea esi, [eax + edi]
mov dword [esp + 0x2a8], esi
lea esi, [edx + edi]
mov dword [esp + 0x2ac], esi
mov esi, dword [esp + 8]
lea edi, [eax + esi*8]
mov dword [esp + 0x2b0], edi
lea edi, [edx + esi*8]
mov dword [esp + 0x2b4], edi
mov edi, dword [esp + 0x1c]
lea esi, [eax + edi]
mov dword [esp + 0x2b8], esi
lea esi, [edx + edi]
mov dword [esp + 0x2bc], esi
mov esi, dword [esp + 0x18]
lea edi, [eax + esi*8]
mov dword [esp + 0x2c0], edi
lea edi, [edx + esi*8]
mov dword [esp + 0x294], edi
mov edi, dword [esp + 0xc]
lea esi, [eax + edi]
mov dword [esp + 0x290], esi
lea esi, [edx + edi]
mov dword [esp + 0x28c], esi
mov esi, dword [esp + 0x24]
lea edi, [eax + esi*8]
mov dword [esp + 0x288], edi
lea edi, [edx + esi*8]
mov dword [esp + 0x284], edi
mov edi, dword [esp + 0x14]
lea esi, [eax + edi]
mov dword [esp + 0x280], esi
lea esi, [edx + edi]
mov dword [esp + 0x27c], esi
mov edi, dword [esp + 0x10]
lea esi, [eax + edi*8]
mov dword [esp + 0x278], esi
lea eax, [edx + edi*8]
mov dword [esp + 0x274], eax
mov edi, edx
mov esi, dword [esp]
mov edx, dword [esp + 0x2a8]
mov eax, dword [esp + 0x2a0]
movaps xmm6, xmmword [ebx + edx]
mov edx, dword [esp + 0x2b8]
movaps xmm2, xmmword [ebx + eax]
mov eax, dword [esp + 0x2b0]
movaps xmm7, xmmword [ebx + edx]
mov edx, dword [esp + 0x290]
movaps xmm1, xmmword [ebx + eax]
mov eax, dword [esp + 0x2c0]
movaps xmm4, xmmword [ebx + edx]
mov edx, dword [esp + 0x280]
movaps xmm0, xmmword [ebx + eax]
mov eax, dword [esp + 0x288]
movaps xmm5, xmmword [ebx + edx]
mov edx, dword [esp + 0x298]
movaps xmm3, xmmword [ebx + eax]
mov eax, dword [esp + 0x278]
movaps xmmword [esp + 0xf0], xmm3
movaps xmm3, xmmword [ebx + edx]
lea edx, [ecx + ecx*4]
shl edx, 5
inc ecx
movaps xmmword [esp + 0xe0], xmm4
movaps xmm4, xmmword [ebx + eax]
mov eax, dword [ebp + 0x18]
movaps xmmword [esp + 0x100], xmm5
movaps xmmword [esp + 0x120], xmm3
movaps xmm5, xmmword [eax + edx]
movaps xmm3, xmm5
shufps xmm3, xmm5, 0xa0
movaps xmmword [esp + 0x110], xmm4
mulps xmm3, xmm2
shufps xmm2, xmm2, 0xb1
movaps xmm4, xmmword [esp + 0x90]
shufps xmm5, xmm5, 0xf5
pxor xmm2, xmm4
mulps xmm5, xmm2
subps xmm3, xmm5
movaps xmm5, xmmword [eax + edx + 0x10]
movaps xmm2, xmm5
shufps xmm2, xmm5, 0xa0
mulps xmm2, xmm6
shufps xmm6, xmm6, 0xb1
shufps xmm5, xmm5, 0xf5
pxor xmm6, xmm4
mulps xmm5, xmm6
movaps xmm6, xmmword [eax + edx + 0x20]
subps xmm2, xmm5
movaps xmm5, xmm6
shufps xmm5, xmm6, 0xa0
mulps xmm5, xmm1
shufps xmm1, xmm1, 0xb1
shufps xmm6, xmm6, 0xf5
pxor xmm1, xmm4
mulps xmm6, xmm1
nop dword [eax]
movaps xmm1, xmmword [eax + edx + 0x30]
subps xmm5, xmm6
movaps xmm6, xmm1
shufps xmm6, xmm1, 0xa0
mulps xmm6, xmm7
shufps xmm7, xmm7, 0xb1
shufps xmm1, xmm1, 0xf5
pxor xmm7, xmm4
mulps xmm1, xmm7
movaps xmm7, xmmword [eax + edx + 0x40]
subps xmm6, xmm1
movaps xmm1, xmm7
shufps xmm1, xmm7, 0xa0
mulps xmm1, xmm0
shufps xmm0, xmm0, 0xb1
shufps xmm7, xmm7, 0xf5
pxor xmm0, xmm4
mulps xmm7, xmm0
movaps xmm0, xmmword [esp + 0xe0]
subps xmm1, xmm7
movaps xmm7, xmmword [eax + edx + 0x50]
movaps xmmword [esp + 0x140], xmm1
movaps xmm1, xmm7
shufps xmm1, xmm7, 0xa0
mulps xmm1, xmm0
shufps xmm0, xmm0, 0xb1
shufps xmm7, xmm7, 0xf5
pxor xmm0, xmm4
mulps xmm7, xmm0
movaps xmmword [esp + 0x130], xmm6
subps xmm1, xmm7
movaps xmm7, xmmword [eax + edx + 0x60]
movaps xmm0, xmm7
shufps xmm0, xmm7, 0xa0
movaps xmm6, xmmword [esp + 0xf0]
mulps xmm0, xmm6
shufps xmm6, xmm6, 0xb1
shufps xmm7, xmm7, 0xf5
pxor xmm6, xmm4
mulps xmm7, xmm6
movaps xmmword [esp + 0x150], xmm1
subps xmm0, xmm7
movaps xmm7, xmmword [eax + edx + 0x70]
movaps xmmword [esp + 0x160], xmm0
movaps xmm0, xmm7
shufps xmm0, xmm7, 0xa0
movaps xmm1, xmmword [esp + 0x100]
mulps xmm0, xmm1
shufps xmm1, xmm1, 0xb1
shufps xmm7, xmm7, 0xf5
pxor xmm1, xmm4
mulps xmm7, xmm1
movaps xmm6, xmmword [esp + 0x110]
subps xmm0, xmm7
movaps xmmword [esp + 0x170], xmm0
movaps xmm0, xmmword [eax + edx + 0x80]
movaps xmm7, xmm0
shufps xmm7, xmm0, 0xa0
mulps xmm7, xmm6
shufps xmm6, xmm6, 0xb1
shufps xmm0, xmm0, 0xf5
pxor xmm6, xmm4
mulps xmm0, xmm6
movaps xmm6, xmmword [esp + 0x120]
subps xmm7, xmm0
movaps xmm0, xmmword [eax + edx + 0x90]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xa0
mulps xmm1, xmm6
shufps xmm6, xmm6, 0xb1
shufps xmm0, xmm0, 0xf5
pxor xmm6, xmm4
mulps xmm0, xmm6
movaps xmm4, xmm2
addps xmm4, xmm7
subps xmm2, xmm7
subps xmm1, xmm0
movaps xmm0, xmm3
movaps xmm7, xmm5
movaps xmmword [esp + 0x180], xmm4
addps xmm0, xmm1
subps xmm3, xmm1
movaps xmm1, xmmword [esp + 0x170]
movaps xmm4, xmmword [esp + 0x130]
addps xmm7, xmm1
subps xmm5, xmm1
movaps xmm1, xmmword [esp + 0x160]
movaps xmmword [esp + 0x190], xmm7
movaps xmm7, xmm4
shufps xmm3, xmm3, 0xb1
subps xmm4, xmm1
addps xmm7, xmm1
shufps xmm4, xmm4, 0xb1
movaps xmmword [esp + 0x130], xmm4
movaps xmmword [esp + 0x1b0], xmm3
movaps xmm3, xmm0
movaps xmm4, xmmword [esp + 0x180]
movaps xmmword [esp + 0x1a0], xmm7
addps xmm3, xmm4
movaps xmm7, xmmword [esp + 0x140]
movaps xmm6, xmmword [esp + 0x150]
movaps xmm1, xmm7
shufps xmm5, xmm5, 0xb1
addps xmm1, xmm6
subps xmm7, xmm6
movaps xmm6, xmmword [esp + 0x190]
movaps xmmword [esp + 0x1d0], xmm5
addps xmm3, xmm6
movaps xmm5, xmmword [esp + 0x1a0]
shufps xmm2, xmm2, 0xb1
addps xmm3, xmm5
movaps xmmword [esp + 0x1c0], xmm2
addps xmm3, xmm1
movaps xmm2, xmmword [ebx + esi]
shufps xmm7, xmm7, 0xb1
addps xmm3, xmm2
movaps xmmword [esp + 0x140], xmm7
movaps xmm7, xmmword [esp + 0xd0]
movaps xmmword [esp + 0x1e0], xmm2
movaps xmmword [ebx + edi], xmm3
movaps xmm3, xmm7
movaps xmm2, xmmword [esp + 0x30]
mulps xmm2, xmm0
mulps xmm3, xmm4
mov eax, dword [esp + 0x2a4]
addps xmm2, xmm3
movaps xmm3, xmmword [esp + 0x40]
mulps xmm3, xmm6
mov edx, dword [esp + 0x2ac]
addps xmm2, xmm3
movaps xmm3, xmmword [esp + 0x50]
movaps xmm6, xmm3
mulps xmm6, xmm5
mulps xmm3, xmm4
addps xmm2, xmm6
movaps xmm6, xmmword [esp + 0x80]
movaps xmm5, xmm6
mulps xmm5, xmm1
addps xmm2, xmm5
movaps xmm5, xmm7
mulps xmm5, xmm0
mulps xmm7, xmmword [esp + 0x190]
addps xmm5, xmm3
movaps xmmword [esp + 0x1f0], xmm2
movaps xmm2, xmm6
mulps xmm2, xmmword [esp + 0x190]
mulps xmm6, xmm4
addps xmm5, xmm2
movaps xmm2, xmmword [esp + 0x40]
movaps xmm3, xmm2
mulps xmm3, xmmword [esp + 0x1a0]
addps xmm5, xmm3
movaps xmm3, xmmword [esp + 0x30]
mulps xmm3, xmm1
addps xmm5, xmm3
movaps xmmword [esp + 0x200], xmm5
movaps xmm5, xmm2
mulps xmm5, xmm0
mulps xmm2, xmm4
addps xmm5, xmm6
movaps xmm6, xmmword [esp + 0x30]
addps xmm5, xmm7
mulps xmm4, xmm6
movaps xmm3, xmm6
mulps xmm3, xmmword [esp + 0x1a0]
movaps xmm7, xmmword [esp + 0x50]
addps xmm5, xmm3
movaps xmm3, xmm7
mulps xmm3, xmm1
addps xmm5, xmm3
movaps xmm3, xmm7
mulps xmm3, xmm0
movaps xmmword [esp + 0x210], xmm5
movaps xmm5, xmm6
mulps xmm5, xmmword [esp + 0x190]
addps xmm3, xmm2
addps xmm3, xmm5
nop
movaps xmm5, xmmword [esp + 0x80]
mulps xmm0, xmm5
movaps xmm2, xmm5
addps xmm0, xmm4
mulps xmm2, xmmword [esp + 0x1a0]
movaps xmm4, xmmword [esp + 0x190]
addps xmm3, xmm2
mulps xmm4, xmm7
movaps xmm7, xmmword [esp + 0x1a0]
addps xmm0, xmm4
mulps xmm7, xmmword [esp + 0xd0]
movaps xmm2, xmmword [esp + 0xd0]
addps xmm0, xmm7
mulps xmm2, xmm1
mulps xmm1, xmmword [esp + 0x40]
addps xmm3, xmm2
addps xmm0, xmm1
movaps xmm1, xmmword [esp + 0x70]
movaps xmmword [esp + 0x230], xmm0
movaps xmm6, xmm1
movaps xmm0, xmmword [esp + 0x60]
movaps xmm5, xmmword [esp + 0x1b0]
movaps xmm4, xmmword [esp + 0x1c0]
mulps xmm0, xmm5
mulps xmm6, xmm4
movaps xmmword [esp + 0x220], xmm3
addps xmm0, xmm6
movaps xmm7, xmmword [esp + 0xc0]
movaps xmm3, xmmword [esp + 0x1d0]
mulps xmm7, xmm3
addps xmm0, xmm7
movaps xmm7, xmmword [esp + 0xb0]
movaps xmm2, xmm7
mulps xmm2, xmmword [esp + 0x130]
mulps xmm7, xmm4
addps xmm0, xmm2
movaps xmm2, xmmword [esp + 0xa0]
movaps xmm6, xmm2
mulps xmm6, xmmword [esp + 0x140]
addps xmm0, xmm6
movaps xmm6, xmm2
mulps xmm6, xmm3
mulps xmm2, xmm4
movaps xmmword [esp + 0x240], xmm0
movaps xmm0, xmm1
mulps xmm0, xmm5
mulps xmm1, xmmword [esp + 0x1d0]
addps xmm0, xmm7
movaps xmm7, xmmword [esp + 0x140]
subps xmm0, xmm6
movaps xmm6, xmmword [esp + 0xc0]
movaps xmm3, xmm6
mulps xmm3, xmmword [esp + 0x130]
subps xmm0, xmm3
movaps xmm3, xmmword [esp + 0x60]
mulps xmm3, xmm7
subps xmm0, xmm3
movaps xmm3, xmm6
mulps xmm3, xmm5
mulps xmm6, xmm4
subps xmm3, xmm2
movaps xmmword [esp + 0x250], xmm0
subps xmm3, xmm1
nop dword [eax]
movaps xmm1, xmmword [esp + 0x60]
movaps xmm0, xmm1
mulps xmm0, xmmword [esp + 0x130]
mulps xmm4, xmm1
addps xmm3, xmm0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmm2, xmm0
mulps xmm2, xmm7
addps xmm3, xmm2
movaps xmm2, xmm0
mulps xmm2, xmm5
movaps xmmword [esp + 0x260], xmm3
movaps xmm3, xmm1
mulps xmm3, xmmword [esp + 0x1d0]
subps xmm2, xmm6
movaps xmm1, xmmword [esp + 0x130]
addps xmm2, xmm3
mulps xmm1, xmmword [esp + 0x70]
movaps xmm3, xmmword [esp + 0xa0]
mulps xmm5, xmm3
movaps xmm6, xmm3
mulps xmm6, xmmword [esp + 0x130]
subps xmm5, xmm4
addps xmm2, xmm6
movaps xmm4, xmmword [esp + 0x1d0]
mulps xmm4, xmm0
movaps xmm6, xmmword [esp + 0x70]
addps xmm5, xmm4
mulps xmm6, xmm7
mulps xmm7, xmmword [esp + 0xc0]
subps xmm5, xmm1
subps xmm2, xmm6
addps xmm5, xmm7
movaps xmm4, xmmword [esp + 0x1e0]
movaps xmm7, xmmword [esp + 0x1f0]
movaps xmm6, xmmword [esp + 0x200]
addps xmm7, xmm4
addps xmm6, xmm4
movaps xmmword [esp + 0x1b0], xmm5
movaps xmm5, xmmword [esp + 0x210]
movaps xmm0, xmmword [esp + 0x220]
addps xmm5, xmm4
addps xmm0, xmm4
movaps xmm1, xmmword [esp + 0x230]
movaps xmm3, xmmword [esp + 0x240]
addps xmm1, xmm4
movaps xmm4, xmm7
subps xmm7, xmm3
addps xmm4, xmm3
movaps xmm3, xmmword [esp + 0x250]
movaps xmmword [esp + 0x1f0], xmm7
movaps xmm7, xmm6
movaps xmmword [ebx + eax], xmm4
subps xmm6, xmm3
addps xmm7, xmm3
movaps xmmword [esp + 0x200], xmm6
movaps xmm3, xmm5
movaps xmm6, xmmword [esp + 0x260]
mov eax, dword [esp + 0x2b4]
subps xmm5, xmm6
addps xmm3, xmm6
movaps xmm6, xmm0
subps xmm0, xmm2
addps xmm6, xmm2
movaps xmmword [esp + 0x210], xmm5
movaps xmm2, xmm1
movaps xmm5, xmmword [esp + 0x1b0]
movaps xmmword [ebx + edx], xmm7
addps xmm2, xmm5
subps xmm1, xmm5
mov edx, dword [esp + 0x2bc]
movaps xmmword [ebx + eax], xmm3
mov eax, dword [esp + 0x294]
movaps xmmword [ebx + edx], xmm6
mov edx, dword [esp + 0x28c]
movaps xmmword [ebx + eax], xmm2
mov eax, dword [esp + 0x284]
movaps xmmword [ebx + edx], xmm1
mov edx, dword [esp + 0x27c]
movaps xmmword [ebx + eax], xmm0
movaps xmm0, xmmword [esp + 0x210]
mov eax, dword [esp + 0x274]
movaps xmmword [ebx + edx], xmm0
mov edx, dword [esp + 0x29c]
movaps xmm7, xmmword [esp + 0x200]
movaps xmm0, xmmword [esp + 0x1f0]
movaps xmmword [ebx + eax], xmm7
lea eax, [ebx + esi + 0x10]
movaps xmmword [ebx + edx], xmm0
lea edx, [ebx + edi + 0x10]
add ebx, 0x10
cmp ecx, dword [esp + 0x270]
jb 0x1018bd60
mov ebx, dword [esp + 4]
inc ebx
mov ecx, dword [esp + 0x2c]
add eax, ecx
add edx, ecx
cmp ebx, dword [ebp + 0x14]
jb 0x1018bc55
add esp, 0x2c4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret