Function at 0x1028ebd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x30
mov esi, esp
mov ecx, dword [ebp + 0x18]
mov eax, dword [0x10305014]
xor eax, ebp
mov dword [esi + 0x28], eax
test cl, 3
je 0x1028ec0a
push 0xd0
push 0x102fa7cc
push str.assertion_failed:__ord3_0
call fcn.1028ab20
mov ecx, dword [ebp + 0x18]
add esp, 0xc
mov ebx, dword [ebp + 0xc]
lea ecx, [ecx*4]
mov eax, ecx
call fcn.101308a0
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
mov eax, 0xff
push ecx
push eax
push edi
call fcn.10132b90
add esp, 0xc
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x14]
add eax, ecx
mov dword [esi], eax
lea ecx, [eax*4]
mov eax, ecx
call fcn.101308a0
mov eax, esp
and eax, 0xfffffff0
mov esp, eax
push ecx
mov ecx, 0xff
push ecx
mov dword [esi + 4], eax
push eax
call fcn.10132b90
mov edx, dword [ebp + 0x18]
add esp, 0xc
xor eax, eax
test edx, edx
mov dword [esi + 8], edi
jle 0x1028ecaf
movss xmm0, dword [ebx + edx*4 - 4]
movss dword [edi], xmm0
add edi, 4
dec edx
jne 0x1028ec70
mov edx, dword [ebp + 0x18]
test edx, edx
mov edi, dword [esi]
jle 0x1028ecb1
movaps xmm0, xmmword [0x102a8d80]
mov eax, dword [esi + 4]
mov ecx, edx
mov ebx, dword [ebp + 0x1c]
movss xmm1, dword [ebx + ecx*4 - 4]
xorps xmm1, xmm0
movss dword [eax], xmm1
add eax, 4
dec ecx
jne 0x1028ec98
mov eax, edx
jmp 0x1028ecb1
mov edi, dword [esi]
sub edi, eax
jle 0x1028eccd
mov ecx, dword [esi + 4]
lea eax, [ecx + eax*4]
shl edi, 2
push edi
push 0
push eax
call fcn.10132b90
mov edx, dword [ebp + 0x18]
add esp, 0xc
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
cmp dword [ebp + 0x14], 4
jl 0x1028edfb
mov eax, dword [ebp + 0x14]
add eax, 0xfffffffd
mov dword [esi + 0xc], eax
mov eax, dword [esi + 4]
lea ecx, [eax + edx*4]
add ecx, 0xc
mov dword [esi], ecx
xor ebx, ebx
mov edi, eax
mov eax, dword [ebp + 8]
movss xmm0, dword [eax + ebx*4]
movss dword [esi + 0x18], xmm0
movss xmm0, dword [eax + ebx*4 + 4]
movss dword [esi + 0x1c], xmm0
movss xmm0, dword [eax + ebx*4 + 8]
movss dword [esi + 0x20], xmm0
movss xmm0, dword [eax + ebx*4 + 0xc]
movss dword [esi + 0x24], xmm0
push edx
lea eax, [esi + 0x18]
push eax
push edi
push dword [esi + 8]
call fcn.1028aef0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0x18]
add esp, 0x10
movss xmm0, dword [esi + 0x18]
movaps xmm1, xmm0
movaps xmm4, xmmword [0x102a8d80]
xorps xmm1, xmm4
mov eax, dword [esi]
movss dword [eax + ebx*4 - 0xc], xmm1
movss dword [ecx + ebx*4], xmm0
movss xmm1, dword [esi + 0x1c]
mov eax, edi
mov eax, dword [ebp + 0xc]
movss xmm2, dword [eax]
mulss xmm2, xmm0
subss xmm1, xmm2
movaps xmm2, xmm1
xorps xmm2, xmm4
mov eax, dword [esi]
movss dword [eax + ebx*4 - 8], xmm2
movss dword [ecx + ebx*4 + 4], xmm1
movss xmm2, dword [esi + 0x20]
mov eax, dword [ebp + 0xc]
movss xmm3, dword [eax]
mulss xmm3, xmm1
subss xmm2, xmm3
movss xmm3, dword [eax + 4]
mulss xmm3, xmm0
subss xmm2, xmm3
movaps xmm3, xmm2
xorps xmm3, xmm4
mov eax, dword [esi]
movss dword [eax + ebx*4 - 4], xmm3
movss dword [ecx + ebx*4 + 8], xmm2
movss xmm3, dword [esi + 0x24]
mov eax, dword [ebp + 0xc]
mulss xmm2, dword [eax]
mulss xmm1, dword [eax + 4]
subss xmm3, xmm2
subss xmm3, xmm1
mulss xmm0, dword [eax + 8]
subss xmm3, xmm0
movaps xmm0, xmm3
xorps xmm0, xmm4
mov eax, dword [esi]
movss dword [eax + ebx*4], xmm0
movss dword [ecx + ebx*4 + 0xc], xmm3
add ebx, 4
add edi, 0x10
cmp ebx, dword [esi + 0xc]
jl 0x1028ecf4
cmp ebx, dword [ebp + 0x14]
jge 0x1028ee46
mov eax, dword [esi + 4]
lea eax, [eax + ebx*4]
mov ecx, dword [ebp + 8]
movss xmm0, dword [ecx + ebx*4]
test edx, edx
jle 0x1028ee2a
xor ecx, ecx
mov edi, dword [esi + 8]
movss xmm1, dword [edi + ecx*4]
mulss xmm1, dword [eax + ecx*4]
subss xmm0, xmm1
inc ecx
cmp edx, ecx
jne 0x1028ee17
lea ecx, [ebx + edx]
mov edi, dword [esi + 4]
movss dword [edi + ecx*4], xmm0
mov ecx, dword [ebp + 0x10]
movss dword [ecx + ebx*4], xmm0
inc ebx
add eax, 4
cmp ebx, dword [ebp + 0x14]
jne 0x1028ee06
test edx, edx
mov edi, dword [ebp + 0x1c]
jle 0x1028ee69
mov eax, dword [ebp + 0x14]
lea eax, [ecx + eax*4]
add eax, 0xfffffffc
xor ecx, ecx
movss xmm0, dword [eax]
movss dword [edi + ecx*4], xmm0
inc ecx
add eax, 0xfffffffc
cmp edx, ecx
jne 0x1028ee58
mov ecx, dword [esi + 0x28]
xor ecx, ebp
call fcn.10130483
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret