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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb8
mov eax, dword [ebp + 8]
mov edx, ecx
push esi
push edi
mov dword [esp + 0xc], edx
mov eax, dword [eax]
mov dword [edx], eax
test eax, eax
je 0x10097d78
inc dword [eax + 4]
mov esi, dword [ebp + 0xc]
lea eax, [edx + 4]
mov edi, eax
mov dword [esp + 0x1c], eax
push 6
lea eax, [edx + 0x1c]
pop ecx
rep movsd dword es:[edi], dword [esi]
xor edi, edi
mov dword [esp + 0x20], eax
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
lea eax, [edx + 0x2c]
mov dword [esp + 0x10], eax
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
lea eax, [edx + 0x3c]
mov ecx, eax
mov dword [esp + 0x44], eax
call fcn.100296b4
mov esi, dword [esp + 0xc]
lea eax, [esi + 0x58]
mov dword [esi + 0x54], edi
mov ecx, eax
mov dword [esp + 0x2c], eax
call fcn.100975fd
mov eax, dword [ebp + 0x10]
lea ecx, [esi + 0x60]
mov dword [esp + 0x40], ecx
mov eax, dword [eax]
mov dword [ecx], eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x5c]
mov dword [esi + 0x64], edi
push eax
lea ecx, [esi + 4]
call fcn.10029af2
mov ecx, eax
call fcn.10029849
cmp dword [ebp + 0x14], 0
lea esi, [esp + 0x48]
lea edi, [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
je 0x10097e1a
push dword [ebp + 0x14]
lea ecx, [esp + 0x34]
call fcn.10029d7f
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], eax
jle 0x10098358
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x3c], eax
jle 0x10098358
mov edi, dword [esp + 0x10]
lea esi, [esp + 0x30]
movsd xmm1, qword [0x101699a0]
movss xmm7, dword [0x1018309c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
movss xmm3, dword [esi]
movss xmm5, dword [edi + 8]
cvtps2pd xmm0, xmm3
movsd qword [esp + 0x10], xmm0
andps xmm0, xmm1
cvtpd2ps xmm4, xmm0
cvtps2pd xmm0, xmm5
andps xmm0, xmm1
cvtpd2ps xmm6, xmm0
movaps xmm0, xmm6
divss xmm0, xmm7
comiss xmm0, xmm4
jbe 0x10097f9d
movss xmm0, dword [edi + 0x10]
cvtps2pd xmm0, xmm0
andps xmm0, xmm1
cvtpd2ps xmm2, xmm0
movss xmm0, dword [edi + 0xc]
cvtps2pd xmm0, xmm0
andps xmm0, xmm1
cvtpd2ps xmm0, xmm0
divss xmm0, xmm7
comiss xmm0, xmm2
jbe 0x10097f9d
movss xmm0, dword [0x10169b44]
comiss xmm0, xmm4
jbe 0x10097f9d
comiss xmm0, xmm2
jbe 0x10097f9d
mov esi, dword [esp + 0x50]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x48]
sub esi, ecx
mov edx, dword [esp + 0x54]
neg ecx
mov eax, dword [esp + 0x4c]
sub edx, eax
add dword [esp + 0x30], ecx
neg eax
add dword [esp + 0x34], eax
add dword [esp + 0x3c], eax
add dword [esp + 0x38], ecx
movss xmm1, dword [edi + 0xc]
comiss xmm0, xmm5
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], edx
seta al
comiss xmm1, xmm0
movzx eax, al
push eax
seta al
movzx eax, al
push eax
push edx
push esi
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.10033f8b
mov ecx, dword [esp + 0x44]
lea edi, [esp + 0x48]
mov esi, eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x48]
push ecx
push eax
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x54]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x34]
push edi
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10060f82
add esp, 0x34
lea ecx, [edi + 0x54]
push eax
call fcn.10061403
cmp dword [esp + 0xc], 0
je 0x10097f89
push dword [esp + 0xc]
lea ecx, [esp + 0x10]
call fcn.10061455
mov ecx, dword [edi + 0x54]
call fcn.1006173e
mov dword [edi + 0x64], 2
jmp 0x1009835c
movss xmm2, dword [0x10183058]
comiss xmm2, xmm6
jbe 0x100980d5
movss xmm0, dword [edi + 0xc]
cvtps2pd xmm0, xmm0
andps xmm0, xmm1
cvtpd2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x100980d5
comiss xmm3, dword [0x10169b3c]
push ecx
push ecx
fld qword [esp + 0x18]
fstp qword [esp]
jbe 0x10097fe9
call fcn.101502b0
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
jmp 0x10097ff8
call fcn.101503d0
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
movss xmm1, dword [edi + 0x10]
comiss xmm1, dword [0x10169b3c]
pop ecx
pop ecx
push ecx
push ecx
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm0
cvtps2pd xmm0, xmm1
mov dword [esp + 0x48], eax
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
jbe 0x10098037
call fcn.101502b0
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
jmp 0x10098046
call fcn.101503d0
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
cvtpd2ps xmm0, xmm0
pop ecx
pop ecx
mov ecx, dword [esp + 0x4c]
neg ecx
add dword [esp + 0x34], ecx
add dword [esp + 0x3c], ecx
lea ecx, [edi + 0x58]
xorps xmm0, xmmword [0x10169b60]
cvttss2si eax, xmm0
mov dword [esp + 0x2c], ecx
lea ecx, [edi + 0x60]
push ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
neg eax
add dword [esp + 0x34], eax
add dword [esp + 0x3c], eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x4c]
push eax
push edi
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.10060f82
add esp, 0x1c
lea ecx, [edi + 0x54]
push eax
call fcn.10061403
cmp dword [esp + 0xc], 0
je 0x100980c1
push dword [esp + 0xc]
lea ecx, [esp + 0x10]
call fcn.10061455
mov ecx, dword [edi + 0x54]
call fcn.1006173e
mov dword [edi + 0x64], 1
jmp 0x1009835c
movaps xmm0, xmm3
movaps xmm1, xmm5
mulss xmm0, xmm3
mulss xmm1, xmm5
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.101501b0
cvtsd2ss xmm0, xmm0
push ecx
push ecx
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
call fcn.101502b0
movss xmm1, dword [edi + 0xc]
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
mulss xmm1, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0x10]
mulss xmm0, xmm0
mov dword [esp + 0x24], eax
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
call fcn.101501b0
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
call fcn.101502b0
movss xmm5, dword [edi + 0xc]
xorps xmm3, xmm3
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
pop ecx
pop ecx
movss xmm7, dword [esi]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x1c]
movss xmm6, dword [edi + 0x10]
movss xmm1, dword [edi + 8]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x10], eax
movd xmm4, eax
cvtdq2ps xmm4, xmm4
divss xmm7, xmm0
divss xmm5, xmm4
divss xmm1, xmm0
divss xmm6, xmm4
movaps xmm0, xmm5
movss dword [esp + 0x18], xmm1
mulss xmm0, xmm3
addss xmm0, xmm7
mulss xmm7, xmm3
movss dword [esp + 0x68], xmm0
movaps xmm0, xmm6
mulss xmm0, xmm3
addss xmm0, xmm1
movaps xmm1, xmm5
mulss xmm1, dword [0x1016997c]
mulss xmm5, xmm4
movss dword [esp + 0x6c], xmm0
movaps xmm0, xmm7
subss xmm0, xmm1
movaps xmm1, xmm6
mulss xmm1, dword [0x1016997c]
addss xmm5, xmm7
mulss xmm6, xmm4
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x18]
addss xmm5, dword [edi + 0x14]
mulss xmm0, xmm3
movss dword [esp + 0x18], xmm0
subss xmm0, xmm1
addss xmm6, dword [esp + 0x18]
movss dword [esp + 0x78], xmm5
movss dword [esp + 0x74], xmm0
addss xmm6, dword [edi + 0x18]
push 6
pop ecx
lea esi, [esp + 0x68]
lea edi, [esp + 0xa8]
movss dword [esp + 0x7c], xmm6
lea eax, [esp + 0x90]
rep movsd dword es:[edi], dword [esi]
push eax
lea ecx, [esp + 0xac]
call fcn.100298ba
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x60]
call fcn.10029676
push eax
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x9c]
call fcn.1002a228
mov ecx, eax
call fcn.10029984
lea ecx, [esp + 0x80]
call fcn.1002a4c1
test al, al
je 0x10098358
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x80]
and dword [esp + 0x58], 0
and dword [esp + 0x5c], 0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x58]
push eax
call fcn.10029d7f
lea ecx, [esp + 0x80]
call fcn.1002a4c1
test al, al
je 0x10098358
mov edi, dword [esp + 0x44]
lea esi, [esp + 0x90]
mov eax, dword [esp + 0x20]
push 6
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x2c]
lea esi, [esp + 0x80]
mov edi, eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x40]
push ecx
push eax
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x28]
push eax
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
push edi
push eax
lea eax, [esp + 0x30]
push eax
call fcn.10060f82
add esp, 0x1c
lea ecx, [edi + 0x54]
push eax
call fcn.10061403
cmp dword [esp + 0x18], 0
je 0x10098347
push dword [esp + 0x18]
lea ecx, [esp + 0x1c]
call fcn.10061455
mov ecx, dword [edi + 0x54]
call fcn.1006173e
mov dword [edi + 0x64], 3
jmp 0x1009835c
mov edi, dword [esp + 0xc]
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10