Function at 0x100f5130
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x104
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
imul ecx, dword [ebp + 0x14]
test bl, 0xf
jne 0x100f551b
cmp dword [ebp + 0x18], 0
jle 0x100f58d5
mov edx, ecx
mov eax, ecx
shl edx, 6
lea edi, [ecx + ecx*8]
mov dword [esp + 0xf0], edx
lea esi, [ecx + ecx*4]
imul edx, ecx, 0x68
shl eax, 5
mov dword [esp + 0xc], eax
lea eax, [ecx + ecx*2]
mov dword [esp + 4], edi
mov edi, ecx
mov dword [esp + 0xe8], esi
lea esi, [ecx + ecx]
shl eax, 5
shl edi, 4
mov dword [esp + 8], 0
mov dword [esp], edx
mov edx, dword [ebp + 0xc]
sub edx, esi
mov dword [esp + 0xec], edx
mov dword [esp + 0xf4], edi
mov dword [esp + 0xf8], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ebx
mov ecx, dword [esp + 8]
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov ebx, dword [edx + ecx*4]
test edi, edi
lea esi, [eax + ebx*8]
jle 0x100f58e2
movaps xmm6, xmmword [0x1039f9d0]
xor ebx, ebx
movaps xmm5, xmmword [0x1039f9e0]
movaps xmm4, xmmword [0x1039f9f0]
movaps xmm3, xmmword [0x1039fa00]
movaps xmm2, xmmword [0x1039fa10]
movaps xmm1, xmmword [0x1039fa20]
movaps xmm0, xmmword [0x1039fa30]
mov dword [esp + 8], ecx
movaps xmmword [esp + 0x10], xmm0
movaps xmmword [esp + 0x20], xmm1
movaps xmmword [esp + 0x30], xmm2
movaps xmmword [esp + 0x40], xmm3
movaps xmmword [esp + 0x60], xmm4
movaps xmmword [esp + 0x50], xmm5
movaps xmmword [esp + 0x70], xmm6
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0xfc], ebx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0xf8]
movsd xmm5, qword [esi + ebx]
movsd xmm1, qword [esi]
movhps xmm5, qword [esi + edi]
mov edi, dword [esp + 0xe0]
movhps xmm1, qword [esi + eax]
movaps xmm4, xmm1
subps xmm1, xmm5
addps xmm4, xmm5
movsd xmm7, qword [esi + edi*8]
mov edi, dword [esp + 0xe8]
movsd xmm2, qword [esi + edx*8]
movhps xmm2, qword [esi + ecx]
movhps xmm7, qword [esi + edi*8]
movaps xmm0, xmm7
subps xmm7, xmm2
addps xmm0, xmm2
movaps xmm2, xmm4
movaps xmm5, xmm0
movlhps xmm2, xmm1
shufps xmm4, xmm1, 0xbe
movaps xmm3, xmm2
movaps xmm1, xmmword [esp + 0x70]
add esi, dword [esp + 0xf4]
pxor xmm4, xmm1
movlhps xmm5, xmm7
addps xmm3, xmm4
subps xmm2, xmm4
shufps xmm0, xmm7, 0xbe
movaps xmm7, xmm5
movsd xmm6, qword [esi + ebx]
pxor xmm0, xmm1
mov ebx, dword [esp + 0xf8]
movaps xmm4, xmm3
shufps xmm4, xmm2, 0x88
addps xmm7, xmm0
subps xmm5, xmm0
movhps xmm6, qword [esi + ebx]
mov ebx, dword [esp + 0xe0]
movaps xmmword [esp + 0x80], xmm4
movsd xmm4, qword [esi]
shufps xmm3, xmm2, 0xdd
movaps xmm2, xmm7
movhps xmm4, qword [esi + eax]
movsd xmm0, qword [esi + ebx*8]
movaps xmmword [esp + 0x90], xmm3
shufps xmm2, xmm5, 0x88
shufps xmm7, xmm5, 0xdd
movaps xmm3, xmm4
movhps xmm0, qword [esi + edi*8]
addps xmm3, xmm6
subps xmm4, xmm6
movsd xmm5, qword [esi + edx*8]
movaps xmm6, xmm0
movhps xmm5, qword [esi + ecx]
mov edi, dword [esp + 0xe4]
addps xmm6, xmm5
subps xmm0, xmm5
movaps xmm5, xmm3
movlhps xmm5, xmm4
shufps xmm3, xmm4, 0xbe
movaps xmm4, xmm6
movlhps xmm4, xmm0
pxor xmm3, xmm1
shufps xmm6, xmm0, 0xbe
movaps xmm0, xmm5
pxor xmm6, xmm1
addps xmm0, xmm3
subps xmm5, xmm3
movaps xmm3, xmm4
movaps xmm1, xmm0
shufps xmm1, xmm5, 0x88
addps xmm3, xmm6
subps xmm4, xmm6
movaps xmm6, xmm3
shufps xmm6, xmm4, 0x88
movaps xmmword [esp + 0xa0], xmm6
shufps xmm3, xmm4, 0xdd
movaps xmm4, xmmword [esp + 0x50]
movaps xmm6, xmmword [esp + 0x60]
shufps xmm0, xmm5, 0xdd
movaps xmm5, xmm4
movaps xmmword [esp + 0xb0], xmm3
movaps xmm3, xmm6
mulps xmm5, xmm2
mulps xmm3, xmm7
mulps xmm7, xmm4
mulps xmm2, xmm6
addps xmm5, xmm3
subps xmm7, xmm2
movaps xmmword [esp + 0xc0], xmm5
movaps xmm3, xmmword [esp + 0x40]
movaps xmm5, xmmword [esp + 0x30]
movaps xmm2, xmm3
movaps xmmword [esp + 0xd0], xmm7
movaps xmm7, xmm5
mulps xmm2, xmm1
mulps xmm7, xmm0
mulps xmm0, xmm3
mulps xmm1, xmm5
addps xmm2, xmm7
subps xmm0, xmm1
movaps xmm4, xmmword [esp + 0x20]
movaps xmm5, xmmword [esp + 0x10]
movaps xmm7, xmm4
movaps xmm6, xmmword [esp + 0xa0]
movaps xmm3, xmm5
movaps xmm1, xmmword [esp + 0xb0]
mulps xmm7, xmm6
mulps xmm3, xmm1
mulps xmm1, xmm4
mulps xmm6, xmm5
addps xmm7, xmm3
subps xmm1, xmm6
movaps xmm4, xmmword [esp + 0x80]
movaps xmm5, xmm4
subps xmm4, xmm2
addps xmm5, xmm2
movaps xmm2, xmmword [esp + 0x90]
movaps xmm3, xmm2
subps xmm2, xmm0
addps xmm3, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmm6, xmm0
subps xmm0, xmm7
addps xmm6, xmm7
movaps xmmword [esp + 0xc0], xmm0
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm7, xmm0
subps xmm0, xmm1
addps xmm7, xmm1
movaps xmm1, xmm5
subps xmm5, xmm6
addps xmm1, xmm6
movaps xmm6, xmm3
subps xmm3, xmm7
addps xmm6, xmm7
movaps xmm7, xmm4
addps xmm4, xmm0
subps xmm7, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmmword [esp + 0x80], xmm4
movaps xmm4, xmm2
mov ebx, dword [esp + 0xec]
addps xmm4, xmm0
subps xmm2, xmm0
movaps xmmword [edi], xmm1
lea esi, [esi + ebx*8]
movaps xmm1, xmmword [esp + 0x80]
mov ebx, dword [esp + 0xfc]
inc ebx
movaps xmmword [edi + 0x10], xmm6
movaps xmmword [edi + 0x20], xmm7
movaps xmmword [edi + 0x30], xmm4
movaps xmmword [edi + 0x40], xmm5
movaps xmmword [edi + 0x50], xmm3
movaps xmmword [edi + 0x60], xmm1
movaps xmmword [edi + 0x70], xmm2
add edi, 0x80
cmp ebx, dword [ebp + 0x14]
jl 0x100f524d
mov ecx, dword [esp + 8]
inc ecx
mov dword [esp + 0xe4], edi
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
cmp ecx, dword [ebp + 0x18]
jl 0x100f51d3
jmp 0x100f58d5
cmp dword [ebp + 0x18], 0
jle 0x100f58d5
mov esi, ecx
lea edi, [ecx + ecx*2]
shl esi, 6
mov edx, ecx
mov dword [esp + 0xf8], esi
lea esi, [ecx + ecx*4]
mov dword [esp + 0xe8], esi
xor eax, eax
imul esi, ecx, 0x68
shl edi, 5
mov dword [esp + 0xf4], edi
lea edi, [ecx + ecx*8]
mov dword [esp + 4], edi
mov edi, ecx
mov dword [esp], esi
lea esi, [ecx + ecx]
shl edx, 5
shl edi, 4
mov dword [esp + 0xf0], edi
mov edi, dword [ebp + 0xc]
sub edi, esi
mov dword [esp + 0xec], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], ebx
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov ebx, dword [edx + eax*4]
test edi, edi
lea ebx, [ecx + ebx*8]
jle 0x100f58ee
movaps xmm6, xmmword [0x1039f9d0]
xor esi, esi
movaps xmm5, xmmword [0x1039f9e0]
movaps xmm4, xmmword [0x1039f9f0]
movaps xmm3, xmmword [0x1039fa00]
movaps xmm2, xmmword [0x1039fa10]
movaps xmm1, xmmword [0x1039fa20]
movaps xmm0, xmmword [0x1039fa30]
mov dword [esp + 8], eax
movaps xmmword [esp + 0x10], xmm0
movaps xmmword [esp + 0x20], xmm1
movaps xmmword [esp + 0x30], xmm2
movaps xmmword [esp + 0x40], xmm3
movaps xmmword [esp + 0x60], xmm4
movaps xmmword [esp + 0x50], xmm5
movaps xmmword [esp + 0x70], xmm6
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0xfc], esi
mov esi, dword [esp + 0xf8]
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0xf4]
movsd xmm5, qword [ebx + esi]
movsd xmm1, qword [ebx]
movhps xmm5, qword [ebx + edi]
mov edi, dword [esp + 0xe0]
movhps xmm1, qword [ebx + eax]
movaps xmm4, xmm1
subps xmm1, xmm5
addps xmm4, xmm5
movsd xmm7, qword [ebx + edi*8]
mov edi, dword [esp + 0xe8]
movsd xmm2, qword [ebx + edx*8]
movhps xmm2, qword [ebx + ecx]
movhps xmm7, qword [ebx + edi*8]
movaps xmm0, xmm7
subps xmm7, xmm2
addps xmm0, xmm2
movaps xmm2, xmm4
movaps xmm5, xmm0
movlhps xmm2, xmm1
shufps xmm4, xmm1, 0xbe
movaps xmm3, xmm2
movaps xmm1, xmmword [esp + 0x70]
add ebx, dword [esp + 0xf0]
pxor xmm4, xmm1
movlhps xmm5, xmm7
addps xmm3, xmm4
subps xmm2, xmm4
shufps xmm0, xmm7, 0xbe
movaps xmm7, xmm5
movsd xmm6, qword [ebx + esi]
pxor xmm0, xmm1
mov esi, dword [esp + 0xf4]
movaps xmm4, xmm3
shufps xmm4, xmm2, 0x88
addps xmm7, xmm0
subps xmm5, xmm0
movhps xmm6, qword [ebx + esi]
mov esi, dword [esp + 0xe0]
movaps xmmword [esp + 0x80], xmm4
movsd xmm4, qword [ebx]
shufps xmm3, xmm2, 0xdd
movaps xmm2, xmm7
movhps xmm4, qword [ebx + eax]
movsd xmm0, qword [ebx + esi*8]
movaps xmmword [esp + 0x90], xmm3
shufps xmm2, xmm5, 0x88
shufps xmm7, xmm5, 0xdd
movaps xmm3, xmm4
movhps xmm0, qword [ebx + edi*8]
addps xmm3, xmm6
subps xmm4, xmm6
movsd xmm5, qword [ebx + edx*8]
movaps xmm6, xmm0
movhps xmm5, qword [ebx + ecx]
mov edi, dword [esp + 0xe4]
addps xmm6, xmm5
subps xmm0, xmm5
movaps xmm5, xmm3
movlhps xmm5, xmm4
shufps xmm3, xmm4, 0xbe
movaps xmm4, xmm6
movlhps xmm4, xmm0
pxor xmm3, xmm1
shufps xmm6, xmm0, 0xbe
movaps xmm0, xmm5
pxor xmm6, xmm1
addps xmm0, xmm3
subps xmm5, xmm3
movaps xmm3, xmm4
movaps xmm1, xmm0
shufps xmm1, xmm5, 0x88
addps xmm3, xmm6
subps xmm4, xmm6
movaps xmm6, xmm3
shufps xmm6, xmm4, 0x88
movaps xmmword [esp + 0xa0], xmm6
shufps xmm3, xmm4, 0xdd
movaps xmm4, xmmword [esp + 0x50]
movaps xmm6, xmmword [esp + 0x60]
shufps xmm0, xmm5, 0xdd
movaps xmm5, xmm4
movaps xmmword [esp + 0xb0], xmm3
movaps xmm3, xmm6
mulps xmm5, xmm2
mulps xmm3, xmm7
mulps xmm7, xmm4
mulps xmm2, xmm6
addps xmm5, xmm3
subps xmm7, xmm2
movaps xmmword [esp + 0xc0], xmm5
movaps xmm3, xmmword [esp + 0x40]
movaps xmm5, xmmword [esp + 0x30]
movaps xmm2, xmm3
movaps xmmword [esp + 0xd0], xmm7
movaps xmm7, xmm5
mulps xmm2, xmm1
mulps xmm7, xmm0
mulps xmm0, xmm3
mulps xmm1, xmm5
addps xmm2, xmm7
subps xmm0, xmm1
movaps xmm4, xmmword [esp + 0x20]
movaps xmm5, xmmword [esp + 0x10]
movaps xmm7, xmm4
movaps xmm6, xmmword [esp + 0xa0]
movaps xmm3, xmm5
movaps xmm1, xmmword [esp + 0xb0]
mulps xmm7, xmm6
mulps xmm3, xmm1
mulps xmm1, xmm4
mulps xmm6, xmm5
addps xmm7, xmm3
subps xmm1, xmm6
movaps xmm4, xmmword [esp + 0x80]
movaps xmm5, xmm4
subps xmm4, xmm2
addps xmm5, xmm2
movaps xmm2, xmmword [esp + 0x90]
movaps xmm3, xmm2
subps xmm2, xmm0
addps xmm3, xmm0
movaps xmm0, xmmword [esp + 0xc0]
movaps xmm6, xmm0
subps xmm0, xmm7
addps xmm6, xmm7
movaps xmmword [esp + 0xc0], xmm0
movaps xmm0, xmmword [esp + 0xd0]
movaps xmm7, xmm0
subps xmm0, xmm1
addps xmm7, xmm1
movaps xmm1, xmm5
subps xmm5, xmm6
addps xmm1, xmm6
movups xmmword [edi + 0x40], xmm5
movups xmmword [edi], xmm1
movaps xmm6, xmm3
subps xmm3, xmm7
addps xmm6, xmm7
movups xmmword [edi + 0x50], xmm3
movups xmmword [edi + 0x10], xmm6
movaps xmm7, xmm4
addps xmm4, xmm0
subps xmm7, xmm0
movaps xmmword [esp + 0x80], xmm4
movaps xmm4, xmm2
movaps xmm0, xmmword [esp + 0xc0]
mov esi, dword [esp + 0xec]
addps xmm4, xmm0
subps xmm2, xmm0
movups xmmword [edi + 0x20], xmm7
movups xmmword [edi + 0x30], xmm4
movups xmmword [edi + 0x70], xmm2
movaps xmm1, xmmword [esp + 0x80]
lea ebx, [ebx + esi*8]
mov esi, dword [esp + 0xfc]
inc esi
movups xmmword [edi + 0x60], xmm1
add edi, 0x80
cmp esi, dword [ebp + 0x14]
jl 0x100f560c
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 0xe4], edi
mov edx, dword [ebp + 0x1c]
mov edi, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
cmp eax, dword [ebp + 0x18]
jl 0x100f5592
add esp, 0x104
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
inc ecx
cmp ecx, dword [ebp + 0x18]
jl 0x100f51d3
jmp 0x100f58d5
inc eax
cmp eax, dword [ebp + 0x18]
jl 0x100f5592
jmp 0x100f58d5