Function at 0x100548c0
Capabilities:
Encode data using xor
Hash data using fnv

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
push 0xffffffffffffffff
push 0x100dc75d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x180
mov eax, dword [0x10145040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x101739b4]
lea eax, [ebp - 0x150]
movss xmm3, dword [0x1013618c]
push 0
push 0
movss xmm2, dword [esi + 0x3bcc]
push 0x10130808
push ecx
mov ecx, dword [esi + 0x3bc8]
mov dword [esp], 0xbf800000
push eax
call fcn.10034800
movss xmm0, dword [esi + 0x3bcc]
mov edx, 0x10191ccc
addss xmm0, dword [esi + 0x3800]
movss xmm6, dword [0x10135ee0]
xorps xmm7, xmm7
movss xmm1, dword [eax]
movss xmm2, dword [0x101360f8]
movss dword [0x10191e30], xmm1
mulss xmm0, dword [0x10191c18]
movss dword [0x10191e34], xmm0
nop
mov ecx, dword [edx - 0x54]
xorps xmm0, xmm0
movzx eax, cl
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10136600]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm5, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm5, xmm6
addsd xmm0, qword [eax*8 + 0x10136600]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm3, xmm6
addsd xmm0, qword [eax*8 + 0x10136600]
cvtpd2ps xmm4, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
comiss xmm7, xmm5
addsd xmm0, qword [ecx*8 + 0x10136600]
mulss xmm4, xmm6
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm6
mulss xmm1, dword [esi + 0x37b0]
jbe 0x10054a17
movaps xmm0, xmm7
jmp 0x10054a23
movss xmm0, dword [0x10135f8c]
minss xmm0, xmm5
comiss xmm7, xmm3
movss xmm5, dword [0x10135f8c]
mulss xmm0, xmm2
addss xmm0, dword [0x10135f40]
cvttss2si ecx, xmm0
jbe 0x10054a45
movaps xmm0, xmm7
jmp 0x10054a4c
movaps xmm0, xmm5
minss xmm0, xmm3
movss xmm3, dword [0x10135f40]
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm7, xmm4
jbe 0x10054a6f
movaps xmm0, xmm7
jmp 0x10054a76
movaps xmm0, xmm5
minss xmm0, xmm4
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm7, xmm1
jbe 0x10054a91
movaps xmm0, xmm7
jmp 0x10054a98
movaps xmm0, xmm5
minss xmm0, xmm1
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov dword [edx], eax
add edx, 4
cmp edx, 0x10191d20
jl 0x10054980
mov eax, dword [esi + 0x3e30]
movss xmm0, dword [eax + 0x210]
subss xmm0, dword [eax + 0x10]
movss dword [ebp - 0xa8], xmm0
movss xmm0, dword [eax + 0x214]
subss xmm0, dword [eax + 0x14]
mov byte [eax + 0x90], 1
cmp byte [0x10191c58], 0
mov eax, dword [esi + 0x3e30]
movss dword [ebp - 0x94], xmm0
movss xmm0, dword [0x10191c5c]
mov eax, dword [eax + 0x24c]
mov dword [ebp - 0x78], eax
movss dword [ebp - 0xb4], xmm0
je 0x10054b3e
mov byte [0x10191c58], 0
mov eax, dword [esi + 0x3e30]
mov dword [eax + 0x70], 0
mov dword [eax + 0x78], 0
mov dword [eax + 0x80], 0
mov esi, dword [esi + 0x3e30]
sub esp, 8
movss xmm0, dword [esi + 0xd4]
movss dword [ebp - 0x84], xmm0
movss xmm0, dword [esi + 0xd8]
movss dword [ebp - 0xd0], xmm0
movss xmm0, dword [esi + 0x5c]
movss dword [ebp - 0x98], xmm0
movss xmm0, dword [esi + 0x60]
divss xmm0, dword [0x10191e34]
movss dword [ebp - 0x80], xmm0
fld dword [ebp - 0x80]
fstp qword [esp]
call fcn.100da340
movss xmm0, dword [ebp - 0x94]
addss xmm0, dword [esi + 0x60]
mov ecx, dword [0x10191c20]
sub ecx, dword [0x10191c1c]
fstp dword [ebp - 0x7c]
cvttss2si eax, dword [ebp - 0x7c]
divss xmm0, dword [0x10191e34]
mov dword [ebp - 0x74], eax
mov eax, 0x2aaaaaab
imul ecx
movss dword [ebp - 0x80], xmm0
fld dword [ebp - 0x80]
fstp qword [esp]
sar edx, 1
mov edi, edx
shr edi, 0x1f
add edi, edx
call fcn.100da340
cvttss2si ecx, dword [ebp - 0x7c]
push edi
push str.__d
push 0x10
fstp dword [ebp - 0x80]
cvttss2si eax, dword [ebp - 0x80]
add eax, ecx
lea ecx, [edi - 1]
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x24]
push eax
call fcn.10050640
mov esi, dword [0x101739b4]
lea eax, [ebp - 0x24]
movss xmm3, dword [0x1013618c]
add esp, 0x18
movss xmm2, dword [esi + 0x3bcc]
push 0
push 0
push eax
push ecx
mov ecx, dword [esi + 0x3bc8]
lea eax, [ebp - 0x190]
mov dword [esp], 0xbf800000
push eax
call fcn.10034800
movd xmm0, dword [0x10191c60]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [eax]
mov eax, dword [0x10191c1c]
movss dword [0x10191c5c], xmm0
cmp eax, dword [0x10191c20]
je 0x10055dde
movss xmm3, dword [0x1013618c]
lea eax, [ebp - 0x180]
movss xmm2, dword [esi + 0x3bcc]
push 0
push 0
push 0x1012fe14
push ecx
mov ecx, dword [esi + 0x3bc8]
mov dword [esp], 0xbf800000
push eax
call fcn.10034800
cvttss2si esi, dword [ebp - 0x7c]
movss xmm0, dword [eax]
movss dword [ebp - 0x9c], xmm0
cmp esi, dword [ebp - 0x80]
jg 0x10055c3a
movss xmm1, dword [ebp - 0x84]
lea eax, [esi + 1]
movaps xmm0, xmm1
mov dword [ebp - 0x94], eax
addss xmm0, dword [ebp - 0x98]
movss dword [ebp - 0xac], xmm0
movss dword [ebp - 0xc0], xmm0
nop dword [eax + eax]
addss xmm1, dword [0x10191c5c]
mov eax, dword [0x10191c1c]
lea edi, [esi + esi*2]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
push esi
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0x7c], eax
movss dword [ebp - 0x90], xmm1
mulss xmm0, dword [0x10191e34]
addss xmm0, dword [ebp - 0xd0]
movss dword [ebp - 0x6c], xmm0
call fcn.10052fe0
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x120]
push eax
mov dword [ebp - 0x120], esi
call fcn.10059520
addss xmm0, dword [0x10191c5c]
movss xmm1, dword [ebp - 0xb4]
push esi
maxss xmm1, xmm0
movss dword [ebp - 0xb4], xmm1
call fcn.10052fe0
movss xmm1, dword [0x101361ac]
mov esi, eax
mov eax, dword [ebp - 0x74]
movaps xmm2, xmm1
mov ecx, dword [0x10191c28]
mov edx, dword [0x10191c2c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], esi
movss dword [ebp - 0x5c], xmm1
movss dword [ebp - 0x64], xmm2
cmp ecx, eax
je 0x10054da2
setl al
jmp 0x10054da7
cmp edx, esi
setle al
test al, al
je 0x10054dd2
cmp ecx, dword [ebp - 0x74]
jne 0x10054db2
test edx, edx
setg al
test al, al
je 0x10054dca
push 0x10191c28
call fcn.10059520
movss xmm2, dword [ebp - 0x64]
jmp 0x10054dcd
xorps xmm0, xmm0
movss dword [ebp - 0x5c], xmm0
mov eax, dword [0x10191c30]
mov ecx, dword [ebp - 0x74]
mov edx, dword [0x10191c34]
cmp eax, ecx
jne 0x10054de6
test edx, edx
setg cl
test cl, cl
je 0x10054e12
cmp eax, dword [ebp - 0x74]
jne 0x10054df4
cmp edx, esi
setl cl
lea eax, [ebp - 0x58]
test cl, cl
mov ecx, 0x10191c30
cmovne eax, ecx
push eax
call fcn.10059520
mov eax, dword [0x10191c30]
movaps xmm2, xmm0
cmp eax, dword [ebp - 0x74]
jle 0x10054e1f
addss xmm2, dword [0x10191e30]
movss xmm3, dword [ebp - 0x5c]
movss xmm0, dword [0x101361ac]
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x10054eb9
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x10054eb9
comiss xmm2, xmm3
mov esi, dword [ebp - 0x78]
jbe 0x10054ebc
movss xmm1, dword [ebp - 0x84]
lea eax, [ebp - 0x148]
addss xmm1, dword [0x10191c5c]
push 0
push ecx
mov dword [esp], 0
mov ecx, esi
push dword [0x10191d04]
movaps xmm0, xmm1
addss xmm1, xmm2
addss xmm0, xmm3
push eax
lea eax, [ebp - 0x168]
push eax
movss dword [ebp - 0x148], xmm1
movss dword [ebp - 0x168], xmm0
movss xmm0, dword [ebp - 0x6c]
movss dword [ebp - 0x164], xmm0
addss xmm0, dword [0x10191e34]
movss dword [ebp - 0x144], xmm0
call fcn.10030920
jmp 0x10054ebc
mov esi, dword [ebp - 0x78]
mov edx, dword [ebp - 0x94]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
movss xmm2, dword [ebp - 0x6c]
imul eax, eax, 0x1000193
movss dword [ebp - 0xbc], xmm2
mov dword [ebp - 0x64], edx
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, 0x10191e08
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.1005dc60
cmp dword [eax + 4], 0
je 0x10054f8e
movss xmm0, dword [ebp - 0x98]
lea eax, [ebp - 0x170]
movss xmm1, dword [ebp - 0xa8]
addss xmm0, xmm0
addss xmm1, dword [ebp - 0x84]
push 0
push ecx
mov dword [esp], 0
mov ecx, esi
push dword [0x10191d0c]
addss xmm1, xmm0
movaps xmm0, xmm2
addss xmm0, dword [0x10191e34]
push eax
lea eax, [ebp - 0xc0]
push eax
movss dword [ebp - 0x170], xmm1
movss dword [ebp - 0x16c], xmm0
call fcn.10030920
movss xmm2, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x74]
mov ecx, 0x10191e28
inc eax
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.1005e430
mov eax, dword [ebp - 0x44]
mov edx, dword [0x10191e28]
mov dword [ebp - 0x5c], eax
cmp byte [eax + 0xd], 0
jne 0x10054fc8
mov ecx, dword [ebp - 0x74]
mov edi, dword [ebp - 0xb0]
inc ecx
cmp ecx, dword [eax + 0x10]
jge 0x10054fcd
mov eax, edx
mov dword [ebp - 0x5c], edx
cmp eax, edx
je 0x100551fb
movss xmm0, dword [ebp - 0x98]
lea eax, [ebp - 0xd8]
movss xmm1, dword [ebp - 0xa8]
addss xmm0, xmm0
addss xmm1, dword [ebp - 0x84]
push 0
push ecx
mov dword [esp], 0
mov ecx, esi
push dword [0x10191d08]
addss xmm1, xmm0
movaps xmm0, xmm2
addss xmm0, dword [0x10191e34]
push eax
lea eax, [ebp - 0xc0]
push eax
movss dword [ebp - 0x68], xmm1
movss dword [ebp - 0x64], xmm0
movss dword [ebp - 0xd8], xmm1
movss dword [ebp - 0xd4], xmm0
call fcn.10030920
mov ecx, dword [0x101739b4]
movss xmm2, dword [ebp - 0x84]
movss xmm0, dword [ebp - 0x68]
movss xmm4, dword [ebp - 0x6c]
mov eax, dword [ecx + 0x3e30]
movss xmm1, dword [ecx + 0x3814]
movss xmm3, dword [ebp - 0x64]
movaps xmm5, xmm1
maxss xmm2, dword [eax + 0x1f8]
minss xmm0, dword [eax + 0x200]
maxss xmm4, dword [eax + 0x1fc]
minss xmm3, dword [eax + 0x204]
subss xmm2, xmm1
movss xmm1, dword [ecx + 0xd50]
addss xmm5, xmm0
movss xmm0, dword [ecx + 0x3818]
subss xmm4, xmm0
addss xmm3, xmm0
comiss xmm1, xmm2
jb 0x100551fb
movss xmm0, dword [ecx + 0xd54]
comiss xmm0, xmm4
jb 0x100551fb
comiss xmm5, xmm1
jbe 0x100551fb
comiss xmm3, xmm0
jbe 0x100551fb
xor ecx, ecx
call fcn.1001fb30
mov esi, dword [0x101739b4]
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x3c], 0
movups xmm0, xmmword [esi + 0x3878]
lea ecx, [esi + 0x3f78]
movups xmmword [ebp - 0x38], xmm0
call fcn.10025ac0
mov eax, dword [ebp - 0x5c]
movaps xmm0, xmmword [0x10136520]
movups xmmword [esi + 0x3878], xmm0
push dword [eax + 0x10]
push str.Error_at_line__d:
call fcn.1003a250
mov esi, dword [0x101739b4]
add esp, 8
mov eax, dword [esi + 0x3f78]
mov ecx, dword [esi + 0x3f80]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [esi + eax*8 + 0x3878], xmm0
dec dword [esi + 0x3f78]
mov ecx, dword [esi + 0x3e30]
cmp byte [ecx + 0x93], 0
jne 0x1005517d
mov ecx, dword [ecx + 0x180]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.1003cb80
mov esi, dword [0x101739b4]
movups xmm0, xmmword [esi + 0x3878]
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0
lea ecx, [esi + 0x3f78]
push eax
movups xmmword [ebp - 0x38], xmm0
call fcn.10025ac0
mov eax, dword [ebp - 0x5c]
movaps xmm0, xmmword [0x10136530]
add eax, 0x14
movups xmmword [esi + 0x3878], xmm0
cmp dword [eax + 0x14], 0xf
jbe 0x100551ba
mov eax, dword [eax]
push eax
push 0x100f0f28
call fcn.1003a250
mov esi, dword [0x101739b4]
add esp, 8
mov eax, dword [esi + 0x3f78]
mov ecx, dword [esi + 0x3f80]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, eax
movups xmmword [esi + eax*8 + 0x3878], xmm0
dec dword [esi + 0x3f78]
call fcn.1001d950
mov eax, dword [ebp - 0x74]
inc eax
push eax
push str._d
lea eax, [ebp - 0x24]
push 0x10
push eax
call fcn.10050640
mov esi, dword [0x101739b4]
lea eax, [ebp - 0x24]
movss xmm3, dword [0x1013618c]
add esp, 0x10
movss xmm2, dword [esi + 0x3bcc]
push 0
push 0
push eax
push ecx
mov ecx, dword [esi + 0x3bc8]
lea eax, [ebp - 0x188]
mov dword [esp], 0xbf800000
push eax
call fcn.10034800
movss xmm0, dword [ebp - 0x84]
addss xmm0, dword [0x10191c5c]
movss xmm1, dword [ebp - 0x6c]
mov edx, dword [0x10191d10]
movss dword [ebp - 0xdc], xmm1
subss xmm0, dword [eax]
movss dword [ebp - 0xe0], xmm0
test edx, 0xff000000
je 0x100552d8
lea ecx, [ebp - 0x24]
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10055288
sub ecx, esi
lea eax, [ebp - 0x24]
mov esi, dword [ebp - 0x78]
add ecx, eax
cmp eax, ecx
je 0x100552db
mov eax, dword [esi + 0x2c]
movups xmm0, xmmword [esi + 0x60]
push 0
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push ecx
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x38]
push ecx
push edx
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, dword [eax + 8]
push esi
movups xmmword [ebp - 0x38], xmm0
call fcn.10034b10
movss xmm1, dword [ebp - 0x6c]
jmp 0x100552db
mov esi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x74]
cmp dword [0x10191c38], eax
jne 0x1005569c
mov eax, dword [0x101739b4]
mov ecx, dword [eax + 0x3fe8]
test ecx, ecx
jne 0x100552fd
xor cl, cl
jmp 0x10055306
cmp ecx, dword [eax + 0x3e30]
sete cl
mov eax, dword [0x10191c30]
mov byte [ebp - 0x6d], cl
cmp eax, dword [0x10191c28]
jne 0x10055321
mov eax, dword [0x10191c34]
cmp eax, dword [0x10191c2c]
setg al
test al, al
jne 0x10055485
movss xmm0, dword [ebp - 0xa8]
addss xmm0, dword [ebp - 0xac]
addss xmm1, dword [0x10191e34]
push 0
movzx eax, cl
push ecx
addss xmm0, dword [ebp - 0x98]
xor eax, 1
mov dword [esp], 0
mov ecx, esi
movss dword [ebp - 0x5c], xmm1
movss dword [ebp - 0xe4], xmm1
push dword [eax*4 + 0x10191d14]
lea eax, [ebp - 0xe8]
movss dword [ebp - 0x64], xmm0
push eax
lea eax, [ebp - 0xc0]
movss dword [ebp - 0xe8], xmm0
push eax
call fcn.10030920
mov eax, dword [0x10191d1c]
mov dword [ebp - 0x68], eax
test eax, 0xff000000
je 0x10055485
test byte [esi + 0x24], 1
mov ecx, esi
movss xmm2, dword [ebp - 0x6c]
movss xmm3, dword [0x10135f40]
movss xmm0, dword [ebp - 0x64]
addss xmm2, xmm3
movss xmm1, dword [ebp - 0x5c]
push 0
je 0x1005540d
subss xmm0, xmm3
movss dword [ebp - 0xf4], xmm2
subss xmm1, xmm3
lea eax, [ebp - 0xf0]
push eax
lea eax, [ebp - 0xf8]
movss dword [ebp - 0xf0], xmm0
movss xmm0, dword [ebp - 0xac]
addss xmm0, xmm3
movss dword [ebp - 0xec], xmm1
movss dword [ebp - 0xf8], xmm0
jmp 0x10055456
subss xmm0, dword [0x10135f3c]
subss xmm1, dword [0x10135f3c]
lea eax, [ebp - 0x100]
movss dword [ebp - 0x104], xmm2
push eax
lea eax, [ebp - 0x108]
movss dword [ebp - 0x100], xmm0
movss xmm0, dword [ebp - 0xac]
addss xmm0, xmm3
movss dword [ebp - 0xfc], xmm1
movss dword [ebp - 0x108], xmm0
movss xmm3, dword [0x10135f8c]
push eax
call fcn.100303b0
push ecx
mov dword [esp], 0x3f800000
mov ecx, esi
push 1
push dword [ebp - 0x68]
push dword [esi + 0x54]
push dword [esi + 0x5c]
call fcn.1002e9b0
mov dword [esi + 0x54], 0
cmp byte [ebp - 0x6d], 0
je 0x1005569c
call fcn.100988c2
push 0
push 0x2710
push edx
push eax
call fcn.100d8130
mov dword [ebp - 0x8c], eax
mov ecx, edx
sub eax, dword [0x10191e60]
mov dword [ebp - 0x60], ecx
sbb ecx, dword [0x10191e64]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xcc], ecx
jne 0x100554d2
cmp eax, 0x190
jbe 0x1005569c
movss xmm0, dword [0x10135f8c]
push 0x10191c38
movss dword [ebp - 0x5c], xmm0
call fcn.10052df0
push 0x10191c38
mov dword [ebp - 0x64], eax
call fcn.10059520
cmp byte [0x10191c54], 0
movss dword [ebp - 0x68], xmm0
je 0x10055605
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax + edi*4]
mov ecx, dword [eax + edi*4 + 4]
mov eax, 0x2aaaaaab
sub ecx, edx
mov dword [ebp - 0x88], edx
imul ecx
mov ecx, dword [ebp - 0x64]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jge 0x10055605
lea eax, [ecx + ecx*2]
mov ecx, dword [ebp - 0x88]
mov al, byte [ecx + eax*4]
cmp al, 9
jne 0x100555bc
addss xmm0, dword [0x10135f8c]
xorps xmm1, xmm1
sub esp, 8
cvtsi2ss xmm1, dword [0x10191c50]
mulss xmm1, dword [ebp - 0x9c]
divss xmm0, xmm1
movss dword [ebp - 0x64], xmm1
movss dword [ebp - 0x88], xmm0
fld dword [ebp - 0x88]
fstp qword [esp]
call fcn.100da340
movss xmm2, dword [ebp - 0x68]
add esp, 8
fstp dword [ebp - 0x88]
fld dword [ebp - 0x88]
fstp dword [ebp - 0x88]
movss xmm1, dword [ebp - 0x88]
addss xmm1, dword [0x10135f8c]
mulss xmm1, dword [ebp - 0x64]
subss xmm1, xmm2
movss dword [ebp - 0x5c], xmm1
jmp 0x1005560a
movss xmm3, dword [0x1013618c]
lea ecx, [ebp - 0x28]
push 0
push 0
push ecx
push ecx
mov byte [ebp - 0x28], al
lea ecx, [ebp - 0x178]
mov eax, dword [0x101739b4]
mov dword [esp], 0xbf800000
push ecx
mov byte [ebp - 0x27], 0
movss xmm2, dword [eax + 0x3bcc]
mov ecx, dword [eax + 0x3bc8]
call fcn.10034800
movss xmm2, dword [ebp - 0x68]
movss xmm0, dword [eax]
jmp 0x1005560f
movss xmm2, dword [ebp - 0x68]
movss xmm0, dword [ebp - 0x5c]
movss xmm1, dword [ebp - 0x90]
lea eax, [ebp - 0x110]
addss xmm1, xmm2
movss xmm2, dword [ebp - 0x6c]
push 0
push ecx
mov dword [esp], 0
mov ecx, esi
push dword [0x10191d00]
movss dword [ebp - 0x118], xmm1
addss xmm1, xmm0
movaps xmm0, xmm2
movss dword [ebp - 0x114], xmm2
addss xmm0, dword [0x10191e34]
push eax
lea eax, [ebp - 0x118]
push eax
movss dword [ebp - 0x110], xmm1
movss dword [ebp - 0x10c], xmm0
call fcn.10030920
cmp dword [ebp - 0xcc], 0
ja 0x10055689
cmp dword [ebp - 0xb8], 0x320
jbe 0x1005569c
mov eax, dword [ebp - 0x8c]
mov dword [0x10191e60], eax
mov eax, dword [ebp - 0x60]
mov dword [0x10191e64], eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x64], eax
cmp eax, ecx
jne 0x100556bb
mov edx, dword [0x10191ccc]
mov dword [ebp - 0x5c], edx
jmp 0x100556ca
push eax
call fcn.10053c10
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x64]
sub ecx, eax
xorps xmm3, xmm3
mov eax, 0x2aaaaaab
movss dword [ebp - 0x68], xmm3
imul ecx
xorps xmm4, xmm4
xor edi, edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10055b53
nop
mov ecx, dword [ebp - 0x64]
lea eax, [edi + edi*2]
lea eax, [ecx + eax*4]
push eax
mov dword [ebp - 0x64], eax
call fcn.10053c10
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x8c], eax
cmp eax, ecx
jne 0x10055725
mov ecx, dword [ebp - 0x64]
mov cl, byte [ecx]
cmp cl, 9
je 0x10055722
cmp cl, 0x20
jne 0x10055845
mov ecx, dword [ebp - 0x5c]
cmp dword [0x10191e58], 0
je 0x10055845
movss xmm1, dword [ebp - 0x90]
mov edx, 0x10191e48
movss xmm0, dword [ebp - 0x6c]
addss xmm1, xmm3
cmp dword [0x10191e5c], 0xf
addss xmm0, xmm4
cmova edx, dword [0x10191e48]
movss dword [ebp - 0x158], xmm1
movss dword [ebp - 0x154], xmm0
test ecx, 0xff000000
je 0x100557c3
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x60], eax
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10055780
sub ecx, dword [ebp - 0x60]
add ecx, edx
cmp edx, ecx
je 0x100557c3
mov eax, dword [esi + 0x2c]
movups xmm0, xmmword [esi + 0x60]
push 0
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push ecx
push edx
lea ecx, [ebp - 0x38]
push ecx
push dword [ebp - 0x5c]
lea ecx, [ebp - 0x158]
push ecx
mov ecx, dword [eax + 8]
push esi
movups xmmword [ebp - 0x38], xmm0
call fcn.10034b10
cmp dword [0x10191e5c], 0xf
mov eax, 0x10191e48
movss xmm3, dword [0x1013618c]
cmova eax, dword [0x10191e48]
push 0
push 0
push eax
push ecx
lea eax, [ebp - 0x150]
mov dword [esp], 0xbf800000
push eax
mov eax, dword [0x101739b4]
movss xmm2, dword [eax + 0x3bcc]
mov ecx, dword [eax + 0x3bc8]
call fcn.10034800
cmp dword [0x10191e5c], 0xf
mov eax, 0x10191e48
movss xmm3, dword [ebp - 0x68]
xorps xmm4, xmm4
cmova eax, dword [0x10191e48]
addss xmm3, dword [ebp - 0x150]
mov dword [0x10191e58], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x8c]
movss dword [ebp - 0x68], xmm3
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x64]
mov cl, byte [eax]
cmp cl, 9
jne 0x100559da
xorps xmm0, xmm0
movss dword [ebp - 0xb8], xmm3
cvtsi2ss xmm0, dword [0x10191c50]
sub esp, 8
addss xmm3, dword [0x10135f8c]
mulss xmm0, dword [ebp - 0x9c]
divss xmm3, xmm0
movss dword [ebp - 0x8c], xmm0
movss dword [ebp - 0x60], xmm3
fld dword [ebp - 0x60]
fstp qword [esp]
call fcn.100da340
movss xmm0, dword [0x10135f8c]
add esp, 8
fstp dword [ebp - 0x60]
fld dword [ebp - 0x60]
inc edi
cmp byte [0x10191c77], 0
fstp dword [ebp - 0x60]
movss xmm3, dword [ebp - 0x60]
addss xmm3, xmm0
mulss xmm3, dword [ebp - 0x8c]
movss dword [ebp - 0x68], xmm3
je 0x10055b20
movss xmm1, dword [ebp - 0x90]
addss xmm3, dword [ebp - 0x90]
addss xmm1, dword [ebp - 0xb8]
mov eax, dword [0x101739b4]
movss xmm2, dword [ebp - 0x6c]
push ecx
subss xmm3, xmm0
mov dword [esp], 0x3f800000
movss xmm4, dword [eax + 0x3bcc]
addss xmm1, xmm0
xorps xmm0, xmm0
lea eax, [ebp - 0xc8]
addss xmm2, xmm0
mov ecx, esi
movaps xmm0, xmm4
mulss xmm4, dword [0x10135f18]
push 0x90909090
mulss xmm0, dword [0x10135f40]
push eax
movss dword [ebp - 0xc8], xmm3
lea eax, [ebp - 0x128]
subss xmm3, xmm4
movss dword [ebp - 0x128], xmm1
addss xmm2, xmm0
push eax
movss dword [ebp - 0x130], xmm3
movaps xmm0, xmm2
movss dword [ebp - 0x124], xmm2
subss xmm0, xmm4
movss dword [ebp - 0xc4], xmm2
addss xmm4, xmm2
movss dword [ebp - 0x138], xmm3
movss dword [ebp - 0x12c], xmm0
movss dword [ebp - 0x134], xmm4
call fcn.10030720
push ecx
mov dword [esp], 0x3f800000
lea eax, [ebp - 0x130]
push 0x90909090
push eax
lea eax, [ebp - 0xc8]
mov ecx, esi
push eax
call fcn.10030720
push ecx
mov dword [esp], 0x3f800000
lea eax, [ebp - 0x138]
push 0x90909090
push eax
lea eax, [ebp - 0xc8]
mov ecx, esi
push eax
call fcn.10030720
jmp 0x10055b1b
cmp cl, 0x20
jne 0x10055a96
cmp byte [0x10191c77], 0
je 0x10055a83
movss xmm2, dword [ebp - 0x90]
movss xmm0, dword [ebp - 0x9c]
addss xmm2, xmm3
mulss xmm0, dword [0x10135f40]
xorps xmm3, xmm3
mov eax, dword [0x101739b4]
push 3
push ecx
addss xmm2, xmm0
mov dword [esp], 0x4096cbe4
movss xmm1, dword [eax + 0x3bcc]
mov ecx, esi
movss xmm0, dword [ebp - 0x6c]
lea eax, [ebp - 0x140]
mulss xmm1, dword [0x10135f40]
addss xmm0, xmm4
push eax
movss dword [ebp - 0x140], xmm2
movss xmm2, dword [0x10135fac]
addss xmm0, xmm1
movss dword [ebp - 0x13c], xmm0
call fcn.1002ff70
push 0x80808080
push dword [esi + 0x54]
mov ecx, esi
push dword [esi + 0x5c]
call fcn.1002f6b0
movss xmm3, dword [ebp - 0x68]
mov dword [esi + 0x54], 0
addss xmm3, dword [ebp - 0x9c]
inc edi
movss dword [ebp - 0x68], xmm3
jmp 0x10055b20
mov al, cl
and al, 0xfe
cmp al, 0xfc
jne 0x10055aa5
mov eax, 6
jmp 0x10055ade
mov al, cl
and al, 0xfc
cmp al, 0xf8
jne 0x10055ab4
mov eax, 5
jmp 0x10055ade
mov al, cl
and al, 0xf8
cmp al, 0xf0
jne 0x10055ac3
mov eax, 4
jmp 0x10055ade
mov al, cl
and al, 0xf0
cmp al, 0xe0
jne 0x10055ad2
mov eax, 3
jmp 0x10055ade
and cl, 0xe0
xor eax, eax
cmp cl, 0xc0
sete al
inc eax
lea esi, [edi + edi*2]
shl esi, 2
add edi, eax
mov dword [ebp - 0x8c], edi
mov edi, dword [ebp - 0xb0]
dec eax
lea esi, [esi + 0xc]
mov dword [ebp - 0x60], eax
mov ecx, 0x10191e48
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + edi*4]
mov al, byte [esi + eax - 0xc]
push eax
call fcn.1005aa90
mov eax, dword [ebp - 0x60]
test eax, eax
jg 0x10055af2
mov edi, dword [ebp - 0x8c]
movss xmm3, dword [ebp - 0x68]
mov edx, dword [ebp - 0x7c]
xorps xmm4, xmm4
mov ecx, dword [ebp - 0xb0]
mov esi, dword [ebp - 0x78]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
sub ecx, eax
mov dword [ebp - 0x64], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x100556f0
cmp dword [0x10191e58], 0
je 0x10055c1c
movss xmm1, dword [ebp - 0x90]
mov edx, 0x10191e48
movss xmm0, dword [ebp - 0x6c]
addss xmm1, xmm3
mov edi, dword [0x10191e5c]
addss xmm0, xmm4
mov esi, dword [ebp - 0x5c]
cmp edi, 0xf
cmova edx, dword [0x10191e48]
movss dword [ebp - 0xa4], xmm1
movss dword [ebp - 0xa0], xmm0
test esi, 0xff000000
je 0x10055c00
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0x60], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10055bb0
sub ecx, dword [ebp - 0x60]
lea eax, [edx + ecx]
mov dword [ebp - 0x60], eax
cmp edx, eax
je 0x10055c00
mov ecx, dword [ebp - 0x78]
push 0
push ecx
mov dword [esp], 0
push dword [ebp - 0x60]
mov eax, dword [ecx + 0x2c]
movups xmm0, xmmword [ecx + 0x60]
push edx
lea edx, [ebp - 0x38]
movss xmm2, dword [eax + 0xc]
push edx
push esi
lea edx, [ebp - 0xa4]
push edx
push ecx
mov ecx, dword [eax + 8]
movups xmmword [ebp - 0x38], xmm0
call fcn.10034b10
mov edi, dword [0x10191e5c]
cmp edi, 0xf
mov dword [0x10191e58], 0
mov eax, 0x10191e48
cmova eax, dword [0x10191e48]
mov byte [eax], 0
mov esi, dword [ebp - 0x74]
inc dword [ebp - 0x94]
inc esi
movss xmm1, dword [ebp - 0x84]
mov dword [ebp - 0x74], esi
cmp esi, dword [ebp - 0x80]
jle 0x10054cf0
mov ecx, dword [0x101739b4]
movss xmm1, dword [0x101361fc]
movss xmm0, dword [ecx + 0xd50]
comiss xmm0, xmm1
movss xmm2, dword [ecx + 0xd54]
jb 0x10055dde
comiss xmm2, xmm1
jb 0x10055dde
mov eax, dword [ecx + 0xd50]
mov ecx, dword [ecx + 0xd54]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x178]
mov dword [ebp - 0xa0], ecx
push eax
call fcn.10052650
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.10053b10
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
test esi, esi
je 0x10055d94
cmp edi, 0xf
lea eax, [ebp - 0x40]
mov edx, 0x811c9dc5
cmova eax, dword [ebp - 0x40]
xor ecx, ecx
test esi, esi
je 0x10055ce4
mov edi, eax
nop dword [eax + eax]
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x10055cd0
mov edi, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x40]
mov ecx, 0x10191d58
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.1005e0d0
mov eax, dword [eax + 4]
mov dword [ebp - 0x60], eax
test eax, eax
je 0x10055d1b
cmp eax, dword [0x10191d5c]
je 0x10055d1b
xor ecx, ecx
call fcn.1001fb30
mov ecx, dword [ebp - 0x60]
add ecx, 0x28
jmp 0x10055d78
cmp edi, 0xf
lea eax, [ebp - 0x40]
mov edx, 0x811c9dc5
cmova eax, dword [ebp - 0x40]
xor ecx, ecx
mov dword [ebp - 0x60], eax
test esi, esi
je 0x10055d49
mov edi, eax
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x10055d35
mov edi, dword [ebp - 0x2c]
push edx
lea eax, [ebp - 0x40]
mov ecx, 0x10191d78
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.1005e0d0
mov esi, dword [eax + 4]
test esi, esi
je 0x10055d94
cmp esi, dword [0x10191d7c]
je 0x10055d94
xor ecx, ecx
call fcn.1001fb30
lea ecx, [esi + 0x28]
cmp dword [ecx + 0x14], 0xf
jbe 0x10055d80
mov ecx, dword [ecx]
push 1
xor edx, edx
call fcn.10039b40
add esp, 4
call fcn.1001d950
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 4], 0xffffffff
cmp edi, 0xf
jbe 0x10055dcc
mov ecx, dword [ebp - 0x40]
inc edi
mov eax, ecx
cmp edi, 0x1000
jb 0x10055dc2
mov ecx, dword [eax - 4]
add edi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10055ef6
push edi
push ecx
call fcn.10096ca5
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
mov ecx, dword [0x10191c20]
mov eax, 0x2aaaaaab
sub ecx, dword [0x10191c1c]
imul ecx
movss xmm2, dword [ebp - 0xb4]
addss xmm2, dword [0x10135fe8]
mov ecx, dword [0x101739b4]
sar edx, 1
mov eax, edx
movss dword [ebp - 0xa4], xmm2
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10136600]
mov eax, dword [ecx + 0x3e30]
cvtpd2ps xmm1, xmm0
mulss xmm1, dword [0x10191e34]
mov byte [eax + 0x90], 1
mov eax, dword [ecx + 0x3e30]
movss dword [ebp - 0xa0], xmm1
cmp byte [eax + 0x93], 0
jne 0x10055eb2
movss xmm3, dword [eax + 0xd4]
lea ecx, [ebp - 0xa4]
movss xmm0, dword [eax + 0xd8]
movaps xmm4, xmm3
addss xmm4, xmm2
movss dword [ebp - 0x50], xmm3
movaps xmm2, xmm0
movss dword [ebp - 0x4c], xmm0
addss xmm2, xmm1
movss xmm1, dword [0x101361ac]
movss dword [ebp - 0x48], xmm4
movss dword [ebp - 0x44], xmm2
call fcn.1001ec00
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0x50]
call fcn.1001edb0
add esp, 8
cmp byte [0x10191c57], 0
je 0x10055ed8
call fcn.10059770
mov ecx, dword [0x101739b4]
mov ecx, dword [ecx + 0x3e30]
call fcn.1001dab0
mov byte [0x10191c57], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10096753
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.100bc2c1
int3