Function at 0x1010f3c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd4
mov eax, dword fs:[0x2c]
push ebx
mov ebx, ecx
mov dword [esp + 0x2c], eax
mov ecx, dword [0x10217cb0]
push esi
push edi
mov dword [esp + 0x3c], edx
mov esi, dword [eax + ecx*4]
mov eax, dword [0x104eee04]
cmp eax, dword [esi + 4]
jle 0x1010f431
push 0x104eee04
call fcn.1015fec1
add esp, 4
cmp dword [0x104eee04], 0xffffffff
jne 0x1010f42d
movq xmm0, qword [ebx + 0xc]
movq qword [0x104eedf0], xmm0
mov eax, dword [ebx + 0x14]
push 0x104eee04
mov dword [0x104eedf8], eax
call fcn.1015fe70
add esp, 4
mov edx, dword [esp + 0x3c]
mov eax, dword [ebx + 0x14]
lea edi, [esp + 0x78]
movq xmm0, qword [ebx + 0xc]
mov ecx, 0x19
mov dword [esp + 0x70], eax
mov esi, ebx
mov eax, dword [0x1021663c]
movq qword [esp + 0x68], xmm0
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x1c]
dec eax
cmp byte [0x102187fc], 0
mov dword [esp + 0x74], eax
je 0x1010fa33
mov al, byte [0x102187fd]
mov byte [edx], al
mov al, byte [0x102187d8]
mov byte [edx], al
and dword [ebx + 0x30], 0xfffff7fe
mov eax, dword [0x10216634]
add eax, 0xe5c
mov ecx, dword [eax]
cmp ecx, 3
ja case.0x1010f497.3676
jmp dword [ecx*4 + 0x10110680]
lea esi, [ebx + 0x24]
lea edi, [ebx + 0x28]
mov dword [esp + 0x64], esi
mov dword [esp + 0x38], edi
jmp 0x1010f4d0
mov ecx, eax
call fcn.100be310
jmp 0x1010f4ba
mov al, byte [eax + 0x20]
lea esi, [ebx + 0x24]
mov dword [esp + 0x64], esi
lea edi, [ebx + 0x28]
mov dword [esp + 0x38], edi
test al, al
je 0x1010f6a6
movss xmm2, dword [esi]
movss xmm1, dword [edi]
movaps xmm0, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm2
movss dword [esp + 0x34], xmm2
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1010f4ff
sqrtsd xmm0, xmm0
jmp 0x1010f504
call fcn.10187f60
movss xmm2, dword [edi]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x24], xmm0
xorps xmm0, xmm0
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jp 0x1010f552
movss xmm1, dword [esi]
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1010f558
movss xmm1, dword [ebx + 0x2c]
xorps xmm2, xmm2
comiss xmm1, xmm0
jbe 0x1010f545
movss xmm1, dword [0x101ece18]
jmp 0x1010f625
movss xmm1, dword [0x101ecdc8]
jmp 0x1010f625
movss xmm1, dword [esp + 0x34]
cvtps2pd xmm0, xmm2
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
cvtps2pd xmm0, xmm1
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call fcn.10186190
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x101ecdfc]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x101ecc60]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
movss dword [esp + 0x34], xmm1
jbe 0x1010f5b8
addss xmm1, dword [0x101ece2c]
movss dword [esp + 0x34], xmm1
movss xmm0, dword [ebx + 0x2c]
xorps xmm0, xmmword [0x101ed400]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x24]
fld qword [esp + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call fcn.10186190
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
movss xmm2, dword [esp + 0x34]
mulss xmm0, dword [0x101ecdfc]
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x101ecc60]
cvtpd2ps xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1010f625
addss xmm1, dword [0x101ece2c]
lea ecx, [esp + 0x40]
movss dword [esp + 0x40], xmm1
movss dword [esp + 0x44], xmm2
mov dword [esp + 0x48], 0
call fcn.10036b90
movss xmm0, dword [ebx + 0x10]
subss xmm0, dword [0x104eedf4]
addss xmm0, dword [esp + 0x44]
mulss xmm0, dword [0x101ecaa0]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
call fcn.10187d90
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x24]
movss dword [esp + 0x34], xmm0
movsd xmm0, qword [esp + 0x18]
call fcn.10186b10
movss xmm1, dword [esp + 0x34]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x24]
jmp 0x1010f6ac
lea edi, [ebx + 0x28]
lea esi, [ebx + 0x24]
mov dword [esp + 0x38], edi
mov dword [esp + 0x64], esi
xorps xmm0, xmm0
xorps xmm1, xmm1
mov dword [esp + 0x18], edi
mov ecx, ebx
mov dword [esp + 0x28], esi
movss dword [esi], xmm0
movss dword [edi], xmm1
call fcn.10106650
mov eax, dword [0x10216630]
mov eax, dword [eax + 0xcc]
mov esi, dword [eax]
test esi, esi
je 0x1010f6e4
mov ecx, 0x1b3d5859
call fcn.100c3de0
cmp byte [eax + esi], 0
jne 0x1010f6f9
mov eax, dword [0x10216634]
cmp byte [eax + 0x3508], 0
je 0x1010f6f9
or dword [ebx + 0x30], 0x400000
mov ecx, ebx
call fcn.100f13e0
call fcn.10097cb0
mov ecx, ebx
call fcn.10097d50
movss xmm0, dword [esp + 0x68]
mov ecx, ebx
movss xmm1, dword [esp + 0x6c]
movss xmm2, dword [esp + 0x70]
call fcn.100f1110
lea edx, [esp + 0x68]
mov ecx, ebx
call fcn.101083b0
mov eax, dword [0x102187c8]
mov dword [0x102226f0], ebx
mov ecx, dword [eax]
test ecx, ecx
je 0x1010f75b
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x1010f75b
mov ecx, ebx
call fcn.10090de0
mov dword [0x102226f4], eax
mov ecx, ebx
call fcn.10090de0
mov ecx, ebx
mov dword [0x102224e0], eax
call fcn.10092760
test al, al
je 0x1010f787
push dword [esp + 0x3c]
lea eax, [esp + 0x6c]
mov edx, 0x104eedf0
push eax
mov ecx, ebx
call fcn.100926e0
movss xmm0, dword [ebx + 0xc]
lea esi, [ebx + 0xc]
subss xmm0, dword [0x104eedf0]
lea ecx, [esp + 0x40]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esi + 4]
subss xmm0, dword [0x104eedf4]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esi + 8]
subss xmm0, dword [0x104eedf8]
movss dword [esp + 0x48], xmm0
call fcn.10036b90
movss xmm0, dword [esp + 0x40]
lea eax, [esp + 0x40]
movss xmm1, dword [0x101ecf34]
lea ecx, [esp + 0x24]
comiss xmm1, xmm0
mov dword [esp + 0x34], 0x437f0000
mov dword [esp + 0x24], 0xc37f0000
cmovbe ecx, eax
lea eax, [esp + 0x34]
comiss xmm0, dword [0x101ece10]
movss xmm0, dword [esp + 0x44]
cmovbe eax, ecx
lea ecx, [esp + 0x24]
comiss xmm1, xmm0
movss xmm3, dword [eax]
lea eax, [esp + 0x44]
movss xmm1, dword [0x104eedf8]
addss xmm1, dword [esp + 0x48]
cmovbe ecx, eax
movss dword [esp + 0x40], xmm3
comiss xmm0, dword [0x101ece10]
lea eax, [esp + 0x34]
mov dword [esp + 0x34], 0x437f0000
mov dword [esp + 0x24], 0xc37f0000
movss xmm0, dword [0x104eedf0]
addss xmm0, xmm3
cmovbe eax, ecx
mov ecx, esi
movss xmm2, dword [eax]
addss xmm2, dword [0x104eedf4]
movss dword [esi], xmm0
movss dword [esi + 4], xmm2
movss dword [esi + 8], xmm1
call fcn.10036b90
movss xmm0, dword [esp + 0x68]
ucomiss xmm0, dword [esi]
movss xmm3, dword [esp + 0x6c]
lahf
test ah, 0x44
jp 0x1010f8e4
ucomiss xmm3, dword [esi + 4]
lahf
test ah, 0x44
jp 0x1010f8e4
movss xmm0, dword [esp + 0x70]
ucomiss xmm0, dword [esi + 8]
lahf
test ah, 0x44
jp 0x1010f8e4
mov ecx, dword [esp + 0x28]
mov edi, ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], edx
movss xmm0, dword [ecx]
ucomiss xmm0, dword [esp + 0x9c]
lahf
test ah, 0x44
jp 0x1010f8e8
movss xmm0, dword [edx]
ucomiss xmm0, dword [esp + 0xa0]
mov dword [esp + 0x38], edx
lahf
test ah, 0x44
jnp 0x1010f913
jmp 0x1010f8e8
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x38]
xorps xmm2, xmm2
movss xmm0, dword [eax]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x1010f909
movss xmm1, dword [edi]
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x1010f913
movaps xmm0, xmm3
mov ecx, ebx
call fcn.10108260
movss xmm1, dword [esi]
lea ecx, [esp + 0x18]
movss xmm0, dword [0x101ecf1c]
lea eax, [esp + 0x28]
comiss xmm0, xmm1
lea edx, [ebx + 0x10]
mov dword [esp + 0x28], 0x42b20000
mov dword [esp + 0x18], 0xc2b20000
movss xmm0, dword [0x101ecf2c]
cmovbe ecx, esi
comiss xmm1, dword [0x101ecdc4]
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [esi], eax
lea eax, [esp + 0x28]
movss xmm1, dword [edx]
comiss xmm0, xmm1
mov dword [esp + 0x28], 0x43340000
mov dword [esp + 0x18], 0xc3340000
cmovbe ecx, edx
comiss xmm1, dword [0x101ecdfc]
movss xmm1, dword [0x101ecf40]
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [edx], eax
lea eax, [esp + 0x28]
movss xmm0, dword [edi]
lea edx, [ebx + 0x2c]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x43e10000
mov dword [esp + 0x18], 0xc3e10000
cmovbe ecx, edi
comiss xmm0, dword [0x101ece48]
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [ebx + 0x24], eax
lea eax, [ebx + 0x28]
movss xmm0, dword [eax]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x43e10000
mov dword [esp + 0x18], 0xc3e10000
cmovbe ecx, eax
lea eax, [esp + 0x28]
comiss xmm0, dword [0x101ece48]
movss xmm0, dword [0x101ecf38]
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [ebx + 0x28], eax
lea eax, [esp + 0x28]
movss xmm1, dword [edx]
comiss xmm0, xmm1
mov dword [esp + 0x28], 0x43a00000
mov dword [esp + 0x18], 0xc3a00000
cmovbe ecx, edx
comiss xmm1, dword [0x101ece24]
cmovbe eax, ecx
mov eax, dword [eax]
mov dword [edx], eax
jmp 0x10110628
call fcn.100a16a0
mov ecx, ebx
call fcn.100a4e30
mov eax, dword [0x102187c8]
mov esi, dword [eax]
test esi, esi
je 0x1010fa68
mov eax, dword [0x104eee84]
test eax, eax
je 0x1010fa59
cmp byte [eax + 0x48], 0
je 0x1010fa68
mov ecx, 0x8d4eb58d
call fcn.100c3de0
mov eax, dword [eax + esi]
jmp 0x1010fa6e
mov eax, dword [0x104eee88]
inc eax
mov dword [0x104eee88], eax
mov eax, dword [0x10216634]
mov dword [0x104eee84], ebx
cmp byte [eax + 0x36b2], 0
je 0x1010fc98
test esi, esi
je 0x1010fc98
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x1010fc98
mov eax, dword [0x102187c8]
mov ecx, 0xc84de670
mov esi, dword [eax]
call fcn.100c3de0
cmp dword [eax + esi + 1], 8
je 0x1010fc98
mov ecx, 0xc84de670
call fcn.100c3de0
cmp dword [eax + esi + 1], 9
je 0x1010fc98
mov ecx, 0x394634f0
call fcn.100c3de0
test byte [eax + esi], 1
je 0x1010fc98
test dword [ebx + 0x30], 0x61a
jne 0x1010fc98
mov ecx, 0xad2bbff4
call fcn.100c3de0
movq xmm0, qword [eax + esi]
mov eax, dword [eax + esi + 8]
movq qword [esp + 0x40], xmm0
movss xmm1, dword [esp + 0x40]
movss xmm0, dword [esp + 0x44]
mulss xmm1, xmm1
mov dword [esp + 0x48], eax
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1010fb40
sqrtsd xmm0, xmm0
jmp 0x1010fb45
call fcn.10187f60
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [0x101ecd30]
comiss xmm0, xmm1
movss dword [esp + 0x38], xmm1
ja 0x1010fc98
movss xmm0, dword [esp + 0x48]
sub esp, 8
xorps xmm0, xmmword [0x101ed400]
fld dword [esp + 0x4c]
cvtss2sd xmm0, xmm0
fstp dword [esp + 4]
fld dword [esp + 0x48]
fstp dword [esp]
movsd qword [esp + 0x30], xmm0
call fcn.101861be
fstp dword [esp + 0x20]
movss xmm0, dword [esp + 0x20]
add esp, 8
fld qword [esp + 0x28]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call fcn.10186190
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x101ecd9c]
mulss xmm0, dword [0x101ecaa0]
cvtps2pd xmm0, xmm0
call fcn.10186b10
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x44]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x40]
fld qword [esp + 0x18]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
call fcn.10186190
movss xmm1, dword [ebx + 0x10]
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x101ecd9c]
subss xmm1, xmm0
mulss xmm1, dword [0x101ecaa0]
cvtps2pd xmm0, xmm1
movss xmm1, dword [esp + 0x38]
xorps xmm1, xmmword [0x101ed400]
movsd qword [esp + 0x28], xmm0
movss dword [esp + 0x38], xmm1
call fcn.10186b10
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x24]
mulss xmm0, dword [esp + 0x38]
movss dword [esp + 0x18], xmm0
movsd xmm0, qword [esp + 0x28]
call fcn.10187d90
movss xmm1, dword [esp + 0x18]
cvtsd2ss xmm0, xmm0
movss dword [ebx + 0x24], xmm1
mulss xmm0, dword [esp + 0x24]
mulss xmm0, dword [esp + 0x38]
movss dword [ebx + 0x28], xmm0
call fcn.100a73d0
call fcn.100a5690
mov eax, dword [0x10216634]
cmp byte [eax + 0x35ad], 0
je 0x1010fcd8
mov eax, dword [0x1021663c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x1010fcd8
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
test ecx, ecx
je 0x1010fcd8
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
mov ecx, ebx
call fcn.10106650
mov eax, dword [0x10216630]
mov eax, dword [eax + 0xcc]
mov esi, dword [eax]
test esi, esi
je 0x1010fd00
mov ecx, 0x1b3d5859
call fcn.100c3de0
cmp byte [eax + esi], 0
jne 0x1010fd15
mov eax, dword [0x10216634]
cmp byte [eax + 0x3508], 0
je 0x1010fd15
or dword [ebx + 0x30], 0x400000
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x430]
call eax
test eax, eax
je 0x1010fdcc
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x430]
call eax
mov ecx, dword [eax]
mov edx, dword [ecx + 0x71c]
mov ecx, eax
call edx
cmp eax, 1
jne 0x1010fdcc
mov eax, dword [0x10216630]
movd xmm0, dword [0x104eee88]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0xc]
mulss xmm0, dword [eax + 0x20]
mov eax, dword [0x102187c8]
movss dword [esp + 0x18], xmm0
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x430]
call eax
mov ecx, 0xb439d47
mov esi, eax
call fcn.100c3de0
movss xmm0, dword [eax + esi]
comiss xmm0, dword [esp + 0x18]
jbe 0x1010fdcc
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x430]
call eax
mov edi, dword [ebx + 0x30]
mov ecx, 0x19cdc55d
mov esi, eax
call fcn.100c3de0
cmp word [eax + esi], 0x40
jne 0x1010fdc6
and edi, 0xfffff7ff
jmp 0x1010fdc9
and edi, 0xfffffffe
mov dword [ebx + 0x30], edi
mov eax, dword [0x10216634]
cmp byte [eax + 0x36a5], 0
je 0x1010fe23
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
test ecx, ecx
je 0x1010fe23
mov eax, dword [ecx]
mov eax, dword [eax + 0x430]
call eax
mov esi, eax
test esi, esi
je 0x1010fe23
mov ecx, 0x19cdc55d
call fcn.100c3de0
mov cx, word [eax + esi]
call fcn.10090c20
test eax, eax
je 0x1010fe23
mov ecx, 0xb22c092c
call fcn.100c3de0
cmp dword [eax + esi], 0
jne 0x1010fe23
and dword [ebx + 0x30], 0xfffff7fe
xor cl, cl
call fcn.100f5900
call fcn.10106010
mov eax, dword [0x10216634]
cmp byte [eax + 0x36a8], 0
je 0x1010fe60
test dword [ebx + 0x30], 0x10000
je 0x1010fe60
mov eax, dword [0x1021663c]
push 0
push 0
push 0
mov ecx, dword [eax + 4]
push 0x32
mov eax, dword [ecx]
mov eax, dword [eax + 0x98]
call eax
mov ecx, ebx
call fcn.100f13e0
mov eax, dword [0x102187c8]
cmp dword [eax], 0
je 0x1010ffcc
mov eax, dword [0x1021663c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
test eax, eax
je 0x1010ffcc
mov ecx, dword [eax + 0x1c]
cmp ecx, dword [0x102224d8]
je 0x1010ff63
mov eax, dword [eax + 0x28]
xorps xmm0, xmm0
mov edx, dword [0x10323348]
mov dword [esp + 0x40], eax
mov eax, dword [0x10216630]
movlpd qword [esp + 0x4c], xmm0
movd xmm0, dword [0x104eee88]
cvtdq2ps xmm0, xmm0
mov eax, dword [eax + 0xc]
mov dword [0x102224d8], ecx
mov dword [esp + 0x44], ecx
mulss xmm0, dword [eax + 0x20]
mov eax, dword [0x10323350]
inc eax
movss dword [esp + 0x48], xmm0
cmp edx, eax
ja 0x1010fef2
push ecx
call fcn.10093bb0
mov edx, dword [0x10323348]
lea ecx, [edx - 1]
mov edi, edx
and ecx, dword [0x1032334c]
lea esi, [edx - 1]
mov dword [0x1032334c], ecx
cmovne edi, ecx
mov ecx, dword [0x10323344]
dec edi
and esi, edi
cmp dword [ecx + esi*4], 0
jne 0x1010ff37
push 0x14
call fcn.1015fe37
mov ecx, dword [0x10323344]
add esp, 4
mov dword [ecx + esi*4], eax
mov edx, dword [0x10323348]
mov ecx, dword [0x10323344]
movups xmm0, xmmword [esp + 0x40]
lea eax, [edx - 1]
and eax, edi
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x50]
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], eax
mov ecx, dword [0x10323350]
inc ecx
mov dword [0x1032334c], edi
mov dword [0x10323350], ecx
jmp 0x1010ff69
mov ecx, dword [0x10323350]
mov edx, dword [0x10216630]
movss xmm1, dword [0x101ecba0]
movaps xmm0, xmm1
movss xmm2, dword [0x101ecb34]
mov eax, dword [edx + 0xc]
divss xmm0, dword [eax + 0x20]
addss xmm0, xmm2
cvttss2si eax, xmm0
cmp ecx, eax
jbe 0x1010ffcc
nop word [eax + eax]
add ecx, 0xffffffff
mov dword [0x10323350], ecx
jne 0x1010ffb5
mov dword [0x1032334c], 0
mov eax, dword [edx + 0xc]
movaps xmm0, xmm1
divss xmm0, dword [eax + 0x20]
addss xmm0, xmm2
cvttss2si eax, xmm0
cmp ecx, eax
ja 0x1010ffa0
call fcn.10097cb0
mov ecx, ebx
call fcn.10097d50
mov ecx, ebx
call fcn.1009b140
mov ecx, ebx
call fcn.10092be0
mov ecx, ebx
call fcn.100393b0
mov eax, dword [0x10216634]
cmp byte [eax + 1], 0
je 0x1010ffff
mov ecx, ebx
call fcn.1009c9c0
movss xmm0, dword [esp + 0x68]
mov ecx, ebx
movss xmm1, dword [esp + 0x6c]
movss xmm2, dword [esp + 0x70]
call fcn.100f1110
mov ecx, ebx
call fcn.100a5090
mov eax, dword [0x102187c8]
mov dword [0x102226f0], ebx
mov ecx, dword [eax]
test ecx, ecx
je 0x1011004a
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x1011004a
mov ecx, ebx
call fcn.10090de0
mov dword [0x102226f4], eax
mov ecx, ebx
call fcn.10090de0
mov ecx, ebx
mov dword [0x102224e0], eax
call fcn.10092760
mov edi, dword [esp + 0x3c]
test al, al
je 0x1011007e
mov ecx, edi
call fcn.10098a60
push edi
lea eax, [esp + 0x6c]
mov edx, 0x104eedf0
push eax
mov ecx, ebx
call fcn.100926e0
mov eax, dword [0x10216634]
cmp byte [eax + 0x3640], 0
je case.0x101100a4.0
mov ecx, dword [eax + 0x3644]
add eax, 0x3644
cmp ecx, 3
ja case.0x101100a4.0
jmp dword [ecx*4 + 0x10110690]
mov ecx, eax
call fcn.100be310
jmp 0x101100b7
mov al, byte [eax + 0x20]
test al, al
je case.0x101100a4.0
mov eax, dword [0x1021663c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je case.0x101100a4.0
mov eax, dword [0x10216630]
mov eax, dword [eax + 0xcc]
mov esi, dword [eax]
test esi, esi
je 0x1011012d
call fcn.10154b60
cmp eax, 1
je 0x10110119
call fcn.10154b60
cmp eax, 7
je 0x10110119
call fcn.10154b60
cmp eax, 5
je 0x10110119
call fcn.10154b60
cmp eax, 0xc
je 0x10110119
call fcn.10154b60
cmp eax, 6
jne 0x1011012d
mov ecx, 0x1b3d5859
call fcn.100c3de0
cmp byte [eax + esi], 0
jne case.0x101100a4.0
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
test ecx, ecx
je case.0x101100a4.0
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je case.0x101100a4.0
mov ecx, 0x394634f0
call fcn.100c3de0
mov ecx, dword [0x102187c8]
mov ecx, dword [ecx]
test byte [eax + ecx], 1
je case.0x101100a4.0
mov eax, dword [0x1021663c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
mov dword [esp + 0x24], eax
test eax, eax
je case.0x101100a4.0
mov esi, dword [ebx + 0x30]
or esi, 0x400000
mov dword [ebx + 0x30], esi
call fcn.10154ae0
cdq
mov ecx, esi
sub eax, edx
and ecx, 0xfffffffb
mov edx, dword [esp + 0x24]
or esi, 4
sar eax, 1
cmp dword [edx + 0x2c], eax
cmovl esi, ecx
mov dword [ebx + 0x30], esi
call fcn.10154ae0
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x2c], eax
setge al
mov byte [edi], al
lea edx, [esp + 0x68]
mov ecx, ebx
call fcn.101083b0
mov eax, dword [0x1021663c]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
test eax, eax
je 0x10110211
mov eax, dword [0x10216634]
mov eax, dword [eax + 0x34d0]
test eax, eax
jle 0x10110211
cmp eax, 4
je 0x10110211
mov eax, dword [0x102187c8]
mov esi, dword [eax]
test esi, esi
je 0x10110211
mov ecx, 0xc84de670
call fcn.100c3de0
cmp dword [eax + esi + 1], 9
je 0x10110211
cmp byte [edi], 0
jne 0x10110211
xor dword [ebx + 0x30], 0x618
movss xmm0, dword [ebx + 0xc]
lea ecx, [esp + 0x40]
subss xmm0, dword [0x104eedf0]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [ebx + 0x10]
subss xmm0, dword [0x104eedf4]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [ebx + 0x14]
subss xmm0, dword [0x104eedf8]
movss dword [esp + 0x48], xmm0
call fcn.10036b90
movss xmm0, dword [esp + 0x40]
lea eax, [esp + 0x40]
movss xmm1, dword [0x101ecf34]
lea ecx, [esp + 0x18]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x437f0000
mov dword [esp + 0x18], 0xc37f0000
cmovbe ecx, eax
lea eax, [esp + 0x28]
comiss xmm0, dword [0x101ece10]
movss xmm0, dword [esp + 0x44]
cmovbe eax, ecx
lea ecx, [esp + 0x18]
comiss xmm1, xmm0
movss xmm3, dword [eax]
lea eax, [esp + 0x44]
movss xmm1, dword [0x104eedf8]
addss xmm1, dword [esp + 0x48]
cmovbe ecx, eax
movss dword [esp + 0x40], xmm3
comiss xmm0, dword [0x101ece10]
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0x437f0000
mov dword [esp + 0x18], 0xc37f0000
movss xmm0, dword [0x104eedf0]
addss xmm0, xmm3
cmovbe eax, ecx
lea ecx, [ebx + 0xc]
movss xmm2, dword [eax]
addss xmm2, dword [0x104eedf4]
movss dword [ebx + 0xc], xmm0
movss dword [ebx + 0x10], xmm2
movss dword [ebx + 0x14], xmm1
call fcn.10036b90
movss xmm0, dword [esp + 0x68]
ucomiss xmm0, dword [ebx + 0xc]
movss xmm2, dword [esp + 0x6c]
lahf
test ah, 0x44
jp 0x10110362
ucomiss xmm2, dword [ebx + 0x10]
lahf
test ah, 0x44
jp 0x10110362
movss xmm0, dword [esp + 0x70]
ucomiss xmm0, dword [ebx + 0x14]
lahf
test ah, 0x44
jp 0x10110362
movss xmm0, dword [ebx + 0x24]
lea esi, [ebx + 0x24]
ucomiss xmm0, dword [esp + 0x9c]
lahf
test ah, 0x44
jp 0x10110362
movss xmm0, dword [ebx + 0x28]
lea edi, [ebx + 0x28]
ucomiss xmm0, dword [esp + 0xa0]
lahf
test ah, 0x44
jnp 0x10110390
movss xmm0, dword [ebx + 0x28]
lea edi, [ebx + 0x28]
xorps xmm1, xmm1
lea esi, [ebx + 0x24]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10110386
movss xmm0, dword [esi]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10110390
movaps xmm0, xmm2
mov ecx, ebx
call fcn.10108260
movss xmm0, dword [ebx + 0xc]
lea eax, [ebx + 0xc]
movss xmm1, dword [0x101ecf2c]
lea ecx, [esp + 0x18]
movss xmm2, dword [0x101ecdfc]
lea edx, [ebx + 0x10]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x43340000
mov dword [esp + 0x18], 0xc3340000
cmovbe ecx, eax
lea eax, [esp + 0x28]
comiss xmm0, xmm2
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [ebx + 0xc], eax
lea eax, [esp + 0x28]
movss xmm0, dword [edx]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x43340000
mov dword [esp + 0x18], 0xc3340000
cmovbe ecx, edx
comiss xmm0, xmm2
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [edx], eax
lea edx, [ebx + 0x14]
movss xmm0, dword [edx]
lea eax, [esp + 0x28]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x43340000
mov dword [esp + 0x18], 0xc3340000
movss xmm1, dword [0x101ecf40]
cmovbe ecx, edx
comiss xmm0, xmm2
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [edx], eax
lea eax, [esp + 0x28]
movss xmm0, dword [esi]
lea edx, [ebx + 0x2c]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x43e10000
mov dword [esp + 0x18], 0xc3e10000
cmovbe ecx, esi
comiss xmm0, dword [0x101ece48]
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [esi], eax
lea eax, [esp + 0x28]
movss xmm0, dword [edi]
comiss xmm1, xmm0
mov dword [esp + 0x28], 0x43e10000
mov dword [esp + 0x18], 0xc3e10000
cmovbe ecx, edi
comiss xmm0, dword [0x101ece48]
movss xmm0, dword [0x101ecf38]
cmovbe eax, ecx
lea ecx, [esp + 0x18]
mov eax, dword [eax]
mov dword [edi], eax
lea eax, [esp + 0x28]
movss xmm1, dword [edx]
comiss xmm0, xmm1
mov dword [esp + 0x28], 0x43a00000
mov dword [esp + 0x18], 0xc3a00000
movq xmm0, qword [ebx + 0xc]
cmovbe ecx, edx
comiss xmm1, dword [0x101ece24]
cmovbe eax, ecx
mov eax, dword [eax]
mov dword [edx], eax
movq qword [0x104eedf0], xmm0
mov eax, dword [ebx + 0x14]
mov dword [0x104eedf8], eax
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
test ecx, ecx
je 0x10110621
test byte [ebx + 0x30], 1
jne 0x10110621
mov eax, dword [ecx]
mov eax, dword [eax + 0x430]
call eax
mov esi, eax
test esi, esi
je 0x10110621
mov ecx, 0x19cdc55d
call fcn.100c3de0
cmp word [eax + esi], 0x40
jne 0x10110621
mov eax, dword [0x10216630]
mov ecx, 0xf412939a
movd xmm1, dword [0x104eee88]
cvtdq2ps xmm1, xmm1
mov byte [0x10218788], 1
mov eax, dword [eax + 0xc]
mulss xmm1, dword [eax + 0x20]
movss dword [esp + 0x24], xmm1
call fcn.100c3de0
mov ecx, dword [0x102187c8]
mov ecx, dword [ecx]
movss xmm0, dword [eax + ecx]
comiss xmm0, xmm1
ja 0x10110621
mov eax, dword [0x10217cb0]
mov ecx, dword [esp + 0x34]
and dword [ebx + 0x30], 0xfffff7ff
movss xmm0, dword [0x101ecaec]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x104eecb8]
cmp eax, dword [ecx + 4]
jle 0x101105dd
push 0x104eecb8
call fcn.1015fec1
add esp, 4
cmp dword [0x104eecb8], 0xffffffff
jne 0x101105cf
movss xmm0, dword [esp + 0x24]
addss xmm0, dword [0x101ecaec]
push 0x104eecb8
movss dword [0x104eead0], xmm0
call fcn.1015fe70
add esp, 4
movss xmm0, dword [0x101ecaec]
movss xmm1, dword [esp + 0x24]
mov ecx, 0xb439d47
call fcn.100c3de0
comiss xmm1, dword [eax + esi]
jb 0x10110615
comiss xmm1, dword [0x104eead0]
jb 0x1011060f
mov ecx, 0x2d0850d3
call fcn.100c3de0
comiss xmm1, dword [eax + esi]
jae 0x10110615
or dword [ebx + 0x30], 0x800
jmp 0x10110621
or dword [ebx + 0x30], 1
jmp 0x10110621
addss xmm1, xmm0
movss dword [0x104eead0], xmm1
mov ecx, ebx
call fcn.100ac690
mov eax, dword [0x102187c8]
mov ecx, dword [eax]
test ecx, ecx
je 0x10110654
mov eax, dword [ecx]
mov eax, dword [eax + 0x270]
call eax
test al, al
je 0x10110654
mov eax, dword [0x10216630]
push dword [esp + 0x74]
push 0
mov eax, dword [eax + 0x180]
call eax
mov eax, dword [ebx + 0x30]
mov ecx, ebx
mov edx, dword [esp + 0x3c]
mov dword [0x104237c4], eax
call fcn.1008d8b0
call fcn.1008e390
mov al, byte [0x102224d6]
pop edi
pop esi
mov byte [0x102224c8], al
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret