Function at 0x1000d680
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
mov eax, dword [0x100b6004]
xor eax, esp
mov dword [esp + 0x38], eax
push ebx
push esi
mov esi, ecx
movaps xmm2, xmm1
push edi
movss dword [esp + 0x28], xmm2
mov ebx, dword [esi + 0x6c]
test ebx, ebx
js 0x1000e0ed
mov eax, dword [0x11a5f1d0]
cmp ebx, dword [eax + 0x1c]
jge 0x1000e0ed
mov ecx, dword [esi + 8]
mov ebx, dword [eax + ebx*4 + 0x20]
or ecx, 0x40000000
mov dword [esi + 8], ecx
test ebx, ebx
je 0x1000e0f9
cmp dword [ebx + 0x44], 1
jne 0x1000e0f9
xorps xmm1, xmm1
movaps xmm0, xmm2
addss xmm0, dword [esi + 0x34]
ucomiss xmm2, xmm1
movss dword [esi + 0x34], xmm0
lahf
test ah, 0x44
jnp 0x1000d70d
mov dword [0x100ea0a0], 0
mov dword [0x100ea1a0], 0
mov ecx, dword [esi + 8]
movss xmm0, dword [esi + 0x40]
ucomiss xmm0, xmm1
mov dword [esp + 0x1c], ebx
lahf
test ah, 0x44
jnp 0x1000d7ee
ucomiss xmm2, xmm1
mov dword [esp + 0x1c], ebx
lahf
test ah, 0x44
jnp 0x1000d7ee
test cl, 0x10
je 0x1000d781
xorps xmm0, xmm0
mov dword [esp + 0x1c], ebx
movss dword [esp + 0xc], xmm0
mov edi, 0x100ea0a0
nop dword [eax + eax]
cvtps2pd xmm0, xmm0
call fcn.10098d90
cvtsd2ss xmm0, xmm0
movss dword [edi], xmm0
add edi, 4
movss xmm0, dword [esp + 0xc]
addss xmm0, dword [0x100aa6b8]
movss dword [esp + 0xc], xmm0
cmp edi, 0x100ea1a0
jl 0x1000d750
jmp 0x1000d7ee
sub esp, 8
mov dword [esp + 4], 0x3e000000
mov dword [esp], 0xbe000000
call dword [0x11a5f3e4]
movss xmm0, dword [0x100ea1a0]
add esp, 8
addss xmm0, dword [0x100ea0a0]
fmul dword [0x100aa904]
mov edx, 0x20
mov ecx, 0x100ea120
mulss xmm0, dword [0x100aa6fc]
fstp dword [esp + 0x10]
addss xmm0, dword [esp + 0x10]
movss dword [0x100ea120], xmm0
call fcn.1000a950
mov edx, 0x20
mov ecx, 0x100ea0a0
call fcn.1000a950
mov dword [esp + 0x1c], ebx
mov ebx, dword [esi + 8]
test bl, 3
je 0x1000d9fd
mov ecx, ebx
test bl, 1
je 0x1000d84a
push dword [esi + 0x64]
call dword [0x11a5f388]
mov ecx, dword [esi + 0x64]
lea edx, [esi + 0xc]
add esp, 4
mov edi, eax
call fcn.1000d4e0
test eax, eax
je 0x1000d839
cmp dword [esi + 0x74], 0
jne 0x1000d82d
mov eax, dword [edi + 0xb94]
mov dword [esi + 0x74], eax
or dword [esi + 8], 0x10000000
mov ecx, dword [esi + 8]
jmp 0x1000d848
mov ecx, dword [esi + 8]
mov ebx, ecx
test ecx, ecx
js 0x1000d84a
and ecx, 0xfffffffe
mov dword [esi + 8], ecx
mov ebx, ecx
test cl, 2
je 0x1000d887
push dword [esi + 0x68]
call dword [0x11a5f388]
mov ecx, dword [esi + 0x68]
lea edx, [esi + 0x18]
add esp, 4
mov edi, eax
call fcn.1000d4e0
test eax, eax
je 0x1000d8ae
cmp dword [esi + 0x74], 0
jne 0x1000d87b
mov eax, dword [edi + 0xb94]
mov dword [esi + 0x74], eax
or dword [esi + 8], 0x20000000
mov ebx, dword [esi + 8]
mov ecx, ebx
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x1000d8cf
and ecx, 0xbfffffff
mov dword [esi + 8], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.10048715
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 8]
test ecx, ecx
js 0x1000d893
mov eax, dword [0x11a5f1d0]
and ecx, 0xfffffffd
mov dword [esi + 8], ecx
movsd xmm0, qword [eax]
cvtpd2ps xmm0, xmm0
movss dword [esi + 0x38], xmm0
jmp 0x1000d893
movss xmm2, dword [esi + 0x18]
xorps xmm0, xmm0
movss xmm3, dword [esi + 0x1c]
subss xmm2, dword [esi + 0xc]
subss xmm3, dword [esi + 0x10]
movss xmm4, dword [esi + 0x20]
subss xmm4, dword [esi + 0x14]
movss dword [esp + 0x14], xmm0
movaps xmm0, xmm2
movss dword [esp + 0x10], xmm2
movaps xmm1, xmm3
mulss xmm0, xmm2
mov dword [esi + 0x2c], 0
mulss xmm1, xmm3
mov dword [esi + 0x28], 0
movss dword [esp + 0xc], xmm3
movss dword [esp + 0x18], xmm4
addss xmm1, xmm0
mov dword [esi + 0x24], 0
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1000d94c
sqrtsd xmm0, xmm0
jmp 0x1000d951
call fcn.10098f60
comisd xmm0, xmmword [0x100aa6e0]
jbe 0x1000d97e
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0xc]
movss xmm2, dword [esp + 0x18]
movss dword [esi + 0x24], xmm0
movss dword [esi + 0x28], xmm1
movss dword [esi + 0x2c], xmm2
jmp 0x1000d98a
movss xmm1, dword [esp + 0x14]
movaps xmm0, xmm1
movaps xmm2, xmm0
mulss xmm1, xmm1
mulss xmm0, xmm0
mulss xmm2, xmm2
addss xmm1, xmm0
movss xmm0, dword [esi + 0x40]
comiss xmm0, dword [0x100aa6fc]
addss xmm1, xmm2
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
jb 0x1000d9d5
ucomisd xmm1, xmm0
ja 0x1000d9c6
sqrtsd xmm0, xmm0
mulsd xmm0, qword [0x100aa788]
jmp 0x1000d9ee
call fcn.10098f60
mulsd xmm0, qword [0x100aa788]
jmp 0x1000d9ee
ucomisd xmm1, xmm0
ja 0x1000d9e1
sqrtsd xmm0, xmm0
jmp 0x1000d9e6
call fcn.10098f60
mulsd xmm0, qword [0x100aa750]
addsd xmm0, qword [0x100aa7e8]
cvttsd2si eax, xmm0
mov dword [esi + 0x60], eax
cmp dword [esi + 4], 0
movss xmm0, dword [0x100aa724]
jne 0x1000db7e
mov eax, dword [0x11a07fc4]
test eax, eax
je 0x1000da52
test byte [0x11a07fa0], 8
je 0x1000da46
test dword [eax + 0x2ec], 0x1000000
je 0x1000da52
and dword [esi + 8], 0xbfffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.10048715
mov esp, ebp
pop ebp
ret
test dword [eax + 0x2ec], 0x2000000
jne 0x1000da2d
movss xmm2, dword [esi + 0xc]
movss xmm1, dword [esi + 0x18]
comiss xmm1, xmm2
jbe 0x1000da72
movaps xmm3, xmm2
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x2c], xmm1
jmp 0x1000da84
movaps xmm3, xmm1
movss dword [esp + 0x38], xmm1
movaps xmm1, xmm2
movss dword [esp + 0x2c], xmm2
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x1000da97
addss xmm1, xmm0
movss dword [esp + 0x2c], xmm1
movss xmm2, dword [esi + 0x10]
movss xmm1, dword [esi + 0x1c]
comiss xmm1, xmm2
jbe 0x1000dab7
movaps xmm3, xmm2
movss dword [esp + 0x3c], xmm2
movss dword [esp + 0x30], xmm1
jmp 0x1000dac9
movaps xmm3, xmm1
movss dword [esp + 0x3c], xmm1
movaps xmm1, xmm2
movss dword [esp + 0x30], xmm2
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x1000dadc
addss xmm1, xmm0
movss dword [esp + 0x30], xmm1
movss xmm2, dword [esi + 0x14]
movss xmm1, dword [esi + 0x20]
comiss xmm1, xmm2
jbe 0x1000dafc
movaps xmm3, xmm2
movss dword [esp + 0x40], xmm2
movss dword [esp + 0x34], xmm1
jmp 0x1000db0e
movaps xmm3, xmm1
movss dword [esp + 0x40], xmm1
movaps xmm1, xmm2
movss dword [esp + 0x34], xmm2
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x1000db21
addss xmm1, xmm0
movss dword [esp + 0x34], xmm1
mov eax, dword [0x11a5f4cc]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x1000db3a
cmp dword [0x11a217e8], 0
je 0x1000db3a
call eax
jmp 0x1000db3f
mov eax, 0x11a082a8
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
call dword [0x11a5f398]
add esp, 0xc
test eax, eax
je 0x1000da2d
lea eax, [esp + 0x2c]
mov ecx, 0x11a07fd8
push 0
push eax
lea edx, [esp + 0x40]
call fcn.100148b0
add esp, 8
test eax, eax
jne 0x1000da2d
mov ebx, dword [esi + 8]
test ebx, 0x40000000
je 0x1000e114
movss xmm1, dword [esi + 0x28]
movss xmm2, dword [esi + 0x24]
movss xmm0, dword [esi + 0x2c]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
xorps xmm1, xmm1
addss xmm2, xmm0
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x1000dbbf
sqrtsd xmm0, xmm0
jmp 0x1000dbc4
call fcn.10098f60
movsd xmm1, qword [0x100aa768]
comisd xmm1, xmm0
ja 0x1000e114
test bl, 0xc
je 0x1000dc22
movss xmm1, dword [esi + 0x38]
mov eax, dword [0x11a5f1d0]
movss xmm2, dword [esi + 0x34]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm2
subsd xmm1, qword [eax]
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm1, xmm1
ucomiss xmm1, xmm0
movss dword [esi + 0x30], xmm1
lahf
test ah, 0x44
jnp 0x1000dc22
divss xmm2, xmm1
movss xmm0, dword [0x100aa724]
subss xmm0, xmm2
movss dword [esi + 0x30], xmm0
cmp dword [esi + 4], 0x1a
jne 0x1000de3d
movss xmm0, dword [esi + 0x1c]
subss xmm0, dword [esi + 0x10]
movss xmm2, dword [esi + 0x18]
subss xmm2, dword [esi + 0xc]
movss xmm3, dword [esi + 0x20]
subss xmm3, dword [esi + 0x14]
movaps xmm1, xmm0
movss dword [esp + 0x14], xmm0
mulss xmm1, xmm0
movaps xmm0, xmm2
movss dword [esp + 0x18], xmm2
mulss xmm0, xmm2
movss dword [esp + 0xc], xmm3
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1000dc8b
sqrtsd xmm0, xmm0
jmp 0x1000dc90
call fcn.10098f60
xorps xmm4, xmm4
xorps xmm1, xmm1
cvtsd2ss xmm4, xmm0
ucomiss xmm4, xmm1
lahf
test ah, 0x44
jnp 0x1000dcb2
movss xmm0, dword [0x100aa724]
divss xmm0, xmm4
movaps xmm4, xmm0
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [esp + 0x14]
movss xmm3, dword [esp + 0xc]
mulss xmm0, xmm4
mulss xmm2, xmm4
movss dword [esp + 0x18], xmm0
mulss xmm0, dword [0x11a08080]
movss dword [esp + 0x14], xmm2
mulss xmm2, dword [0x11a08084]
mulss xmm3, xmm4
addss xmm2, xmm0
movaps xmm0, xmm3
movss dword [esp + 0xc], xmm3
mulss xmm0, dword [0x11a08088]
addss xmm2, xmm0
comiss xmm2, xmm1
ja 0x1000e114
movsd xmm1, qword [0x100aa808]
cvtps2pd xmm0, xmm2
call fcn.10098240
movss xmm3, dword [0x11a08068]
movss xmm4, dword [0x11a0806c]
subss xmm4, dword [esi + 0x10]
subss xmm3, dword [esi + 0xc]
movss xmm2, dword [0x11a08070]
subss xmm2, dword [esi + 0x14]
cvtsd2ss xmm0, xmm0
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x14]
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esp + 0x18]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0xc]
addss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x18]
subss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esp + 0x14]
mulss xmm1, dword [esp + 0xc]
subss xmm4, xmm0
mulss xmm3, xmm3
subss xmm2, xmm1
xorps xmm1, xmm1
mulss xmm4, xmm4
mulss xmm2, xmm2
addss xmm4, xmm3
addss xmm4, xmm2
cvtps2pd xmm0, xmm4
ucomisd xmm1, xmm0
ja 0x1000ddbc
sqrtsd xmm0, xmm0
jmp 0x1000ddc1
call fcn.10098f60
movss xmm1, dword [0x100aa8f0]
cvtsd2ss xmm0, xmm0
comiss xmm0, xmm1
jbe 0x1000de1c
movss xmm2, dword [0x100aa724]
subss xmm0, xmm1
mulss xmm0, dword [0x100aa6b0]
subss xmm2, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm2
jae 0x1000e114
movsd xmm1, qword [0x100aa7e8]
cvtps2pd xmm0, xmm2
call fcn.10098240
movss xmm1, dword [esp + 0x10]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
jmp 0x1000de22
movss xmm1, dword [esp + 0x10]
movss xmm0, dword [0x100aa698]
comiss xmm0, xmm1
ja 0x1000e114
mulss xmm1, dword [esi + 0x50]
movss dword [esi + 0x50], xmm1
test bl, 0x20
mov ecx, 0
mov eax, 5
cmovne eax, ecx
push eax
call fcn.1003daa0
movss xmm1, dword [esi + 0x58]
add esp, 4
mov eax, dword [0x11a5f1d0]
movss xmm0, dword [esi + 0x5c]
cvtps2pd xmm1, xmm1
mov ecx, dword [esp + 0x1c]
cvtps2pd xmm0, xmm0
mulsd xmm1, qword [eax]
addsd xmm1, xmm0
cvttsd2si eax, xmm1
cdq
idiv dword [esi + 0x70]
call fcn.1003e060
test eax, eax
je 0x1000da2d
cmp dword [esi + 4], 0x16
jne 0x1000dec6
push dword [esi + 0x64]
call dword [0x11a5f388]
add esp, 4
test eax, eax
je 0x1000dec6
cmp dword [eax + 0x2f8], 0
je 0x1000dec6
mov ecx, eax
call fcn.10024ac0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x100aa924]
movss dword [esi + 0x50], xmm0
mov eax, dword [esi + 8]
movss xmm3, dword [esi + 0x50]
test al, 4
je 0x1000ded9
mulss xmm3, dword [esi + 0x30]
jmp 0x1000deee
test al, 8
je 0x1000deee
movss xmm0, dword [0x100aa724]
subss xmm0, dword [esi + 0x30]
mulss xmm3, xmm0
movss xmm0, dword [esi + 0x44]
movss xmm1, dword [esi + 0x48]
movss xmm2, dword [esi + 0x4c]
call fcn.1003dd10
mov eax, dword [esi + 4]
cmp eax, 0x1a
ja case.0x1000df15.1
movzx eax, byte [eax + 0x1000e144]
jmp dword [eax*4 + 0x1000e128]
push 0xb44
call dword [0x11a5f2b0]
push 5
mov dword [0x11a22ef0], 0
call dword [0x11a5f200]
push dword [esi + 0x60]
movss xmm0, dword [esi + 0x54]
lea ecx, [esi + 0xc]
movss xmm3, dword [esi + 0x40]
lea edx, [esi + 0x24]
movss xmm2, dword [esi + 0x3c]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp], xmm0
call fcn.1000ba40
jmp 0x1000e0ac
push 0xb44
call dword [0x11a5f2b0]
push 5
mov dword [0x11a22ef0], 0
call dword [0x11a5f200]
push dword [esi + 0x60]
movss xmm0, dword [esi + 0x54]
lea ecx, [esi + 0xc]
movss xmm2, dword [esi + 0x3c]
lea edx, [esi + 0x24]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp], xmm0
call fcn.1000bf40
jmp 0x1000e0ac
push 0xb44
call dword [0x11a5f2b0]
push 5
mov dword [0x11a22ef0], 0
call dword [0x11a5f200]
push dword [esi + 0x60]
movss xmm0, dword [esi + 0x54]
lea ecx, [esi + 0xc]
movss xmm2, dword [esi + 0x3c]
lea edx, [esi + 0x24]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp], xmm0
call fcn.1000c220
jmp 0x1000e0ac
push 5
call dword [0x11a5f200]
push dword [esi + 8]
movss xmm0, dword [esi + 0x54]
lea ecx, [esi + 0xc]
push dword [esi + 0x60]
movss xmm3, dword [esi + 0x40]
lea edx, [esi + 0x24]
movss xmm2, dword [esi + 0x3c]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp], xmm0
call fcn.1000ae60
add esp, 0x10
jmp 0x1000e0af
push 7
call dword [0x11a5f200]
movss xmm1, dword [esp + 0x28]
mov ecx, esi
call fcn.1000c510
jmp 0x1000e0af
push 0xb44
call dword [0x11a5f2b0]
push 5
mov dword [0x11a22ef0], 0
call dword [0x11a5f200]
push dword [esi + 0x60]
movss xmm0, dword [esi + 0x54]
lea ecx, [esi + 0xc]
movss xmm3, dword [esi + 0x40]
lea edx, [esi + 0x24]
movss xmm2, dword [esi + 0x3c]
sub esp, 8
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x34]
movss dword [esp], xmm0
call fcn.1000cc60
add esp, 0xc
call dword [0x11a5f214]
push 0xb44
call dword [0x11a5f21c]
push 0x404
call dword [0x11a5f1b0]
inc dword [0x11a5f8f4]
mov dword [0x11a22ef0], 0x404
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.10048715
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 8]
or ecx, 0x40000000
mov dword [esi + 8], ecx
mov eax, dword [0x11a5f1d0]
and ecx, 0xbfffffff
mov dword [esi + 8], ecx
movsd xmm0, qword [eax]
cvtpd2ps xmm0, xmm0
movss dword [esi + 0x38], xmm0
mov ecx, dword [esp + 0x44]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10048715
mov esp, ebp
pop ebp
ret