Function at 0x1012b184
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x48
push esi
mov esi, dword [0x101c0bb0]
push edi
mov dword [ebp - 0x1c], edx
mov edi, ecx
mov eax, dword [esi + 0x1a6c]
mov dword [ebp - 0x14], eax
cmp byte [eax + 0x87], 0
jne 0x1012b2f8
movss xmm4, dword [edi + 8]
lea eax, [edi + 8]
subss xmm4, dword [edi]
movss xmm2, dword [edi + 0xc]
xorps xmm1, xmm1
subss xmm2, dword [edi + 4]
comiss xmm1, xmm4
jae 0x1012b2f8
comiss xmm1, xmm2
jae 0x1012b2f8
movss xmm3, dword [0x101afc38]
mov ecx, dword [ebx + 8]
movaps xmm6, xmm3
movss dword [ebp - 0x10], xmm6
cmp ecx, 1
jne 0x1012af45
movss xmm5, dword [esi + 0x1554]
movss xmm7, dword [esi + 0x1930]
addss xmm5, xmm5
movaps xmm0, xmm5
addss xmm0, xmm7
comiss xmm0, xmm2
jbe 0x1012af45
movaps xmm0, xmm2
subss xmm0, xmm7
divss xmm0, xmm5
comiss xmm1, xmm0
ja 0x1012b2f8
minss xmm6, xmm0
comiss xmm1, xmm6
movss dword [ebp - 0x10], xmm6
jae 0x1012b2f8
movss xmm7, dword [0x101afbec]
comiss xmm6, xmm3
movss xmm6, dword [0x101afc78]
movups xmm0, xmmword [edi]
subss xmm2, xmm6
setae byte [ebp - 3]
movups xmmword [ebp - 0x34], xmm0
mulss xmm2, xmm7
cvttss2si eax, xmm2
movss xmm2, dword [0x101afc98]
movd xmm5, eax
cvtdq2ps xmm5, xmm5
comiss xmm1, xmm5
jbe 0x1012af88
xorps xmm0, xmm0
jmp 0x1012af8f
movaps xmm0, xmm2
minss xmm0, xmm5
subss xmm4, xmm6
movss xmm5, dword [0x101b1470]
xorps xmm0, xmm5
mulss xmm4, xmm7
cvttss2si eax, xmm4
movd xmm4, eax
cvtdq2ps xmm4, xmm4
comiss xmm1, xmm4
jbe 0x1012afb7
xorps xmm2, xmm2
jmp 0x1012afbb
minss xmm2, xmm4
movss xmm1, dword [ebp - 0x34]
xorps xmm2, xmm5
movss xmm4, dword [ebp - 0x30]
subss xmm1, xmm2
subss xmm4, xmm0
addss xmm2, dword [ebp - 0x2c]
addss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x34], xmm1
movss dword [ebp - 0x30], xmm4
movss dword [ebp - 0x2c], xmm2
movss dword [ebp - 0x28], xmm0
test ecx, ecx
jne 0x1012aff8
subss xmm2, xmm1
jmp 0x1012afff
movaps xmm2, xmm0
subss xmm2, xmm4
movss xmm0, dword [ebx + 0x14]
movss xmm1, dword [ebx + 0x10]
maxss xmm0, xmm1
movss dword [ebp - 0xc], xmm2
maxss xmm0, xmm3
divss xmm1, xmm0
movss xmm0, dword [esi + 0x1590]
mulss xmm1, xmm2
movss dword [ebp - 8], xmm0
comiss xmm0, xmm1
ja 0x1012b03c
movaps xmm0, xmm2
minss xmm0, xmm1
movss dword [ebp - 8], xmm0
divss xmm0, xmm2
push 0x40000
lea eax, [ebp - 1]
mov byte [ebp - 1], 0
push eax
lea eax, [ebp - 2]
mov byte [ebp - 2], 0
push eax
lea ecx, [ebp - 0x34]
movss dword [ebp - 0x18], xmm0
call fcn.1012e520
movss xmm0, dword [ebx + 0x14]
add esp, 0xc
subss xmm0, dword [ebx + 0x10]
movss xmm5, dword [0x101afc38]
mov edx, dword [ebx + 0xc]
movaps xmm2, xmm5
maxss xmm2, xmm0
movss xmm1, dword [edx]
divss xmm1, xmm2
movss dword [ebp - 0x20], xmm2
xorps xmm2, xmm2
comiss xmm2, xmm1
jbe 0x1012b09b
xorps xmm0, xmm0
jmp 0x1012b0a2
movaps xmm0, xmm5
minss xmm0, xmm1
cmp byte [ebp - 1], 0
movss xmm3, dword [ebp - 0xc]
movaps xmm1, xmm3
subss xmm1, dword [ebp - 8]
movaps xmm7, xmm1
movss dword [ebp - 0x24], xmm1
mulss xmm7, xmm0
divss xmm7, xmm3
movss dword [ebp - 0xc], xmm7
je 0x1012b1ef
cmp byte [ebp - 3], 0
je 0x1012b1ef
movss xmm6, dword [ebp - 0x18]
comiss xmm5, xmm6
jbe 0x1012b1ef
mov eax, dword [ebx + 8]
movss xmm0, dword [esi + eax*4 + 0xe4]
subss xmm0, dword [ebp + eax*4 - 0x34]
divss xmm0, xmm3
comiss xmm2, xmm0
jbe 0x1012b106
xorps xmm4, xmm4
jmp 0x1012b10d
movaps xmm4, xmm5
minss xmm4, xmm0
mov ecx, dword [ebp - 0x1c]
call fcn.100ed120
xor cl, cl
cmp byte [esi + 0x1ab0], cl
je 0x1012b160
comiss xmm7, xmm4
ja 0x1012b154
movaps xmm0, xmm7
addss xmm0, xmm6
comiss xmm4, xmm0
ja 0x1012b154
movaps xmm1, xmm4
movaps xmm0, xmm6
subss xmm1, xmm7
movss xmm7, dword [0x101afbec]
mulss xmm0, xmm7
subss xmm1, xmm0
movss dword [esi + 0x2e84], xmm1
jmp 0x1012b168
mov cl, 1
mov dword [esi + 0x2e84], 0
movss xmm7, dword [0x101afbec]
movaps xmm0, xmm6
movaps xmm1, xmm4
subss xmm1, dword [esi + 0x2e84]
mulss xmm0, xmm7
subss xmm1, xmm0
movss dword [ebp - 0x1c], xmm0
movaps xmm0, xmm5
subss xmm0, xmm6
divss xmm1, xmm0
comiss xmm2, xmm1
jbe 0x1012b198
xorps xmm0, xmm0
jmp 0x1012b19f
movaps xmm0, xmm5
minss xmm0, xmm1
mulss xmm0, dword [ebp - 0x20]
addss xmm0, xmm7
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx], xmm0
divss xmm0, dword [ebp - 0x20]
comiss xmm2, xmm0
ja 0x1012b1c8
movaps xmm2, xmm5
minss xmm2, xmm0
movss xmm7, dword [ebp - 0x24]
mulss xmm7, xmm2
divss xmm7, xmm3
movss dword [ebp - 0xc], xmm7
test cl, cl
je 0x1012b1ef
subss xmm4, xmm7
subss xmm4, dword [ebp - 0x1c]
movss dword [esi + 0x2e84], xmm4
movaps xmm1, xmm5
mov ecx, 0xe
call fcn.100ef3f0
cmp byte [ebp - 1], 0
mov edx, eax
je 0x1012b20b
mov ecx, 0x11
jmp 0x1012b216
xor ecx, ecx
cmp byte [ebp - 2], cl
setne cl
add ecx, 0xf
movss xmm1, dword [ebp - 0x10]
call fcn.100ef3f0
push dword [ebx + 0x18]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
push ecx
lea ecx, [edi + 8]
movss xmm0, dword [eax + 0x3c]
movss dword [esp], xmm0
push edx
push ecx
mov ecx, dword [eax + 0x284]
push edi
call fcn.10106230
cmp dword [ebx + 8], 0
jne 0x1012b284
movss xmm1, dword [ebp - 0x2c]
subss xmm1, dword [ebp - 0x34]
movss xmm0, dword [ebp - 0x30]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x28]
movss dword [ebp - 0x38], xmm0
mulss xmm1, dword [ebp - 0xc]
addss xmm1, dword [ebp - 0x34]
movss dword [ebp - 0x44], xmm1
addss xmm1, dword [ebp - 8]
movss dword [ebp - 0x3c], xmm1
jmp 0x1012b2bb
movss xmm1, dword [ebp - 0x28]
subss xmm1, dword [ebp - 0x30]
movss xmm0, dword [ebp - 0x34]
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x2c]
movss dword [ebp - 0x3c], xmm0
mulss xmm1, dword [ebp - 0xc]
addss xmm1, dword [ebp - 0x30]
movss dword [ebp - 0x40], xmm1
addss xmm1, dword [ebp - 8]
movss dword [ebp - 0x38], xmm1
movups xmm0, xmmword [ebp - 0x44]
push 0xf
push ecx
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x3c]
movups xmmword [ebp - 0x44], xmm0
movss xmm0, dword [esi + 0x158c]
mov ecx, dword [ecx + 0x284]
movss dword [esp], xmm0
push dword [ebp - 0x24]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.10106230
mov al, byte [ebp - 1]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret