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

Disassembly:
fld dword [0x100ecb9c]
sub esp, 0x5c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x6c]
fld dword [esi + 0xc]
push edi
fucompp
mov ebp, ecx
fnstsw ax
test ah, 0x44
jp 0x1004834a
fld dword [0x100ecb9c]
fld dword [esi + 0x14]
fucompp
fnstsw ax
test ah, 0x44
jp 0x1004834a
mov al, byte [esp + 0x84]
test al, al
jne 0x100482a8
fld dword [esi + 0x10]
fcomp dword [0x100ecb9c]
fnstsw ax
test ah, 1
je 0x1004875c
mov al, byte [esp + 0x80]
test al, al
jne 0x100482c7
fld dword [esi + 0x10]
fcomp dword [0x100ecb9c]
fnstsw ax
test ah, 0x41
jnp 0x1004875c
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov dword [esp + 0x70], eax
mov al, byte [esp + 0x7c]
test al, al
mov edi, dword [esp + 0x70]
mov dword [esp + 0x10], ecx
mov ebx, ecx
jne 0x100482f3
push ebx
push edi
mov ecx, ebp
call fcn.10009150
test al, al
je 0x1004875c
push ebx
push edi
mov ecx, ebp
call fcn.10047cd0
fstp dword [esp + 0x7c]
mov al, byte [esp + 0x84]
test al, al
jne 0x1004831d
fld dword [esi + 4]
fcomp dword [esp + 0x7c]
fnstsw ax
test ah, 5
jnp 0x1004875c
mov al, byte [esp + 0x80]
test al, al
jne 0x1004878f
fld dword [esi + 4]
fcomp dword [esp + 0x7c]
fnstsw ax
test ah, 0x41
jne 0x1004878f
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x5c
ret 0x18
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x28]
push eax
mov ecx, ebp
call fcn.10047270
push eax
push esi
call dword [sym.imp.OgreMain.dll_public:_static_bool___cdecl_Ogre::Math::intersects_class_Ogre::Ray_const___class_Ogre::AxisAlignedBox_const___float___float__]
add esp, 0x10
test al, al
je 0x1004875c
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x58]
push edx
mov ecx, esi
call dword [sym.imp.OgreMain.dll_public:_class_Ogre::Vector3___thiscall_Ogre::Ray::getPoint_float_]
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x64]
push ecx
mov ecx, esi
call dword [sym.imp.OgreMain.dll_public:_class_Ogre::Vector3___thiscall_Ogre::Ray::getPoint_float_]
fld dword [ebp + 0x14]
fmul dword [esi + 0xc]
fstp dword [esp + 0x18]
mov edx, dword [esp + 0x18]
fld dword [ebp + 0xc]
push edx
fmul dword [esi + 0x14]
fstp dword [esp + 0x14]
call dword [sym.imp.OgreMain.dll_public:_static_float___cdecl_Ogre::Math::Abs_float_]
mov eax, dword [esp + 0x14]
fstp dword [esp + 0x80]
push eax
call dword [sym.imp.OgreMain.dll_public:_static_float___cdecl_Ogre::Math::Abs_float_]
fcomp dword [esp + 0x84]
add esp, 8
fnstsw ax
test ah, 0x41
jne 0x100485a6
fld dword [esi + 0x14]
fcomp dword [0x100ecb9c]
fnstsw ax
test ah, 0x41
jne 0x100483f3
mov edi, 1
mov dword [esp + 0x7c], edi
jmp 0x100483ff
mov dword [esp + 0x7c], 0xffffffff
mov edi, dword [esp + 0x7c]
fld dword [esp + 0x5c]
lea ecx, [esp + 0x20]
fsub dword [ebp + 0x20]
push ecx
fmul dword [ebp + 0x2c]
fstp dword [esp + 0x24]
call fcn.10046670
fld dword [esp + 0x6c]
mov esi, eax
fsub dword [ebp + 0x20]
lea edx, [esp + 0x30]
sub esi, edi
push edx
fmul dword [ebp + 0x2c]
mov dword [esp + 0x38], esi
fstp dword [esp + 0x34]
call fcn.10046670
fld dword [esp + 0x20]
add eax, edi
fdiv dword [esp + 0x18]
add esp, 8
cmp esi, eax
mov dword [esp + 0x38], eax
fild dword [esp + 0x7c]
fmul st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x54]
fsub dword [ebp + 0x18]
fmul dword [ebp + 0x24]
fild dword [esp + 0x30]
fsubr dword [esp + 0x20]
mov dword [esp + 0x20], esi
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x10]
fstp st(0)
je 0x1004875c
lea ebx, [ebx]
mov eax, dword [esp + 0x10]
mov ebx, eax
and eax, 0x7fffffff
mov edx, eax
sar edx, 0x17
sub edx, 0x7f
mov dword [esp + 0x30], eax
or eax, 0xff800000
shl eax, 8
mov ecx, 0x1f
sub ecx, edx
sar ebx, 0x1f
mov esi, 1
shl esi, cl
mov ecx, dword [esp + 0x30]
mov edi, edx
sar edi, 0x1f
dec esi
and esi, eax
neg esi
sbb esi, esi
inc esi
dec ecx
sar ecx, 0x1f
not edi
xor ecx, edi
and esi, ecx
mov ecx, 0x1f
sub ecx, edx
mov edx, dword [esp + 0x84]
shr eax, cl
push edx
and esi, ebx
lea ecx, [esp + 0x40]
and eax, edi
mov edi, dword [esp + 0x74]
xor eax, ebx
mov ebx, dword [esp + 0x24]
add esi, eax
mov eax, dword [esp + 0x84]
push eax
push ebx
push esi
push edi
push ecx
mov ecx, ebp
call fcn.10048060
mov ecx, dword [eax]
test cl, cl
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
jne 0x1004876c
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
push eax
push ecx
push ebx
lea edx, [esi - 1]
push edx
push edi
lea eax, [esp + 0x2c]
push eax
mov ecx, ebp
call fcn.10048060
mov ecx, dword [eax]
test cl, cl
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
jne 0x1004876c
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
push eax
push ecx
push ebx
inc esi
push esi
push edi
lea edx, [esp + 0x60]
push edx
mov ecx, ebp
call fcn.10048060
mov ecx, dword [eax]
test cl, cl
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
jne 0x1004876c
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x7c]
fadd dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
add ebx, ecx
cmp ebx, eax
fstp dword [esp + 0x10]
mov dword [esp + 0x20], ebx
jne 0x10048480
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x5c
ret 0x18
fld dword [esi + 0xc]
fcomp dword [0x100ecb9c]
fnstsw ax
test ah, 0x41
jne 0x100485c1
mov edi, 1
mov dword [esp + 0x7c], edi
jmp 0x100485cd
mov dword [esp + 0x7c], 0xffffffff
mov edi, dword [esp + 0x7c]
fld dword [esp + 0x54]
lea ecx, [esp + 0x20]
fsub dword [ebp + 0x18]
push ecx
fmul dword [ebp + 0x24]
fstp dword [esp + 0x24]
call fcn.10046670
fld dword [esp + 0x64]
mov esi, eax
fsub dword [ebp + 0x18]
lea edx, [esp + 0x3c]
sub esi, edi
push edx
fmul dword [ebp + 0x24]
mov dword [esp + 0x38], esi
fstp dword [esp + 0x40]
call fcn.10046670
fld dword [esp + 0x18]
add eax, edi
fdiv dword [esp + 0x20]
add esp, 8
cmp esi, eax
mov dword [esp + 0x3c], eax
fild dword [esp + 0x7c]
fmul st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x5c]
fsub dword [ebp + 0x20]
fmul dword [ebp + 0x2c]
fild dword [esp + 0x30]
fsubr dword [esp + 0x20]
mov dword [esp + 0x20], esi
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x18]
fstp st(0)
je 0x1004875c
jmp 0x10048650
mov eax, dword [esp + 0x18]
mov ebx, eax
and eax, 0x7fffffff
mov edx, eax
sar edx, 0x17
sub edx, 0x7f
mov dword [esp + 0x38], eax
or eax, 0xff800000
shl eax, 8
mov ecx, 0x1f
sub ecx, edx
sar ebx, 0x1f
mov esi, 1
shl esi, cl
mov ecx, dword [esp + 0x38]
mov edi, edx
sar edi, 0x1f
dec esi
and esi, eax
neg esi
sbb esi, esi
inc esi
dec ecx
sar ecx, 0x1f
not edi
xor ecx, edi
and esi, ecx
mov ecx, 0x1f
sub ecx, edx
mov edx, dword [esp + 0x84]
shr eax, cl
push edx
and esi, ebx
lea ecx, [esp + 0x50]
and eax, edi
mov edi, dword [esp + 0x24]
xor eax, ebx
mov ebx, dword [esp + 0x84]
push ebx
add esi, eax
mov eax, dword [esp + 0x78]
push esi
push edi
push eax
push ecx
mov ecx, ebp
call fcn.10048060
mov ecx, dword [eax]
test cl, cl
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
jne 0x10048768
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x70]
push eax
push ebx
lea ecx, [esi - 1]
push ecx
push edi
push edx
lea eax, [esp + 0x44]
push eax
mov ecx, ebp
call fcn.10048060
mov ecx, dword [eax]
test cl, cl
mov edx, dword [eax + 4]
mov dword [esp + 0x48], edx
jne 0x10048768
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x70]
push eax
push ebx
inc esi
push esi
push edi
push ecx
lea edx, [esp + 0x24]
push edx
mov ecx, ebp
call fcn.10048060
mov ecx, dword [eax]
test cl, cl
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
jne 0x10048768
fld dword [esp + 0x18]
mov ecx, dword [esp + 0x7c]
fadd dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
add edi, ecx
cmp edi, eax
fstp dword [esp + 0x18]
mov dword [esp + 0x20], edi
jne 0x10048650
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x5c
ret 0x18
mov edi, dword [esp + 0x70]
fld dword [esp + 0x48]
fmul dword [edi + 0xc]
fadd dword [edi]
fstp dword [esp + 0x70]
fld dword [esp + 0x48]
fmul dword [edi + 0x14]
fadd dword [edi + 8]
mov edi, dword [esp + 0x70]
fstp dword [esp + 0x10]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x78]
test eax, eax
je 0x100487b2
mov ecx, dword [esp + 0x74]
push eax
push ecx
push ebx
push edi
mov ecx, ebp
call fcn.10047f50
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x5c
ret 0x18
push ebx
push edi
mov ecx, ebp
call fcn.10047cd0
fld dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x10]
fstp dword [eax]
pop edi
pop esi
fstp dword [eax + 4]
pop ebp
mov dword [eax + 8], edx
mov al, 1
pop ebx
add esp, 0x5c
ret 0x18