Function at 0x10180270
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1040
call fcn.102ddfa0
mov eax, dword [0x10411ce0]
xor eax, esp
mov dword [esp + 0x103c], eax
mov ecx, dword [esp + 0x1044]
mov eax, dword [esp + 0x104c]
mov dword [esp + 0x20], eax
push esi
mov esi, dword [ecx + 8]
mov dword [esp + 0x20], ecx
movzx ecx, word [ecx]
mov ax, cx
mov dword [esp + 0x34], esi
shr ax, 1
movzx eax, ax
mov dword [esp + 0x28], eax
mov ax, cx
shr ax, 2
movzx edx, ax
mov ax, cx
shr ax, 3
push edi
xor edi, edi
movzx eax, ax
movd xmm6, ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 8], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x40], edi
cvtdq2ps xmm6, xmm6
cmp di, ax
jae 0x10180458
movzx eax, ax
movzx edx, dx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x2c]
lea eax, [esi + eax*8]
movzx edx, dx
mov dword [esp + 0x40], eax
lea eax, [esp + 0x44]
sub eax, esi
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x48]
sub eax, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], eax
jmp 0x10180334
mov ecx, dword [esp + 0x3c]
lea eax, [edi + edi]
movzx edi, ax
mov edx, edi
neg edx
lea esi, [edx + ecx]
mov ecx, edi
sub ecx, dword [esp + 0x34]
mov eax, esi
add ecx, dword [esp + 0x3c]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x1050]
movss xmm5, dword [esi + ecx*4]
mov ecx, esi
addss xmm5, dword [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x34]
lea eax, [ecx + edi]
movaps xmm0, xmm5
movss xmm4, dword [esi + eax*4]
add ecx, edx
mov eax, esi
mov esi, dword [esp + 0xc]
subss xmm4, dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x18]
add dword [esp + 0x30], 8
movss xmm2, dword [ecx]
movaps xmm1, xmm4
movss xmm3, dword [ecx + 4]
mulss xmm1, xmm3
mulss xmm0, xmm2
mulss xmm4, xmm2
addss xmm1, xmm0
mulss xmm5, xmm3
subss xmm4, xmm5
mulss xmm1, xmm6
movss dword [ecx + eax], xmm1
mov eax, dword [esp + 0x20]
mulss xmm4, xmm6
movss dword [ecx + eax], xmm4
lea eax, [edx + esi]
mov ecx, dword [esp + 0x1050]
movss xmm5, dword [ecx + eax*4 - 4]
lea eax, [esi + edi]
movss xmm4, dword [ecx + eax*4]
subss xmm5, dword [ecx + edi*4]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
inc edi
addss xmm4, dword [ecx + esi*4 - 4]
mov ecx, dword [esp + 0x40]
movaps xmm0, xmm5
mov dword [esp + 0x14], edi
movss xmm2, dword [ecx]
movaps xmm1, xmm4
movss xmm3, dword [ecx + 4]
mulss xmm1, xmm3
mulss xmm0, xmm2
mulss xmm4, xmm2
addss xmm1, xmm0
mulss xmm5, xmm3
subss xmm4, xmm5
mulss xmm1, xmm6
movss dword [ecx + eax], xmm1
mov eax, dword [esp + 0x20]
mulss xmm4, xmm6
movss dword [ecx + eax], xmm4
add ecx, 8
mov dword [esp + 0x40], ecx
cmp di, word [esp + 8]
jb 0x10180330
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x44]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.10187790
xor eax, eax
add esp, 8
xor edi, edi
cmp ax, word [esp + 0x1c]
jae 0x10180523
movss xmm6, dword [0x10346fd0]
lea ecx, [esp + 0x48]
sub ecx, esi
mov dword [esp + 0x24], ecx
lea ecx, [ecx]
movss xmm3, dword [esi + ecx - 4]
lea eax, [edi + edi]
movss xmm5, dword [esi + ecx]
movaps xmm0, xmm3
mulss xmm0, dword [esi]
movaps xmm4, xmm5
inc edi
movzx edx, ax
mulss xmm4, dword [esi + 4]
mov ecx, edx
neg ecx
mov eax, dword [esp + 0x28]
mulss xmm5, dword [esi]
mulss xmm3, dword [esi + 4]
addss xmm4, xmm0
mov esi, dword [esp + 0x2c]
subss xmm5, xmm3
movaps xmm0, xmm4
xorps xmm0, xmm6
movss dword [eax + edx*4], xmm0
movzx eax, si
mov esi, dword [esp + 0x28]
add eax, ecx
movss dword [esi + eax*4 - 4], xmm5
xorps xmm5, xmm6
mov esi, dword [esp + 0x2c]
movzx eax, si
mov esi, dword [esp + 0x38]
add eax, edx
mov edx, dword [esp + 0x28]
add esi, 8
mov dword [esp + 0x38], esi
movss dword [edx + eax*4], xmm5
mov eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, dword [esp + 0x24]
movss dword [edx + eax*4 - 4], xmm4
cmp di, word [esp + 0x1c]
jb 0x10180490
mov ecx, dword [esp + 0x1044]
pop edi
pop esi
xor ecx, esp
call fcn.102d6d23
add esp, 0x1040
ret