TITLE aigame.cpp .386P include listing.inc if @Version gt 510 .model FLAT else _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' _DATA ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS _TLS SEGMENT DWORD USE32 PUBLIC 'TLS' _TLS ENDS ; COMDAT ?vm_MakeZero@@YAXPAUvector@@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?vm_MakeZero@@YAXPAUangvec@@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??H@YA?AUvector@@U0@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??Y@YA?AUvector@@AAU0@U0@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??H@YA?AUmatrix@@U0@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??G@YA?AUvector@@U0@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??Z@YA?AUvector@@AAU0@U0@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??G@YA?AUmatrix@@U0@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??D@YAMUvector@@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??D@YA?AUvector@@U0@M@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??X@YA?AUvector@@AAU0@M@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??D@YA?AUvector@@MU0@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??D@YA?AUmatrix@@MU0@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??D@YA?AUmatrix@@U0@M@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??K@YA?AUvector@@U0@M@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_0@YA?AUvector@@AAU0@M@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??K@YA?AUmatrix@@U0@M@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??T@YA?AUvector@@U0@0@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??G@YA?AUvector@@U0@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Pest@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Stinger@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0SuperThief@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Humonculous@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Dragon@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Tracker@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Lance@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Flak@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Seeker@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0SuperTrooper@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Sparky@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Hellion@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0MantaRay@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Skiff@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0SpyHunter@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Sniper@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0SniperNoRun@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0EvaderModA@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Jugg@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0DTower@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0DCollector@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0CBall@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0SixGun@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Sickle@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0BettyBomb@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0BettyScript@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0ChaffScript@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0ChaffChunkScript@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0ProxMine@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Gunboy@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0GBPowerup@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0JoshBell@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0ExplodeOnContact@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0DestroyOnContact@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0GuideBot@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Thief@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0FireAtDist@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0HatePTMC@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0Tubbs@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0BarnSwallow@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??0ExplodeTimeOut@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GPest@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GStinger@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GDragon@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GTracker@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GLance@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GFlak@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSuperTrooper@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GJugg@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSixGun@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSickle@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GGuideBot@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GFireAtDist@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GTubbs@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GThief@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GGBPowerup@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GBarnSwallow@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSparky@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GMantaRay@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSpyHunter@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSniper@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GHumonculous@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSeeker@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GBettyScript@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GChaffScript@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GChaffChunkScript@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GProxMine@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GBettyBomb@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GJoshBell@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSkiff@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GExplodeOnContact@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GExplodeTimeOut@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GGunboy@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GDTower@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GDCollector@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GCBall@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GHellion@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSuperThief@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GEvaderModA@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GDestroyOnContact@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GHatePTMC@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_GSniperNoRun@@QAEPAXI@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Pest@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Stinger@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Dragon@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Tracker@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Lance@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Flak@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1SuperTrooper@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Jugg@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1SixGun@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Sickle@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1GuideBot@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1FireAtDist@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Tubbs@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Thief@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1GBPowerup@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1BarnSwallow@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Sparky@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1MantaRay@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1SpyHunter@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Sniper@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Humonculous@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Seeker@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1BettyScript@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1ChaffScript@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1ChaffChunkScript@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1ProxMine@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1BettyBomb@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1JoshBell@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Skiff@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1ExplodeOnContact@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1ExplodeTimeOut@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Gunboy@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1DTower@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1DCollector@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1CBall@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1Hellion@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1SuperThief@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1EvaderModA@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1DestroyOnContact@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1HatePTMC@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??1SniperNoRun@@QAE@XZ _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ?IsGoalFinishedNotify@@YA_NH@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT ??_7BarnSwallow@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7ExplodeTimeOut@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7GBPowerup@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Hellion@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7BettyBomb@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7MantaRay@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7BettyScript@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7SpyHunter@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Gunboy@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Humonculous@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7SuperThief@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Sparky@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7SniperNoRun@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7SixGun@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Lance@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Pest@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7ExplodeOnContact@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7JoshBell@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Stinger@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7ProxMine@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7GuideBot@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Skiff@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Flak@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Sickle@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7DCollector@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7HatePTMC@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Tubbs@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Seeker@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Dragon@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7BaseObjScript@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7ChaffChunkScript@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7EvaderModA@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7CBall@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7FireAtDist@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Tracker@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Jugg@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7DestroyOnContact@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7DTower@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7ChaffScript@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7SuperTrooper@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Sniper@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ??_7Thief@@6B@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS FLAT GROUP _DATA, CONST, _BSS ASSUME CS: FLAT, DS: FLAT, SS: FLAT endif PUBLIC ?Obj_GetTimeLived@@3P6AMH@ZA ; Obj_GetTimeLived PUBLIC ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGunPos PUBLIC ?Obj_GetGroundPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGroundPos PUBLIC ?Room_Value@@3P6AXHDDPAXH@ZA ; Room_Value PUBLIC ?Room_IsValid@@3P6AEH@ZA ; Room_IsValid PUBLIC ?Obj_GetAttachParent@@3P6AHH@ZA ; Obj_GetAttachParent PUBLIC ?Obj_GetNumAttachSlots@@3P6AHH@ZA ; Obj_GetNumAttachSlots PUBLIC ?Obj_GetAttachChildHandle@@3P6AHHD@ZA ; Obj_GetAttachChildHandle PUBLIC ?Obj_AttachObjectAP@@3P6AHHDHDE@ZA ; Obj_AttachObjectAP PUBLIC ?Obj_AttachObjectRad@@3P6AHHDHM@ZA ; Obj_AttachObjectRad PUBLIC ?Obj_UnattachFromParent@@3P6AXH@ZA ; Obj_UnattachFromParent PUBLIC ?sincos_table@@3PAMA ; sincos_table PUBLIC ?asin_table@@3PAGA ; asin_table PUBLIC ?acos_table@@3PAGA ; acos_table PUBLIC ?Obj_UnattachChild@@3P6AXHD@ZA ; Obj_UnattachChild PUBLIC ?Obj_UnattachChildren@@3P6AXH@ZA ; Obj_UnattachChildren PUBLIC ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast PUBLIC ?AI_GetPathID@@3P6AHPAD@ZA ; AI_GetPathID PUBLIC ?AI_GoalFollowPathSimple@@3P6AHHHHHH@ZA ; AI_GoalFollowPathSimple PUBLIC ?AI_PowerSwitch@@3P6AHHE@ZA ; AI_PowerSwitch PUBLIC ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value PUBLIC ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value PUBLIC ?Matcen_Value@@3P6AXHDDPAXH@ZA ; Matcen_Value PUBLIC ?AI_TurnTowardsVectors@@3P6AEHPAUvector@@0@ZA ; AI_TurnTowardsVectors PUBLIC ?AI_SetType@@3P6AXHH@ZA ; AI_SetType PUBLIC ?AI_FindHidePos@@3P6A?AUvector@@HHMPAH@ZA ; AI_FindHidePos PUBLIC ?AI_GoalAddEnabler@@3P6AHHHHMMPAX@ZA ; AI_GoalAddEnabler PUBLIC ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal PUBLIC ?AI_ClearGoal@@3P6AXHH@ZA ; AI_ClearGoal PUBLIC ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType PUBLIC ?AI_GetRoomPathPoint@@3P6A?AUvector@@H@ZA ; AI_GetRoomPathPoint PUBLIC ?AI_FindEnergyCenter@@3P6AHH@ZA ; AI_FindEnergyCenter PUBLIC ?AI_GetDistToObj@@3P6AMHH@ZA ; AI_GetDistToObj PUBLIC ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags PUBLIC ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist PUBLIC ?File_ReadBytes@@3P6AHPAEHPAX@ZA ; File_ReadBytes PUBLIC ?File_ReadInt@@3P6AHPAX@ZA ; File_ReadInt PUBLIC ?File_ReadShort@@3P6AFPAX@ZA ; File_ReadShort PUBLIC ?File_ReadByte@@3P6ACPAX@ZA ; File_ReadByte PUBLIC ?File_ReadFloat@@3P6AMPAX@ZA ; File_ReadFloat PUBLIC ?File_ReadDouble@@3P6ANPAX@ZA ; File_ReadDouble PUBLIC ?File_ReadString@@3P6AHPADIPAX@ZA ; File_ReadString PUBLIC ?File_WriteBytes@@3P6AHPBEHPAX@ZA ; File_WriteBytes PUBLIC ?File_WriteString@@3P6AHPBDPAX@ZA ; File_WriteString PUBLIC ?File_WriteInt@@3P6AXHPAX@ZA ; File_WriteInt PUBLIC ?File_WriteShort@@3P6AXFPAX@ZA ; File_WriteShort PUBLIC ?File_WriteByte@@3P6AXCPAX@ZA ; File_WriteByte PUBLIC ?File_WriteFloat@@3P6AXMPAX@ZA ; File_WriteFloat PUBLIC ?File_WriteDouble@@3P6AXNPAX@ZA ; File_WriteDouble PUBLIC ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc PUBLIC ?gb_command_text@@3PAHA ; gb_command_text PUBLIC ?gb_pow_text@@3PAHA ; gb_pow_text PUBLIC ?Scrpt_MemFree@@3P6AXPAX@ZA ; Scrpt_MemFree PUBLIC ?gb_pow_not_text@@3PAHA ; gb_pow_not_text PUBLIC ?gb_pow_pickup_text@@3PAHA ; gb_pow_pickup_text PUBLIC ?Scrpt_CancelTimer@@3P6AXH@ZA ; Scrpt_CancelTimer PUBLIC ?Scrpt_CreateTimer@@3P6AHPAUtOSIRISTIMER@@@ZA ; Scrpt_CreateTimer PUBLIC ?MSafe_DoPowerup@@3P6AXPAUmsafe_struct@@@ZA ; MSafe_DoPowerup PUBLIC ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create PUBLIC ?Game_GetTime@@3P6AMXZA ; Game_GetTime PUBLIC ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime PUBLIC ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue PUBLIC ?Scrpt_TimerExists@@3P6AEH@ZA ; Scrpt_TimerExists PUBLIC ?Matcen_Reset@@3P6AXH@ZA ; Matcen_Reset PUBLIC ?Matcen_Copy@@3P6AXHH@ZA ; Matcen_Copy PUBLIC ?Matcen_Create@@3P6AHPAD@ZA ; Matcen_Create PUBLIC ?Matcen_FindID@@3P6AHPAD@ZA ; Matcen_FindID PUBLIC ?Msn_FlagSet@@3P6AXHE@ZA ; Msn_FlagSet PUBLIC ?Msn_FlagGet@@3P6AHH@ZA ; Msn_FlagGet PUBLIC ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value PUBLIC ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim PUBLIC ?Player_AddHudMessage@@3P6AXHPAD@ZA ; Player_AddHudMessage PUBLIC ?Obj_Ghost@@3P6AXH_N@ZA ; Obj_Ghost PUBLIC ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning PUBLIC ?Obj_IsEffect@@3P6A_NHH@ZA ; Obj_IsEffect PUBLIC ?File_Open@@3P6APAXPBD0@ZA ; File_Open PUBLIC ?File_Close@@3P6AXPAX@ZA ; File_Close PUBLIC ?File_Tell@@3P6AHPAX@ZA ; File_Tell PUBLIC ?File_eof@@3P6AEPAX@ZA ; File_eof PUBLIC ?Sound_Stop@@3P6AXH_N@ZA ; Sound_Stop PUBLIC ?Sound_Play2d@@3P6AHHHM@ZA ; Sound_Play2d PUBLIC ?ThiefableItems@@3PAUtThiefItems@@A ; ThiefableItems PUBLIC ?numThiefableItems@@3HA ; numThiefableItems PUBLIC ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d PUBLIC ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId PUBLIC ?AI_IsObjFriend@@3P6A_NHH@ZA ; AI_IsObjFriend PUBLIC ?AI_IsObjEnemy@@3P6A_NHH@ZA ; AI_IsObjEnemy PUBLIC ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue PUBLIC ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs PUBLIC ?AI_GetCurGoalIndex@@3P6ADH@ZA ; AI_GetCurGoalIndex PUBLIC ?OMMS_Malloc@@3P6AHIIPAD@ZA ; OMMS_Malloc PUBLIC ?OMMS_Attach@@3P6APAXH@ZA ; OMMS_Attach PUBLIC ?OMMS_Detach@@3P6AXH@ZA ; OMMS_Detach PUBLIC ?OMMS_Free@@3P6AXH@ZA ; OMMS_Free PUBLIC ?OMMS_Find@@3P6AHIPAD@ZA ; OMMS_Find PUBLIC ?OMMS_GetInfo@@3P6ADHPAI0PAGPAE@ZA ; OMMS_GetInfo PUBLIC ?Cine_Start@@3P6A_NPAUtGameCinematic@@PAD@ZA ; Cine_Start PUBLIC ?Cine_Stop@@3P6AXXZA ; Cine_Stop PUBLIC ?Scrpt_FindSoundName@@3P6AHPAD@ZA ; Scrpt_FindSoundName PUBLIC ?Scrpt_FindRoomName@@3P6AHPAD@ZA ; Scrpt_FindRoomName PUBLIC ?Scrpt_FindTriggerName@@3P6AHPAD@ZA ; Scrpt_FindTriggerName PUBLIC ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName PUBLIC ?Scrpt_GetTriggerRoom@@3P6AHH@ZA ; Scrpt_GetTriggerRoom PUBLIC ?Scrpt_GetTriggerFace@@3P6AHH@ZA ; Scrpt_GetTriggerFace PUBLIC ?Scrpt_FindDoorName@@3P6AHPAD@ZA ; Scrpt_FindDoorName PUBLIC ?Scrpt_FindTextureName@@3P6AHPAD@ZA ; Scrpt_FindTextureName PUBLIC ?Game_CreateRandomSparks@@3P6AXHPAUvector@@HHM@ZA ; Game_CreateRandomSparks PUBLIC ?Scrpt_CancelTimerID@@3P6AXH@ZA ; Scrpt_CancelTimerID PUBLIC ?Game_EnableShip@@3P6AXPAD_N@ZA ; Game_EnableShip PUBLIC ?Game_IsShipEnabled@@3P6A_NPAD@ZA ; Game_IsShipEnabled PUBLIC ?Path_GetInformation@@3P6A_NHHPAUvector@@PAHPAUmatrix@@@ZA ; Path_GetInformation PUBLIC ?SuperThiefableItems@@3PAUtSuperThiefItems@@A ; SuperThiefableItems PUBLIC ?Cine_StartCanned@@3P6AXPAUtCannedCinematicInfo@@@ZA ; Cine_StartCanned PUBLIC ?Scrpt_FindMatcenName@@3P6AHPAD@ZA ; Scrpt_FindMatcenName PUBLIC ?Scrpt_FindPathName@@3P6AHPAD@ZA ; Scrpt_FindPathName PUBLIC ?Scrpt_FindLevelGoalName@@3P6AHPAD@ZA ; Scrpt_FindLevelGoalName PUBLIC ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value PUBLIC ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA ; Obj_MakeListOfType PUBLIC ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill PUBLIC ?AI_IsDestReachable@@3P6A_NHH@ZA ; AI_IsDestReachable PUBLIC ?numSuperThiefableItems@@3HA ; numSuperThiefableItems PUBLIC ?AI_IsObjReachable@@3P6A_NHH@ZA ; AI_IsObjReachable PUBLIC ?Game_GetDiffLevel@@3P6ADXZA ; Game_GetDiffLevel PUBLIC ?Game_GetLanguage@@3P6AHXZA ; Game_GetLanguage PUBLIC ?Path_Value@@3P6AXHHDHPAX@ZA ; Path_Value PUBLIC ?String_table_size@@3HA ; String_table_size PUBLIC ?String_table@@3PAPADA ; String_table PUBLIC ?ScriptInfo@@3PAUtScriptInfo@@A ; ScriptInfo PUBLIC ?aigame_mod_id@@3HA ; aigame_mod_id PUBLIC ?mprintf@@3P6AXHPADZZA ; mprintf PUBLIC ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction PUBLIC ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue PUBLIC ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Obj_CallEvent PUBLIC ?Trgr_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Trgr_CallEvent PUBLIC ?Sound_TouchFile@@3P6AXPAD@ZA ; Sound_TouchFile PUBLIC ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID PUBLIC ?Obj_FindType@@3P6AHPAD@ZA ; Obj_FindType PUBLIC ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID _BSS SEGMENT ?Obj_GetTimeLived@@3P6AMH@ZA DD 01H DUP (?) ; Obj_GetTimeLived ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA DD 01H DUP (?) ; Obj_GetGunPos ?Obj_GetGroundPos@@3P6AXHHPAUvector@@0@ZA DD 01H DUP (?) ; Obj_GetGroundPos ?Room_Value@@3P6AXHDDPAXH@ZA DD 01H DUP (?) ; Room_Value ?Room_IsValid@@3P6AEH@ZA DD 01H DUP (?) ; Room_IsValid ?Obj_GetAttachParent@@3P6AHH@ZA DD 01H DUP (?) ; Obj_GetAttachParent ?Obj_GetNumAttachSlots@@3P6AHH@ZA DD 01H DUP (?) ; Obj_GetNumAttachSlots ?Obj_GetAttachChildHandle@@3P6AHHD@ZA DD 01H DUP (?) ; Obj_GetAttachChildHandle ?Obj_AttachObjectAP@@3P6AHHDHDE@ZA DD 01H DUP (?) ; Obj_AttachObjectAP ?Obj_AttachObjectRad@@3P6AHHDHM@ZA DD 01H DUP (?) ; Obj_AttachObjectRad ?Obj_UnattachFromParent@@3P6AXH@ZA DD 01H DUP (?) ; Obj_UnattachFromParent ?sincos_table@@3PAMA DD 0141H DUP (?) ; sincos_table ?asin_table@@3PAGA DW 0101H DUP (?) ; asin_table ALIGN 4 ?acos_table@@3PAGA DW 0101H DUP (?) ; acos_table ALIGN 4 ?Obj_UnattachChild@@3P6AXHD@ZA DD 01H DUP (?) ; Obj_UnattachChild ?Obj_UnattachChildren@@3P6AXH@ZA DD 01H DUP (?) ; Obj_UnattachChildren ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA DD 01H DUP (?) ; FVI_RayCast ?AI_GetPathID@@3P6AHPAD@ZA DD 01H DUP (?) ; AI_GetPathID ?AI_GoalFollowPathSimple@@3P6AHHHHHH@ZA DD 01H DUP (?) ; AI_GoalFollowPathSimple ?AI_PowerSwitch@@3P6AHHE@ZA DD 01H DUP (?) ; AI_PowerSwitch ?AI_Value@@3P6AXHDDPAX@ZA DD 01H DUP (?) ; AI_Value ?Obj_Value@@3P6AXHDDPAXH@ZA DD 01H DUP (?) ; Obj_Value ?Matcen_Value@@3P6AXHDDPAXH@ZA DD 01H DUP (?) ; Matcen_Value ?AI_TurnTowardsVectors@@3P6AEHPAUvector@@0@ZA DD 01H DUP (?) ; AI_TurnTowardsVectors ?AI_SetType@@3P6AXHH@ZA DD 01H DUP (?) ; AI_SetType ?AI_FindHidePos@@3P6A?AUvector@@HHMPAH@ZA DD 01H DUP (?) ; AI_FindHidePos ?AI_GoalAddEnabler@@3P6AHHHHMMPAX@ZA DD 01H DUP (?) ; AI_GoalAddEnabler ?AI_AddGoal@@3P6AMHHHMHHZZA DD 01H DUP (?) ; AI_AddGoal ?AI_ClearGoal@@3P6AXHH@ZA DD 01H DUP (?) ; AI_ClearGoal ?AI_FindObjOfType@@3P6AHHHH_NH@ZA DD 01H DUP (?) ; AI_FindObjOfType ?AI_GetRoomPathPoint@@3P6A?AUvector@@H@ZA DD 01H DUP (?) ; AI_GetRoomPathPoint ?AI_FindEnergyCenter@@3P6AHH@ZA DD 01H DUP (?) ; AI_FindEnergyCenter ?AI_GetDistToObj@@3P6AMHH@ZA DD 01H DUP (?) ; AI_GetDistToObj ?AI_SetGoalFlags@@3P6AHHHHE@ZA DD 01H DUP (?) ; AI_SetGoalFlags ?AI_SetGoalCircleDist@@3P6AXHHM@ZA DD 01H DUP (?) ; AI_SetGoalCircleDist ?File_ReadBytes@@3P6AHPAEHPAX@ZA DD 01H DUP (?) ; File_ReadBytes ?File_ReadInt@@3P6AHPAX@ZA DD 01H DUP (?) ; File_ReadInt ?File_ReadShort@@3P6AFPAX@ZA DD 01H DUP (?) ; File_ReadShort ?File_ReadByte@@3P6ACPAX@ZA DD 01H DUP (?) ; File_ReadByte ?File_ReadFloat@@3P6AMPAX@ZA DD 01H DUP (?) ; File_ReadFloat ?File_ReadDouble@@3P6ANPAX@ZA DD 01H DUP (?) ; File_ReadDouble ?File_ReadString@@3P6AHPADIPAX@ZA DD 01H DUP (?) ; File_ReadString ?File_WriteBytes@@3P6AHPBEHPAX@ZA DD 01H DUP (?) ; File_WriteBytes ?File_WriteString@@3P6AHPBDPAX@ZA DD 01H DUP (?) ; File_WriteString ?File_WriteInt@@3P6AXHPAX@ZA DD 01H DUP (?) ; File_WriteInt ?File_WriteShort@@3P6AXFPAX@ZA DD 01H DUP (?) ; File_WriteShort ?File_WriteByte@@3P6AXCPAX@ZA DD 01H DUP (?) ; File_WriteByte ?File_WriteFloat@@3P6AXMPAX@ZA DD 01H DUP (?) ; File_WriteFloat ?File_WriteDouble@@3P6AXNPAX@ZA DD 01H DUP (?) ; File_WriteDouble ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA DD 01H DUP (?) ; Scrpt_MemAlloc ?Scrpt_MemFree@@3P6AXPAX@ZA DD 01H DUP (?) ; Scrpt_MemFree ?Scrpt_CancelTimer@@3P6AXH@ZA DD 01H DUP (?) ; Scrpt_CancelTimer ?Scrpt_CreateTimer@@3P6AHPAUtOSIRISTIMER@@@ZA DD 01H DUP (?) ; Scrpt_CreateTimer ?MSafe_DoPowerup@@3P6AXPAUmsafe_struct@@@ZA DD 01H DUP (?) ; MSafe_DoPowerup ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA DD 01H DUP (?) ; Obj_Create ?Game_GetTime@@3P6AMXZA DD 01H DUP (?) ; Game_GetTime ?Game_GetFrameTime@@3P6AMXZA DD 01H DUP (?) ; Game_GetFrameTime ?Obj_WBValue@@3P6AXHDDDPAXD@ZA DD 01H DUP (?) ; Obj_WBValue ?Scrpt_TimerExists@@3P6AEH@ZA DD 01H DUP (?) ; Scrpt_TimerExists ?Matcen_Reset@@3P6AXH@ZA DD 01H DUP (?) ; Matcen_Reset ?Matcen_Copy@@3P6AXHH@ZA DD 01H DUP (?) ; Matcen_Copy ?Matcen_Create@@3P6AHPAD@ZA DD 01H DUP (?) ; Matcen_Create ?Matcen_FindID@@3P6AHPAD@ZA DD 01H DUP (?) ; Matcen_FindID ?Msn_FlagSet@@3P6AXHE@ZA DD 01H DUP (?) ; Msn_FlagSet ?Msn_FlagGet@@3P6AHH@ZA DD 01H DUP (?) ; Msn_FlagGet ?Player_Value@@3P6AXHDDPAXH@ZA DD 01H DUP (?) ; Player_Value ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA DD 01H DUP (?) ; Obj_SetCustomAnim ?Player_AddHudMessage@@3P6AXHPAD@ZA DD 01H DUP (?) ; Player_AddHudMessage ?Obj_Ghost@@3P6AXH_N@ZA DD 01H DUP (?) ; Obj_Ghost ?Obj_Burning@@3P6AXHMM@ZA DD 01H DUP (?) ; Obj_Burning ?Obj_IsEffect@@3P6A_NHH@ZA DD 01H DUP (?) ; Obj_IsEffect ?File_Open@@3P6APAXPBD0@ZA DD 01H DUP (?) ; File_Open ?File_Close@@3P6AXPAX@ZA DD 01H DUP (?) ; File_Close ?File_Tell@@3P6AHPAX@ZA DD 01H DUP (?) ; File_Tell ?File_eof@@3P6AEPAX@ZA DD 01H DUP (?) ; File_eof ?Sound_Stop@@3P6AXH_N@ZA DD 01H DUP (?) ; Sound_Stop ?Sound_Play2d@@3P6AHHHM@ZA DD 01H DUP (?) ; Sound_Play2d ?Sound_Play3d@@3P6AHHHM@ZA DD 01H DUP (?) ; Sound_Play3d ?Sound_FindId@@3P6AHPAD@ZA DD 01H DUP (?) ; Sound_FindId ?AI_IsObjFriend@@3P6A_NHH@ZA DD 01H DUP (?) ; AI_IsObjFriend ?AI_IsObjEnemy@@3P6A_NHH@ZA DD 01H DUP (?) ; AI_IsObjEnemy ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA DD 01H DUP (?) ; AI_GoalValue ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA DD 01H DUP (?) ; AI_GetNearbyObjs ?AI_GetCurGoalIndex@@3P6ADH@ZA DD 01H DUP (?) ; AI_GetCurGoalIndex ?OMMS_Malloc@@3P6AHIIPAD@ZA DD 01H DUP (?) ; OMMS_Malloc ?OMMS_Attach@@3P6APAXH@ZA DD 01H DUP (?) ; OMMS_Attach ?OMMS_Detach@@3P6AXH@ZA DD 01H DUP (?) ; OMMS_Detach ?OMMS_Free@@3P6AXH@ZA DD 01H DUP (?) ; OMMS_Free ?OMMS_Find@@3P6AHIPAD@ZA DD 01H DUP (?) ; OMMS_Find ?OMMS_GetInfo@@3P6ADHPAI0PAGPAE@ZA DD 01H DUP (?) ; OMMS_GetInfo ?Cine_Start@@3P6A_NPAUtGameCinematic@@PAD@ZA DD 01H DUP (?) ; Cine_Start ?Cine_Stop@@3P6AXXZA DD 01H DUP (?) ; Cine_Stop ?Scrpt_FindSoundName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindSoundName ?Scrpt_FindRoomName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindRoomName ?Scrpt_FindTriggerName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindTriggerName ?Scrpt_FindObjectName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindObjectName ?Scrpt_GetTriggerRoom@@3P6AHH@ZA DD 01H DUP (?) ; Scrpt_GetTriggerRoom ?Scrpt_GetTriggerFace@@3P6AHH@ZA DD 01H DUP (?) ; Scrpt_GetTriggerFace ?Scrpt_FindDoorName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindDoorName ?Scrpt_FindTextureName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindTextureName ?Game_CreateRandomSparks@@3P6AXHPAUvector@@HHM@ZA DD 01H DUP (?) ; Game_CreateRandomSparks ?Scrpt_CancelTimerID@@3P6AXH@ZA DD 01H DUP (?) ; Scrpt_CancelTimerID ?Game_EnableShip@@3P6AXPAD_N@ZA DD 01H DUP (?) ; Game_EnableShip ?Game_IsShipEnabled@@3P6A_NPAD@ZA DD 01H DUP (?) ; Game_IsShipEnabled ?Path_GetInformation@@3P6A_NHHPAUvector@@PAHPAUmatrix@@@ZA DD 01H DUP (?) ; Path_GetInformation ?Cine_StartCanned@@3P6AXPAUtCannedCinematicInfo@@@ZA DD 01H DUP (?) ; Cine_StartCanned $SG5572 DB 01H DUP (?) ALIGN 4 $SG5573 DB 01H DUP (?) ALIGN 4 ?Scrpt_FindMatcenName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindMatcenName ?Scrpt_FindPathName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindPathName ?Scrpt_FindLevelGoalName@@3P6AHPAD@ZA DD 01H DUP (?) ; Scrpt_FindLevelGoalName $SG5586 DB 01H DUP (?) ALIGN 4 $SG5587 DB 01H DUP (?) ALIGN 4 ?LGoal_Value@@3P6AXDDPAXHH@ZA DD 01H DUP (?) ; LGoal_Value $SG5590 DB 01H DUP (?) ALIGN 4 $SG5591 DB 01H DUP (?) ALIGN 4 ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA DD 01H DUP (?) ; Obj_MakeListOfType ?Obj_Kill@@3P6AXHHMHMM@ZA DD 01H DUP (?) ; Obj_Kill ?AI_IsDestReachable@@3P6A_NHH@ZA DD 01H DUP (?) ; AI_IsDestReachable $SG5610 DB 01H DUP (?) ALIGN 4 $SG5611 DB 01H DUP (?) ALIGN 4 ?AI_IsObjReachable@@3P6A_NHH@ZA DD 01H DUP (?) ; AI_IsObjReachable ?Game_GetDiffLevel@@3P6ADXZA DD 01H DUP (?) ; Game_GetDiffLevel ?Game_GetLanguage@@3P6AHXZA DD 01H DUP (?) ; Game_GetLanguage ?Path_Value@@3P6AXHHDHPAX@ZA DD 01H DUP (?) ; Path_Value ?String_table_size@@3HA DD 01H DUP (?) ; String_table_size ?String_table@@3PAPADA DD 01H DUP (?) ; String_table $SG3838 DB 01H DUP (?) ALIGN 4 ?aigame_mod_id@@3HA DD 01H DUP (?) ; aigame_mod_id ?mprintf@@3P6AXHPADZZA DD 01H DUP (?) ; mprintf ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA DD 01H DUP (?) ; MSafe_CallFunction ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA DD 01H DUP (?) ; MSafe_GetValue ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA DD 01H DUP (?) ; Obj_CallEvent ?Trgr_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA DD 01H DUP (?) ; Trgr_CallEvent ?Sound_TouchFile@@3P6AXPAD@ZA DD 01H DUP (?) ; Sound_TouchFile ?Obj_FindID@@3P6AHPAD@ZA DD 01H DUP (?) ; Obj_FindID ?Obj_FindType@@3P6AHPAD@ZA DD 01H DUP (?) ; Obj_FindType ?Wpn_FindID@@3P6AHPAD@ZA DD 01H DUP (?) ; Wpn_FindID _BSS ENDS CONST SEGMENT _Zero_vector DD 000000000r ; 0 DD 000000000r ; 0 DD 000000000r ; 0 CONST ENDS _DATA SEGMENT __Error_string DD FLAT:$SG3836 __Empty_string DD FLAT:$SG3838 ?ScriptInfo@@3PAUtScriptInfo@@A DD 00H ; ScriptInfo DD FLAT:$SG3875 DD 01H DD FLAT:$SG3876 DD 02H DD FLAT:$SG3877 DD 03H DD FLAT:$SG3878 DD 04H DD FLAT:$SG3879 DD 05H DD FLAT:$SG3880 DD 06H DD FLAT:$SG3881 DD 07H DD FLAT:$SG3882 DD 08H DD FLAT:$SG3883 DD 09H DD FLAT:$SG3884 DD 0aH DD FLAT:$SG3885 DD 0bH DD FLAT:$SG3886 DD 0cH DD FLAT:$SG3887 DD 0dH DD FLAT:$SG3888 DD 0eH DD FLAT:$SG3889 DD 0fH DD FLAT:$SG3890 DD 010H DD FLAT:$SG3891 DD 011H DD FLAT:$SG3892 DD 012H DD FLAT:$SG3893 DD 013H DD FLAT:$SG3894 DD 014H DD FLAT:$SG3895 DD 015H DD FLAT:$SG3896 DD 016H DD FLAT:$SG3897 DD 017H DD FLAT:$SG3898 DD 018H DD FLAT:$SG3899 DD 019H DD FLAT:$SG3900 DD 01aH DD FLAT:$SG3901 DD 01bH DD FLAT:$SG3902 DD 01cH DD FLAT:$SG3903 DD 01dH DD FLAT:$SG3904 DD 01eH DD FLAT:$SG3905 DD 01fH DD FLAT:$SG3906 DD 020H DD FLAT:$SG3907 DD 021H DD FLAT:$SG3908 DD 022H DD FLAT:$SG3909 DD 023H DD FLAT:$SG3910 DD 024H DD FLAT:$SG3911 DD 025H DD FLAT:$SG3912 DD 026H DD FLAT:$SG3913 DD 027H DD FLAT:$SG3914 DD 028H DD FLAT:$SG3915 DD 029H DD FLAT:$SG3916 ?gb_command_text@@3PAHA DD 00H ; gb_command_text DD 01H DD 02H DD 03H DD 04H DD 05H DD 06H DD 07H DD 08H DD 09H DD 0aH DD 0bH DD 0cH DD 0dH DD 0eH DD 0fH DD 010H DD 011H DD 012H DD 013H DD 014H DD 015H DD 016H DD 017H DD 018H DD 019H DD 01aH DD 01bH DD 01cH DD 01dH DD 01eH DD 01fH DD 020H DD 021H DD 022H DD 023H DD 024H DD 025H DD 026H DD 027H DD 028H DD 029H DD 02aH DD 02bH ?gb_pow_text@@3PAHA DD 060H ; gb_pow_text DD 061H DD 062H DD 063H DD 064H DD 065H ?gb_pow_not_text@@3PAHA DD 066H ; gb_pow_not_text DD 067H DD 068H DD 069H DD 06aH DD 06bH ?gb_pow_pickup_text@@3PAHA DD 06cH ; gb_pow_pickup_text DD 06dH DD 06eH DD 06fH DD 070H DD 071H ?ThiefableItems@@3PAUtThiefItems@@A DD 00H ; ThiefableItems DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 072H DD 01H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 073H DD 02H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 074H DD 03H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 075H DD 04H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 076H DD 05H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 077H DD 06H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 078H DD 07H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 079H DD 08H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 07aH DD 09H DD 00H DD 03f333333r ; 0.7 DD 03f000000r ; 0.5 DD 03f333333r ; 0.7 DD 07bH DD 0aH DD 01H DD 03f000000r ; 0.5 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 07cH DD 0bH DD 01H DD 03f19999ar ; 0.6 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 07dH DD 0cH DD 01H DD 03f333333r ; 0.7 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 07eH DD 0dH DD 01H DD 03f4ccccdr ; 0.8 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 07fH DD 0eH DD 01H DD 03f666666r ; 0.9 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 080H DD 0fH DD 01H DD 03f000000r ; 0.5 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 081H DD 010H DD 01H DD 03f19999ar ; 0.6 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 082H DD 011H DD 01H DD 03f333333r ; 0.7 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 083H DD 012H DD 01H DD 03f4ccccdr ; 0.8 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 084H DD 013H DD 01H DD 03f666666r ; 0.9 DD 000000000r ; 0 DD 03f666666r ; 0.9 DD 085H DD 01H DD 02H DD 03e4ccccdr ; 0.2 DD 03e4ccccdr ; 0.2 DD 03e4ccccdr ; 0.2 DD 086H DD 02H DD 02H DD 000000000r ; 0 DD 000000000r ; 0 DD 000000000r ; 0 DD 087H DD 03H DD 02H DD 03f4ccccdr ; 0.8 DD 03ecccccdr ; 0.4 DD 03f4ccccdr ; 0.8 DD 088H DD 04H DD 02H DD 03f800000r ; 1 DD 03f19999ar ; 0.6 DD 03f800000r ; 1 DD 089H DD 05H DD 02H DD 03f800000r ; 1 DD 03f19999ar ; 0.6 DD 03f800000r ; 1 DD 08aH DD 06H DD 02H DD 03f800000r ; 1 DD 03f19999ar ; 0.6 DD 03f800000r ; 1 DD 08bH DD 07H DD 02H DD 03f800000r ; 1 DD 03f19999ar ; 0.6 DD 03f800000r ; 1 DD 08cH ?numThiefableItems@@3HA DD 01bH ; numThiefableItems ORG $+4 ?SuperThiefableItems@@3PAUtSuperThiefItems@@A DD 00H ; SuperThiefableItems DD 0ffffffffH DD 00H DD 03e800000r ; 0.25 DD 072H DD FLAT:$SG5572 DD FLAT:$SG5573 DD 01H DD 04H DD 00H DD 03dcccccdr ; 0.1 DD 073H DD FLAT:$SG5574 DD FLAT:$SG5575 DD 02H DD 02H DD 00H DD 03dcccccdr ; 0.1 DD 074H DD FLAT:$SG5576 DD FLAT:$SG5577 DD 03H DD 03H DD 00H DD 03e19999ar ; 0.15 DD 075H DD FLAT:$SG5578 DD FLAT:$SG5579 DD 04H DD 05H DD 00H DD 03f4ccccdr ; 0.8 DD 076H DD FLAT:$SG5580 DD FLAT:$SG5581 DD 05H DD 06H DD 00H DD 03e800000r ; 0.25 DD 077H DD FLAT:$SG5582 DD FLAT:$SG5583 DD 06H DD 07H DD 00H DD 03f800000r ; 1 DD 078H DD FLAT:$SG5584 DD FLAT:$SG5585 DD 07H DD 0ffffffffH DD 00H DD 03f800000r ; 1 DD 079H DD FLAT:$SG5586 DD FLAT:$SG5587 DD 08H DD 01H DD 00H DD 03e4ccccdr ; 0.2 DD 07aH DD FLAT:$SG5588 DD FLAT:$SG5589 DD 09H DD 0ffffffffH DD 00H DD 03f800000r ; 1 DD 07bH DD FLAT:$SG5590 DD FLAT:$SG5591 DD 0aH DD 01H DD 01H DD 03e4ccccdr ; 0.2 DD 07cH DD FLAT:$SG5592 DD FLAT:$SG5593 DD 0bH DD 02H DD 01H DD 03e4ccccdr ; 0.2 DD 07dH DD FLAT:$SG5594 DD FLAT:$SG5595 DD 0cH DD 0ffffffffH DD 01H DD 03e4ccccdr ; 0.2 DD 07eH DD FLAT:$SG5596 DD FLAT:$SG5597 DD 0dH DD 03H DD 01H DD 03e4ccccdr ; 0.2 DD 07fH DD FLAT:$SG5598 DD FLAT:$SG5599 DD 0eH DD 08H DD 01H DD 03e4ccccdr ; 0.2 DD 080H DD FLAT:$SG5600 DD FLAT:$SG5601 DD 0fH DD 06H DD 01H DD 03e4ccccdr ; 0.2 DD 081H DD FLAT:$SG5602 DD FLAT:$SG5603 DD 010H DD 04H DD 01H DD 03e4ccccdr ; 0.2 DD 082H DD FLAT:$SG5604 DD FLAT:$SG5605 DD 011H DD 05H DD 01H DD 03e4ccccdr ; 0.2 DD 083H DD FLAT:$SG5606 DD FLAT:$SG5607 DD 012H DD 07H DD 01H DD 03e4ccccdr ; 0.2 DD 084H DD FLAT:$SG5608 DD FLAT:$SG5609 DD 013H DD 0ffffffffH DD 01H DD 03e4ccccdr ; 0.2 DD 085H DD FLAT:$SG5610 DD FLAT:$SG5611 ?numSuperThiefableItems@@3HA DD 014H ; numSuperThiefableItems _DATA ENDS CONST SEGMENT _hm_valid_next_modes DW 02H DW 07cH DW 07cH DW 07cH DW 06cH DW 05cH DW 080H DW 0100H DW 0200H DW 0400H DW 00H CONST ENDS _DATA SEGMENT _?am_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA DD 0fffffffeH _?hl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA DD 0fffffffeH _?etos_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA DD 0fffffffeH _?cl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA DD 0fffffffeH _?iv_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA DD 0fffffffeH _?rf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA DD 0fffffffeH _?qf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA DD 0fffffffeH $SG3836 DB '!!ERROR MISSING STRING!!', 00H ORG $+3 $SG3875 DB 'Pest', 00H ORG $+3 $SG3876 DB 'Stinger', 00H $SG3877 DB 'Dragontorso', 00H $SG3878 DB 'Tracker', 00H $SG3879 DB 'Lance', 00H ORG $+2 $SG3880 DB 'Flak', 00H ORG $+3 $SG3881 DB 'supertrooper', 00H ORG $+3 $SG3882 DB 'red supertrooper', 00H ORG $+3 $SG3883 DB 'jugg', 00H ORG $+3 $SG3884 DB 'Sixgun', 00H ORG $+1 $SG3885 DB 'Sickle', 00H ORG $+1 $SG3886 DB 'Guidebot', 00H ORG $+3 $SG3887 DB 'FireAtDist', 00H ORG $+1 $SG3888 DB 'Tubbs', 00H ORG $+2 $SG3889 DB 'Thief', 00H ORG $+2 $SG3890 DB 'GBPowerup', 00H ORG $+2 $SG3891 DB 'BarnSwallow', 00H $SG3892 DB 'Sparky', 00H ORG $+1 $SG3893 DB 'Mantaray', 00H ORG $+3 $SG3894 DB 'Spyhunter', 00H ORG $+2 $SG3895 DB 'Sniper', 00H ORG $+1 $SG3896 DB 'Humonculous', 00H $SG3897 DB 'Seeker', 00H ORG $+1 $SG3898 DB 'Betty', 00H ORG $+2 $SG3899 DB 'ChaffBomb', 00H ORG $+2 $SG3900 DB 'ChaffChunk', 00H ORG $+1 $SG3901 DB 'ProxMine', 00H ORG $+3 $SG3902 DB 'BettyBomb', 00H ORG $+2 $SG3903 DB 'JoshBell', 00H ORG $+3 $SG3904 DB 'Skiff', 00H ORG $+2 $SG3905 DB 'ExplodeOnContact', 00H ORG $+3 $SG3906 DB 'ExplodeTimeOut', 00H ORG $+1 $SG3907 DB 'Gunboy', 00H ORG $+1 $SG3908 DB 'Ltowerbase', 00H ORG $+1 $SG3909 DB 'Collectorbase', 00H ORG $+2 $SG3910 DB 'ChemicalBall', 00H ORG $+3 $SG3911 DB 'Hellion', 00H $SG3912 DB 'superthief', 00H ORG $+1 $SG3913 DB 'EvaderModA', 00H ORG $+1 $SG3914 DB 'DestroyOnContact', 00H ORG $+3 $SG3915 DB 'HatePTMC', 00H ORG $+3 $SG3916 DB 'SniperNoRun', 00H $SG5574 DB 'Vauss', 00H ORG $+2 $SG5575 DB 'WpnPyroGLVaussSidefire', 00H ORG $+1 $SG5576 DB 'Raygun', 00H ORG $+1 $SG5577 DB 'WpnPyroGLMicrowaveSide', 00H ORG $+1 $SG5578 DB 'Plasma', 00H ORG $+1 $SG5579 DB 'WpnPyroGLPlasmaFire', 00H $SG5580 DB 'Fusion', 00H ORG $+1 $SG5581 DB 'WpnPyroGLFusionFire', 00H $SG5582 DB 'Laser Level 5 -Yellow', 00H ORG $+2 $SG5583 DB 'WpnPyroGLSuperLaser', 00H $SG5584 DB 'Mass Driver', 00H $SG5585 DB 'WpnPyroGLMDriverFire', 00H ORG $+3 $SG5588 DB 'EMDblob', 00H $SG5589 DB 'WpnPyroGLEMDfire', 00H ORG $+3 $SG5592 DB 'Concussion', 00H ORG $+1 $SG5593 DB 'concmissilefire71', 00H ORG $+2 $SG5594 DB 'homing', 00H ORG $+1 $SG5595 DB 'HomingfireB1', 00H ORG $+3 $SG5596 DB 'Impact Mortar', 00H ORG $+2 $SG5597 DB 'Drop weapon', 00H $SG5598 DB 'Smart', 00H ORG $+2 $SG5599 DB 'Smartfire1', 00H ORG $+1 $SG5600 DB 'Mega', 00H ORG $+3 $SG5601 DB 'Mega missile fire', 00H ORG $+2 $SG5602 DB 'Frag', 00H ORG $+3 $SG5603 DB 'WpnFragFire', 00H $SG5604 DB 'Guided', 00H ORG $+1 $SG5605 DB 'Guided31', 00H ORG $+3 $SG5606 DB 'NapalmRocket', 00H ORG $+3 $SG5607 DB 'napalmrocket31', 00H ORG $+1 $SG5608 DB 'Cyclone Pack', 00H ORG $+3 $SG5609 DB 'CycloneFire1', 00H _DATA ENDS PUBLIC ?vm_MakeZero@@YAXPAUvector@@@Z ; vm_MakeZero EXTRN __fltused:NEAR ; COMDAT ?vm_MakeZero@@YAXPAUvector@@@Z _TEXT SEGMENT _v$ = 8 ?vm_MakeZero@@YAXPAUvector@@@Z PROC NEAR ; vm_MakeZero, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 68 push ebp mov ebp, esp ; Line 69 mov eax, DWORD PTR _v$[ebp] mov DWORD PTR [eax+8], 0 mov ecx, DWORD PTR _v$[ebp] mov DWORD PTR [ecx+4], 0 mov edx, DWORD PTR _v$[ebp] mov DWORD PTR [edx], 0 ; Line 70 pop ebp ret 0 ?vm_MakeZero@@YAXPAUvector@@@Z ENDP ; vm_MakeZero _TEXT ENDS PUBLIC ?vm_MakeZero@@YAXPAUangvec@@@Z ; vm_MakeZero ; COMDAT ?vm_MakeZero@@YAXPAUangvec@@@Z _TEXT SEGMENT _a$ = 8 ?vm_MakeZero@@YAXPAUangvec@@@Z PROC NEAR ; vm_MakeZero, COMDAT ; Line 74 push ebp mov ebp, esp ; Line 75 mov eax, DWORD PTR _a$[ebp] mov WORD PTR [eax+4], 0 mov ecx, DWORD PTR _a$[ebp] mov WORD PTR [ecx+2], 0 mov edx, DWORD PTR _a$[ebp] mov WORD PTR [edx], 0 ; Line 76 pop ebp ret 0 ?vm_MakeZero@@YAXPAUangvec@@@Z ENDP ; vm_MakeZero _TEXT ENDS PUBLIC ?osicommon_Initialize@@YAXPAUtOSIRISModuleInit@@@Z ; osicommon_Initialize _TEXT SEGMENT _mi$ = 8 _i$ = -4 ?osicommon_Initialize@@YAXPAUtOSIRISModuleInit@@@Z PROC NEAR ; osicommon_Initialize ; File osiris_import.h ; Line 606 push ebp mov ebp, esp push ecx ; Line 607 mov DWORD PTR _i$[ebp], 0 ; Line 608 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?mprintf@@3P6AXHPADZZA, edx ; mprintf mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 609 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA, eax ; MSafe_CallFunction mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 610 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA, ecx ; MSafe_GetValue mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 611 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA, edx ; Obj_CallEvent mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 612 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Trgr_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA, eax ; Trgr_CallEvent mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 613 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Sound_TouchFile@@3P6AXPAD@ZA, ecx ; Sound_TouchFile mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 614 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA, edx ; Obj_FindID mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 615 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA, eax ; Wpn_FindID mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 616 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Obj_GetTimeLived@@3P6AMH@ZA, ecx ; Obj_GetTimeLived mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 617 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA, edx ; Obj_GetGunPos mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 618 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Room_Value@@3P6AXHDDPAXH@ZA, eax ; Room_Value mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 619 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Room_IsValid@@3P6AEH@ZA, ecx ; Room_IsValid mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 620 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_GetAttachParent@@3P6AHH@ZA, edx ; Obj_GetAttachParent mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 621 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Obj_GetNumAttachSlots@@3P6AHH@ZA, eax ; Obj_GetNumAttachSlots mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 622 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Obj_GetAttachChildHandle@@3P6AHHD@ZA, ecx ; Obj_GetAttachChildHandle mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 623 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_AttachObjectAP@@3P6AHHDHDE@ZA, edx ; Obj_AttachObjectAP mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 624 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Obj_AttachObjectRad@@3P6AHHDHM@ZA, eax ; Obj_AttachObjectRad mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 625 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Obj_UnattachFromParent@@3P6AXH@ZA, ecx ; Obj_UnattachFromParent mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 626 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_UnattachChild@@3P6AXHD@ZA, edx ; Obj_UnattachChild mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 627 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Obj_UnattachChildren@@3P6AXH@ZA, eax ; Obj_UnattachChildren mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 628 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA, ecx ; FVI_RayCast mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 629 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_GetPathID@@3P6AHPAD@ZA, edx ; AI_GetPathID mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 630 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?AI_GoalFollowPathSimple@@3P6AHHHHHH@ZA, eax ; AI_GoalFollowPathSimple mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 631 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_PowerSwitch@@3P6AHHE@ZA, ecx ; AI_PowerSwitch mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 632 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_TurnTowardsVectors@@3P6AEHPAUvector@@0@ZA, edx ; AI_TurnTowardsVectors mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 633 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?AI_SetType@@3P6AXHH@ZA, eax ; AI_SetType mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 634 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_FindHidePos@@3P6A?AUvector@@HHMPAH@ZA, ecx ; AI_FindHidePos mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 635 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_GoalAddEnabler@@3P6AHHHHMMPAX@ZA, edx ; AI_GoalAddEnabler mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 636 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA, eax ; AI_AddGoal mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 637 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_ClearGoal@@3P6AXHH@ZA, ecx ; AI_ClearGoal mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 638 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA, edx ; AI_Value mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 639 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA, eax ; AI_FindObjOfType mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 640 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_GetRoomPathPoint@@3P6A?AUvector@@H@ZA, ecx ; AI_GetRoomPathPoint mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 641 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_FindEnergyCenter@@3P6AHH@ZA, edx ; AI_FindEnergyCenter mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 642 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?AI_GetDistToObj@@3P6AMHH@ZA, eax ; AI_GetDistToObj mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 643 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA, ecx ; AI_SetGoalFlags mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 644 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA, edx ; AI_SetGoalCircleDist mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 645 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?File_ReadBytes@@3P6AHPAEHPAX@ZA, eax ; File_ReadBytes mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 646 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?File_ReadInt@@3P6AHPAX@ZA, ecx ; File_ReadInt mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 647 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?File_ReadShort@@3P6AFPAX@ZA, edx ; File_ReadShort mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 648 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?File_ReadByte@@3P6ACPAX@ZA, eax ; File_ReadByte mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 649 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?File_ReadFloat@@3P6AMPAX@ZA, ecx ; File_ReadFloat mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 650 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?File_ReadDouble@@3P6ANPAX@ZA, edx ; File_ReadDouble mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 651 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?File_ReadString@@3P6AHPADIPAX@ZA, eax ; File_ReadString mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 652 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?File_WriteBytes@@3P6AHPBEHPAX@ZA, ecx ; File_WriteBytes mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 653 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?File_WriteString@@3P6AHPBDPAX@ZA, edx ; File_WriteString mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 654 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?File_WriteInt@@3P6AXHPAX@ZA, eax ; File_WriteInt mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 655 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?File_WriteShort@@3P6AXFPAX@ZA, ecx ; File_WriteShort mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 656 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?File_WriteByte@@3P6AXCPAX@ZA, edx ; File_WriteByte mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 657 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?File_WriteFloat@@3P6AXMPAX@ZA, eax ; File_WriteFloat mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 658 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?File_WriteDouble@@3P6AXNPAX@ZA, ecx ; File_WriteDouble mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 659 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA, edx ; Scrpt_MemAlloc mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 660 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Scrpt_MemFree@@3P6AXPAX@ZA, eax ; Scrpt_MemFree mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 661 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Scrpt_CancelTimer@@3P6AXH@ZA, ecx ; Scrpt_CancelTimer mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 662 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_CreateTimer@@3P6AHPAUtOSIRISTIMER@@@ZA, edx ; Scrpt_CreateTimer mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 663 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?MSafe_DoPowerup@@3P6AXPAUmsafe_struct@@@ZA, eax ; MSafe_DoPowerup mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 664 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA, ecx ; Obj_Create mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 665 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Game_GetTime@@3P6AMXZA, edx ; Game_GetTime mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 666 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Game_GetFrameTime@@3P6AMXZA, eax ; Game_GetFrameTime mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 667 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA, ecx ; Obj_WBValue mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 668 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_TimerExists@@3P6AEH@ZA, edx ; Scrpt_TimerExists mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 669 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA, eax ; Obj_Value mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 670 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Matcen_Value@@3P6AXHDDPAXH@ZA, ecx ; Matcen_Value mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 671 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Matcen_Reset@@3P6AXH@ZA, edx ; Matcen_Reset mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 672 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Matcen_Copy@@3P6AXHH@ZA, eax ; Matcen_Copy mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 673 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Matcen_Create@@3P6AHPAD@ZA, ecx ; Matcen_Create mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 674 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Matcen_FindID@@3P6AHPAD@ZA, edx ; Matcen_FindID mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 675 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Msn_FlagSet@@3P6AXHE@ZA, eax ; Msn_FlagSet mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 676 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Msn_FlagGet@@3P6AHH@ZA, ecx ; Msn_FlagGet mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 677 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA, edx ; Player_Value mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 678 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA, eax ; Obj_SetCustomAnim mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 679 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Player_AddHudMessage@@3P6AXHPAD@ZA, ecx ; Player_AddHudMessage mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 680 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_Ghost@@3P6AXH_N@ZA, edx ; Obj_Ghost mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 681 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA, eax ; Obj_Burning mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 682 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Obj_IsEffect@@3P6A_NHH@ZA, ecx ; Obj_IsEffect mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 683 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?File_Open@@3P6APAXPBD0@ZA, edx ; File_Open mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 684 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?File_Close@@3P6AXPAX@ZA, eax ; File_Close mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 685 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?File_Tell@@3P6AHPAX@ZA, ecx ; File_Tell mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 686 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?File_eof@@3P6AEPAX@ZA, edx ; File_eof mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 687 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Sound_Stop@@3P6AXH_N@ZA, eax ; Sound_Stop mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 688 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Sound_Play2d@@3P6AHHHM@ZA, ecx ; Sound_Play2d mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 689 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA, edx ; Sound_Play3d mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 690 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA, eax ; Sound_FindId mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 691 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_IsObjFriend@@3P6A_NHH@ZA, ecx ; AI_IsObjFriend mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 692 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_IsObjEnemy@@3P6A_NHH@ZA, edx ; AI_IsObjEnemy mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 693 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA, eax ; AI_GoalValue mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 694 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA, ecx ; AI_GetNearbyObjs mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 695 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?AI_GetCurGoalIndex@@3P6ADH@ZA, edx ; AI_GetCurGoalIndex mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 696 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?OMMS_Malloc@@3P6AHIIPAD@ZA, eax ; OMMS_Malloc mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 697 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?OMMS_Attach@@3P6APAXH@ZA, ecx ; OMMS_Attach mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 698 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?OMMS_Detach@@3P6AXH@ZA, edx ; OMMS_Detach mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 699 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?OMMS_Free@@3P6AXH@ZA, eax ; OMMS_Free mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 700 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?OMMS_Find@@3P6AHIPAD@ZA, ecx ; OMMS_Find mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 701 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?OMMS_GetInfo@@3P6ADHPAI0PAGPAE@ZA, edx ; OMMS_GetInfo mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 702 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Cine_Start@@3P6A_NPAUtGameCinematic@@PAD@ZA, eax ; Cine_Start mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 703 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Cine_Stop@@3P6AXXZA, ecx ; Cine_Stop mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 704 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_FindSoundName@@3P6AHPAD@ZA, edx ; Scrpt_FindSoundName mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 705 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Scrpt_FindRoomName@@3P6AHPAD@ZA, eax ; Scrpt_FindRoomName mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 706 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Scrpt_FindTriggerName@@3P6AHPAD@ZA, ecx ; Scrpt_FindTriggerName mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 707 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA, edx ; Scrpt_FindObjectName mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 708 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Scrpt_GetTriggerRoom@@3P6AHH@ZA, eax ; Scrpt_GetTriggerRoom mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 709 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Scrpt_GetTriggerFace@@3P6AHH@ZA, ecx ; Scrpt_GetTriggerFace mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 710 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_FindDoorName@@3P6AHPAD@ZA, edx ; Scrpt_FindDoorName mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 711 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Scrpt_FindTextureName@@3P6AHPAD@ZA, eax ; Scrpt_FindTextureName mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 712 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Game_CreateRandomSparks@@3P6AXHPAUvector@@HHM@ZA, ecx ; Game_CreateRandomSparks mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 713 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_CancelTimerID@@3P6AXH@ZA, edx ; Scrpt_CancelTimerID mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 714 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Obj_GetGroundPos@@3P6AXHHPAUvector@@0@ZA, eax ; Obj_GetGroundPos mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 715 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Game_EnableShip@@3P6AXPAD_N@ZA, ecx ; Game_EnableShip mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 716 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Game_IsShipEnabled@@3P6A_NPAD@ZA, edx ; Game_IsShipEnabled mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 717 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Path_GetInformation@@3P6A_NHHPAUvector@@PAHPAUmatrix@@@ZA, eax ; Path_GetInformation mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 718 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Cine_StartCanned@@3P6AXPAUtCannedCinematicInfo@@@ZA, ecx ; Cine_StartCanned mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 719 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Scrpt_FindMatcenName@@3P6AHPAD@ZA, edx ; Scrpt_FindMatcenName mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 720 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Scrpt_FindPathName@@3P6AHPAD@ZA, eax ; Scrpt_FindPathName mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 721 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Scrpt_FindLevelGoalName@@3P6AHPAD@ZA, ecx ; Scrpt_FindLevelGoalName mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 722 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_FindType@@3P6AHPAD@ZA, edx ; Obj_FindType mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 723 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA, eax ; LGoal_Value mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 724 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA, ecx ; Obj_MakeListOfType mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 725 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA, edx ; Obj_Kill mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 727 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?AI_IsDestReachable@@3P6A_NHH@ZA, eax ; AI_IsDestReachable mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 728 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?AI_IsObjReachable@@3P6A_NHH@ZA, ecx ; AI_IsObjReachable mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 729 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _mi$[ebp] mov edx, DWORD PTR [ecx+eax*4] mov DWORD PTR ?Game_GetDiffLevel@@3P6ADXZA, edx ; Game_GetDiffLevel mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax ; Line 730 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _mi$[ebp] mov eax, DWORD PTR [edx+ecx*4] mov DWORD PTR ?Game_GetLanguage@@3P6AHXZA, eax ; Game_GetLanguage mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 731 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _mi$[ebp] mov ecx, DWORD PTR [eax+edx*4] mov DWORD PTR ?Path_Value@@3P6AXHHDHPAX@ZA, ecx ; Path_Value mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx ; Line 732 mov esp, ebp pop ebp ret 0 ?osicommon_Initialize@@YAXPAUtOSIRISModuleInit@@@Z ENDP ; osicommon_Initialize _TEXT ENDS PUBLIC ?InitMathTables@@YAXXZ ; InitMathTables PUBLIC __real@8@40078000000000000000 PUBLIC __real@8@4000c90fdaa2922a8000 PUBLIC __real@8@4001c90fdaa2922a8000 PUBLIC __real@8@400f8000000000000000 EXTRN _time:NEAR EXTRN __ftol:NEAR EXTRN _srand:NEAR EXTRN _acos:NEAR EXTRN _asin:NEAR EXTRN _sin:NEAR ; COMDAT __real@8@40078000000000000000 ; File osiris_vector.h CONST SEGMENT __real@8@40078000000000000000 DQ 04070000000000000r ; 256 CONST ENDS ; COMDAT __real@8@4000c90fdaa2922a8000 CONST SEGMENT __real@8@4000c90fdaa2922a8000 DQ 0400921fb54524550r ; 3.14159 CONST ENDS ; COMDAT __real@8@4001c90fdaa2922a8000 CONST SEGMENT __real@8@4001c90fdaa2922a8000 DQ 0401921fb54524550r ; 6.28319 CONST ENDS ; COMDAT __real@8@400f8000000000000000 CONST SEGMENT __real@8@400f8000000000000000 DQ 040f0000000000000r ; 65536 CONST ENDS _TEXT SEGMENT _i$ = -16 _rad$ = -12 _s$ = -8 _c$ = -4 ?InitMathTables@@YAXXZ PROC NEAR ; InitMathTables ; File osiris_vector.h ; Line 71 push ebp mov ebp, esp sub esp, 16 ; 00000010H ; Line 75 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L3131 $L3132: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L3131: cmp DWORD PTR _i$[ebp], 321 ; 00000141H jge SHORT $L3133 ; Line 76 fild DWORD PTR _i$[ebp] fdiv QWORD PTR __real@8@40078000000000000000 fadd ST(0), ST(0) fmul QWORD PTR __real@8@4000c90fdaa2922a8000 fst DWORD PTR _rad$[ebp] ; Line 77 sub esp, 8 fstp QWORD PTR [esp] call _sin add esp, 8 mov ecx, DWORD PTR _i$[ebp] fstp DWORD PTR ?sincos_table@@3PAMA[ecx*4] ; Line 78 jmp SHORT $L3132 $L3133: ; Line 80 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L3137 $L3138: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L3137: cmp DWORD PTR _i$[ebp], 256 ; 00000100H jge $L3139 ; Line 82 fild DWORD PTR _i$[ebp] fdiv QWORD PTR __real@8@40078000000000000000 sub esp, 8 fstp QWORD PTR [esp] call _asin add esp, 8 fstp DWORD PTR _s$[ebp] ; Line 83 fild DWORD PTR _i$[ebp] fdiv QWORD PTR __real@8@40078000000000000000 sub esp, 8 fstp QWORD PTR [esp] call _acos add esp, 8 fstp DWORD PTR _c$[ebp] ; Line 85 fld DWORD PTR _s$[ebp] fdiv QWORD PTR __real@8@4001c90fdaa2922a8000 fstp DWORD PTR _s$[ebp] ; Line 86 fld DWORD PTR _c$[ebp] fdiv QWORD PTR __real@8@4001c90fdaa2922a8000 fstp DWORD PTR _c$[ebp] ; Line 88 fld DWORD PTR _s$[ebp] fmul QWORD PTR __real@8@400f8000000000000000 call __ftol mov ecx, DWORD PTR _i$[ebp] mov WORD PTR ?asin_table@@3PAGA[ecx*2], ax ; Line 89 fld DWORD PTR _c$[ebp] fmul QWORD PTR __real@8@400f8000000000000000 call __ftol mov edx, DWORD PTR _i$[ebp] mov WORD PTR ?acos_table@@3PAGA[edx*2], ax ; Line 90 jmp $L3138 $L3139: ; Line 92 mov ax, WORD PTR ?asin_table@@3PAGA+510 mov WORD PTR ?asin_table@@3PAGA+512, ax ; Line 93 mov cx, WORD PTR ?acos_table@@3PAGA+510 mov WORD PTR ?acos_table@@3PAGA+512, cx ; Line 96 push 0 call _time add esp, 4 push eax call _srand add esp, 4 ; Line 97 mov esp, ebp pop ebp ret 0 ?InitMathTables@@YAXXZ ENDP ; InitMathTables _TEXT ENDS PUBLIC ?FixSin@@YAMG@Z ; FixSin _TEXT SEGMENT _a$ = 8 _i$ = -16 _f$ = -12 _s0$ = -4 _s1$ = -8 ?FixSin@@YAMG@Z PROC NEAR ; FixSin ; Line 101 push ebp mov ebp, esp sub esp, 20 ; 00000014H ; Line 105 mov eax, DWORD PTR _a$[ebp] and eax, 65535 ; 0000ffffH sar eax, 8 and eax, 255 ; 000000ffH mov DWORD PTR _i$[ebp], eax ; Line 106 mov ecx, DWORD PTR _a$[ebp] and ecx, 65535 ; 0000ffffH and ecx, 255 ; 000000ffH mov DWORD PTR _f$[ebp], ecx ; Line 108 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR ?sincos_table@@3PAMA[edx*4] mov DWORD PTR _s0$[ebp], eax ; Line 109 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR ?sincos_table@@3PAMA[ecx*4+4] mov DWORD PTR _s1$[ebp], edx ; Line 110 fld DWORD PTR _s0$[ebp] fld DWORD PTR _s1$[ebp] fsub DWORD PTR _s0$[ebp] fimul DWORD PTR _f$[ebp] fdiv QWORD PTR __real@8@40078000000000000000 faddp ST(1), ST(0) fst DWORD PTR -20+[ebp] ; Line 111 mov esp, ebp pop ebp ret 0 ?FixSin@@YAMG@Z ENDP ; FixSin _TEXT ENDS PUBLIC ?FixCos@@YAMG@Z ; FixCos _TEXT SEGMENT _a$ = 8 _i$ = -16 _f$ = -12 _c0$ = -4 _c1$ = -8 ?FixCos@@YAMG@Z PROC NEAR ; FixCos ; Line 115 push ebp mov ebp, esp sub esp, 20 ; 00000014H ; Line 119 mov eax, DWORD PTR _a$[ebp] and eax, 65535 ; 0000ffffH sar eax, 8 and eax, 255 ; 000000ffH mov DWORD PTR _i$[ebp], eax ; Line 120 mov ecx, DWORD PTR _a$[ebp] and ecx, 65535 ; 0000ffffH and ecx, 255 ; 000000ffH mov DWORD PTR _f$[ebp], ecx ; Line 122 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR ?sincos_table@@3PAMA[edx*4+256] mov DWORD PTR _c0$[ebp], eax ; Line 123 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR ?sincos_table@@3PAMA[ecx*4+260] mov DWORD PTR _c1$[ebp], edx ; Line 124 fld DWORD PTR _c0$[ebp] fld DWORD PTR _c1$[ebp] fsub DWORD PTR _c0$[ebp] fimul DWORD PTR _f$[ebp] fdiv QWORD PTR __real@8@40078000000000000000 faddp ST(1), ST(0) fst DWORD PTR -20+[ebp] ; Line 125 mov esp, ebp pop ebp ret 0 ?FixCos@@YAMG@Z ENDP ; FixCos _TEXT ENDS PUBLIC ?FixSinFast@@YAMG@Z ; FixSinFast _TEXT SEGMENT _a$ = 8 _i$ = -4 ?FixSinFast@@YAMG@Z PROC NEAR ; FixSinFast ; Line 129 push ebp mov ebp, esp push ecx ; Line 132 mov eax, DWORD PTR _a$[ebp] and eax, 65535 ; 0000ffffH add eax, 128 ; 00000080H sar eax, 8 and eax, 255 ; 000000ffH mov DWORD PTR _i$[ebp], eax ; Line 134 mov ecx, DWORD PTR _i$[ebp] fld DWORD PTR ?sincos_table@@3PAMA[ecx*4] ; Line 135 mov esp, ebp pop ebp ret 0 ?FixSinFast@@YAMG@Z ENDP ; FixSinFast _TEXT ENDS PUBLIC ?FixCosFast@@YAMG@Z ; FixCosFast _TEXT SEGMENT _a$ = 8 _i$ = -4 ?FixCosFast@@YAMG@Z PROC NEAR ; FixCosFast ; Line 139 push ebp mov ebp, esp push ecx ; Line 142 mov eax, DWORD PTR _a$[ebp] and eax, 65535 ; 0000ffffH add eax, 128 ; 00000080H sar eax, 8 and eax, 255 ; 000000ffH mov DWORD PTR _i$[ebp], eax ; Line 144 mov ecx, DWORD PTR _i$[ebp] fld DWORD PTR ?sincos_table@@3PAMA[ecx*4+256] ; Line 145 mov esp, ebp pop ebp ret 0 ?FixCosFast@@YAMG@Z ENDP ; FixCosFast _TEXT ENDS PUBLIC ?FloatRound@@YAHM@Z ; FloatRound PUBLIC __real@4@40168008000000000000 ; COMDAT __real@4@40168008000000000000 ; File osiris_vector.h CONST SEGMENT __real@4@40168008000000000000 DD 04b000800r ; 8.39066e+006 CONST ENDS _TEXT SEGMENT _x$ = 8 _nf$ = -4 ?FloatRound@@YAHM@Z PROC NEAR ; FloatRound ; File osiris_vector.h ; Line 156 push ebp mov ebp, esp push ecx ; Line 158 fld DWORD PTR _x$[ebp] fadd DWORD PTR __real@4@40168008000000000000 fstp DWORD PTR _nf$[ebp] ; Line 159 mov eax, DWORD PTR _nf$[ebp] and eax, 8388607 ; 007fffffH sub eax, 2048 ; 00000800H ; Line 160 mov esp, ebp pop ebp ret 0 ?FloatRound@@YAHM@Z ENDP ; FloatRound _TEXT ENDS PUBLIC ?FloatToFixFast@@YAJM@Z ; FloatToFixFast PUBLIC __real@4@400f8000000000000000 ; COMDAT __real@4@400f8000000000000000 ; File osiris_vector.h CONST SEGMENT __real@4@400f8000000000000000 DD 047800000r ; 65536 CONST ENDS _TEXT SEGMENT _x$ = 8 _nf$ = -4 ?FloatToFixFast@@YAJM@Z PROC NEAR ; FloatToFixFast ; File osiris_vector.h ; Line 164 push ebp mov ebp, esp push ecx ; Line 167 fld DWORD PTR _x$[ebp] fmul DWORD PTR __real@4@400f8000000000000000 fadd DWORD PTR __real@4@40168008000000000000 fstp DWORD PTR _nf$[ebp] ; Line 168 mov eax, DWORD PTR _nf$[ebp] and eax, 8388607 ; 007fffffH sub eax, 2048 ; 00000800H ; Line 169 mov esp, ebp pop ebp ret 0 ?FloatToFixFast@@YAJM@Z ENDP ; FloatToFixFast _TEXT ENDS PUBLIC ?FixAsin@@YAGM@Z ; FixAsin PUBLIC __real@4@00000000000000000000 EXTRN _fabs:NEAR ; COMDAT __real@4@00000000000000000000 ; File osiris_vector.h CONST SEGMENT __real@4@00000000000000000000 DD 000000000r ; 0 CONST ENDS _TEXT SEGMENT _v$ = 8 _vv$ = -4 _i$ = -12 _f$ = -8 _aa$ = -16 ?FixAsin@@YAGM@Z PROC NEAR ; FixAsin ; File osiris_vector.h ; Line 176 push ebp mov ebp, esp sub esp, 16 ; 00000010H ; Line 180 fld DWORD PTR _v$[ebp] sub esp, 8 fstp QWORD PTR [esp] call _fabs add esp, 8 fmul QWORD PTR __real@8@400f8000000000000000 call __ftol mov DWORD PTR _vv$[ebp], eax ; Line 182 cmp DWORD PTR _vv$[ebp], 65536 ; 00010000H jl SHORT $L3188 ; Line 183 mov ax, 16384 ; 00004000H jmp SHORT $L3182 $L3188: ; Line 185 mov eax, DWORD PTR _vv$[ebp] sar eax, 8 and eax, 255 ; 000000ffH mov DWORD PTR _i$[ebp], eax ; Line 186 mov ecx, DWORD PTR _vv$[ebp] and ecx, 255 ; 000000ffH mov DWORD PTR _f$[ebp], ecx ; Line 188 mov edx, DWORD PTR _i$[ebp] xor eax, eax mov ax, WORD PTR ?asin_table@@3PAGA[edx*2] mov DWORD PTR _aa$[ebp], eax ; Line 189 mov ecx, DWORD PTR _i$[ebp] xor edx, edx mov dx, WORD PTR ?asin_table@@3PAGA[ecx*2+2] sub edx, DWORD PTR _aa$[ebp] imul edx, DWORD PTR _f$[ebp] sar edx, 8 mov eax, DWORD PTR _aa$[ebp] add eax, edx mov DWORD PTR _aa$[ebp], eax ; Line 191 fld DWORD PTR _v$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L3189 ; Line 192 mov ecx, 65536 ; 00010000H sub ecx, DWORD PTR _aa$[ebp] mov DWORD PTR _aa$[ebp], ecx $L3189: ; Line 194 mov ax, WORD PTR _aa$[ebp] $L3182: ; Line 195 mov esp, ebp pop ebp ret 0 ?FixAsin@@YAGM@Z ENDP ; FixAsin _TEXT ENDS PUBLIC ?FixAcos@@YAGM@Z ; FixAcos _TEXT SEGMENT _v$ = 8 _vv$ = -4 _i$ = -12 _f$ = -8 _aa$ = -16 ?FixAcos@@YAGM@Z PROC NEAR ; FixAcos ; Line 199 push ebp mov ebp, esp sub esp, 16 ; 00000010H ; Line 203 fld DWORD PTR _v$[ebp] sub esp, 8 fstp QWORD PTR [esp] call _fabs add esp, 8 fmul QWORD PTR __real@8@400f8000000000000000 call __ftol mov DWORD PTR _vv$[ebp], eax ; Line 205 cmp DWORD PTR _vv$[ebp], 65536 ; 00010000H jl SHORT $L3198 ; Line 206 xor ax, ax jmp SHORT $L3192 $L3198: ; Line 208 mov eax, DWORD PTR _vv$[ebp] sar eax, 8 and eax, 255 ; 000000ffH mov DWORD PTR _i$[ebp], eax ; Line 209 mov ecx, DWORD PTR _vv$[ebp] and ecx, 255 ; 000000ffH mov DWORD PTR _f$[ebp], ecx ; Line 211 mov edx, DWORD PTR _i$[ebp] xor eax, eax mov ax, WORD PTR ?acos_table@@3PAGA[edx*2] mov DWORD PTR _aa$[ebp], eax ; Line 212 mov ecx, DWORD PTR _i$[ebp] xor edx, edx mov dx, WORD PTR ?acos_table@@3PAGA[ecx*2+2] sub edx, DWORD PTR _aa$[ebp] imul edx, DWORD PTR _f$[ebp] sar edx, 8 mov eax, DWORD PTR _aa$[ebp] add eax, edx mov DWORD PTR _aa$[ebp], eax ; Line 214 fld DWORD PTR _v$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L3199 ; Line 215 mov ecx, 32768 ; 00008000H sub ecx, DWORD PTR _aa$[ebp] mov DWORD PTR _aa$[ebp], ecx $L3199: ; Line 217 mov ax, WORD PTR _aa$[ebp] $L3192: ; Line 218 mov esp, ebp pop ebp ret 0 ?FixAcos@@YAGM@Z ENDP ; FixAcos _TEXT ENDS PUBLIC ?FixAtan2@@YAGMM@Z ; FixAtan2 EXTRN _sqrt:NEAR _TEXT SEGMENT _cos$ = 8 _sin$ = 12 _q$ = -4 _m$ = -12 _t$ = -8 ?FixAtan2@@YAGMM@Z PROC NEAR ; FixAtan2 ; Line 226 push ebp mov ebp, esp sub esp, 20 ; 00000014H ; Line 233 fld DWORD PTR _sin$[ebp] fmul DWORD PTR _sin$[ebp] fld DWORD PTR _cos$[ebp] fmul DWORD PTR _cos$[ebp] faddp ST(1), ST(0) fst DWORD PTR _q$[ebp] ; Line 235 sub esp, 8 fstp QWORD PTR [esp] call _sqrt add esp, 8 fstp DWORD PTR _m$[ebp] ; Line 237 fld DWORD PTR _m$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3207 ; Line 238 xor ax, ax jmp $L3210 $L3207: ; Line 240 fld DWORD PTR _sin$[ebp] sub esp, 8 fstp QWORD PTR [esp] call _fabs fstp QWORD PTR -20+[ebp] add esp, 8 fld DWORD PTR _cos$[ebp] sub esp, 8 fstp QWORD PTR [esp] call _fabs add esp, 8 fcomp QWORD PTR -20+[ebp] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L3208 ; Line 243 fld DWORD PTR _sin$[ebp] fdiv DWORD PTR _m$[ebp] push ecx fstp DWORD PTR [esp] call ?FixAsin@@YAGM@Z ; FixAsin add esp, 4 mov WORD PTR _t$[ebp], ax ; Line 244 fld DWORD PTR _cos$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L3209 ; Line 245 mov eax, DWORD PTR _t$[ebp] and eax, 65535 ; 0000ffffH mov ecx, 32768 ; 00008000H sub ecx, eax mov WORD PTR _t$[ebp], cx $L3209: ; Line 247 mov ax, WORD PTR _t$[ebp] jmp SHORT $L3210 $L3208: ; Line 251 fld DWORD PTR _cos$[ebp] fdiv DWORD PTR _m$[ebp] push ecx fstp DWORD PTR [esp] call ?FixAcos@@YAGM@Z ; FixAcos add esp, 4 mov WORD PTR _t$[ebp], ax ; Line 252 fld DWORD PTR _sin$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L3211 ; Line 253 mov edx, DWORD PTR _t$[ebp] and edx, 65535 ; 0000ffffH mov eax, 65536 ; 00010000H sub eax, edx mov WORD PTR _t$[ebp], ax $L3211: ; Line 255 mov ax, WORD PTR _t$[ebp] $L3210: ; Line 258 mov esp, ebp pop ebp ret 0 ?FixAtan2@@YAGMM@Z ENDP ; FixAtan2 _TEXT ENDS PUBLIC ?FixCeil@@YAJJ@Z ; FixCeil _TEXT SEGMENT _num$ = 8 _int_num$ = -8 _new_num$ = -4 ?FixCeil@@YAJJ@Z PROC NEAR ; FixCeil ; Line 263 push ebp mov ebp, esp sub esp, 8 ; Line 267 mov eax, DWORD PTR _num$[ebp] sar eax, 16 ; 00000010H mov DWORD PTR _int_num$[ebp], eax ; Line 269 mov ecx, DWORD PTR _num$[ebp] and ecx, 65535 ; 0000ffffH test ecx, ecx je SHORT $L3217 ; Line 271 mov edx, DWORD PTR _int_num$[ebp] add edx, 1 shl edx, 16 ; 00000010H mov DWORD PTR _new_num$[ebp], edx ; Line 272 mov eax, DWORD PTR _new_num$[ebp] jmp SHORT $L3214 $L3217: ; Line 275 mov eax, DWORD PTR _int_num$[ebp] shl eax, 16 ; 00000010H mov DWORD PTR _new_num$[ebp], eax ; Line 276 mov eax, DWORD PTR _new_num$[ebp] $L3214: ; Line 277 mov esp, ebp pop ebp ret 0 ?FixCeil@@YAJJ@Z ENDP ; FixCeil _TEXT ENDS PUBLIC ?FixFloor@@YAJJ@Z ; FixFloor _TEXT SEGMENT _num$ = 8 _int_num$ = -4 ?FixFloor@@YAJJ@Z PROC NEAR ; FixFloor ; Line 281 push ebp mov ebp, esp push ecx ; Line 282 mov eax, DWORD PTR _num$[ebp] sar eax, 16 ; 00000010H mov DWORD PTR _int_num$[ebp], eax ; Line 284 mov eax, DWORD PTR _int_num$[ebp] shl eax, 16 ; 00000010H ; Line 285 mov esp, ebp pop ebp ret 0 ?FixFloor@@YAJJ@Z ENDP ; FixFloor _TEXT ENDS PUBLIC ?vm_AverageVector@@YAXPAUvector@@H@Z ; vm_AverageVector _TEXT SEGMENT _a$ = 8 _num$ = 12 ?vm_AverageVector@@YAXPAUvector@@H@Z PROC NEAR ; vm_AverageVector ; Line 477 push ebp mov ebp, esp ; Line 481 fild DWORD PTR _num$[ebp] mov eax, DWORD PTR _a$[ebp] fdivr DWORD PTR [eax] mov ecx, DWORD PTR _a$[ebp] fstp DWORD PTR [ecx] ; Line 482 fild DWORD PTR _num$[ebp] mov edx, DWORD PTR _a$[ebp] fdivr DWORD PTR [edx+4] mov eax, DWORD PTR _a$[ebp] fstp DWORD PTR [eax+4] ; Line 483 fild DWORD PTR _num$[ebp] mov ecx, DWORD PTR _a$[ebp] fdivr DWORD PTR [ecx+8] mov edx, DWORD PTR _a$[ebp] fstp DWORD PTR [edx+8] ; Line 484 pop ebp ret 0 ?vm_AverageVector@@YAXPAUvector@@H@Z ENDP ; vm_AverageVector _TEXT ENDS PUBLIC ?vm_AddVectors@@YAXPAUvector@@00@Z ; vm_AddVectors _TEXT SEGMENT _result$ = 8 _a$ = 12 _b$ = 16 ?vm_AddVectors@@YAXPAUvector@@00@Z PROC NEAR ; vm_AddVectors ; Line 487 push ebp mov ebp, esp ; Line 490 mov eax, DWORD PTR _a$[ebp] mov ecx, DWORD PTR _b$[ebp] fld DWORD PTR [eax] fadd DWORD PTR [ecx] mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx] ; Line 491 mov eax, DWORD PTR _a$[ebp] mov ecx, DWORD PTR _b$[ebp] fld DWORD PTR [eax+4] fadd DWORD PTR [ecx+4] mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx+4] ; Line 492 mov eax, DWORD PTR _a$[ebp] mov ecx, DWORD PTR _b$[ebp] fld DWORD PTR [eax+8] fadd DWORD PTR [ecx+8] mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx+8] ; Line 493 pop ebp ret 0 ?vm_AddVectors@@YAXPAUvector@@00@Z ENDP ; vm_AddVectors _TEXT ENDS PUBLIC ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ; vm_SubVectors _TEXT SEGMENT _result$ = 8 _a$ = 12 _b$ = 16 ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z PROC NEAR ; vm_SubVectors ; Line 497 push ebp mov ebp, esp ; Line 500 mov eax, DWORD PTR _a$[ebp] mov ecx, DWORD PTR _b$[ebp] fld DWORD PTR [eax] fsub DWORD PTR [ecx] mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx] ; Line 501 mov eax, DWORD PTR _a$[ebp] mov ecx, DWORD PTR _b$[ebp] fld DWORD PTR [eax+4] fsub DWORD PTR [ecx+4] mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx+4] ; Line 502 mov eax, DWORD PTR _a$[ebp] mov ecx, DWORD PTR _b$[ebp] fld DWORD PTR [eax+8] fsub DWORD PTR [ecx+8] mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx+8] ; Line 503 pop ebp ret 0 ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ENDP ; vm_SubVectors _TEXT ENDS PUBLIC ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude PUBLIC ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance _TEXT SEGMENT _a$ = 8 _b$ = 12 _dest$ = -12 _dist$ = -16 ?vm_VectorDistance@@YAMPBUvector@@0@Z PROC NEAR ; vm_VectorDistance ; Line 506 push ebp mov ebp, esp sub esp, 16 ; 00000010H ; Line 512 mov eax, DWORD PTR _b$[ebp] push eax mov ecx, DWORD PTR _a$[ebp] push ecx lea edx, DWORD PTR _dest$[ebp] push edx call ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ; vm_SubVectors add esp, 12 ; 0000000cH ; Line 513 lea eax, DWORD PTR _dest$[ebp] push eax call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fst DWORD PTR _dist$[ebp] ; Line 515 mov esp, ebp pop ebp ret 0 ?vm_VectorDistance@@YAMPBUvector@@0@Z ENDP ; vm_VectorDistance _TEXT ENDS PUBLIC ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ; vm_GetMagnitudeFast PUBLIC ?vm_VectorDistanceQuick@@YAMPAUvector@@0@Z ; vm_VectorDistanceQuick _TEXT SEGMENT _a$ = 8 _b$ = 12 _dest$ = -12 _dist$ = -16 ?vm_VectorDistanceQuick@@YAMPAUvector@@0@Z PROC NEAR ; vm_VectorDistanceQuick ; Line 517 push ebp mov ebp, esp sub esp, 16 ; 00000010H ; Line 523 mov eax, DWORD PTR _b$[ebp] push eax mov ecx, DWORD PTR _a$[ebp] push ecx lea edx, DWORD PTR _dest$[ebp] push edx call ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ; vm_SubVectors add esp, 12 ; 0000000cH ; Line 524 lea eax, DWORD PTR _dest$[ebp] push eax call ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ; vm_GetMagnitudeFast add esp, 4 fst DWORD PTR _dist$[ebp] ; Line 526 mov esp, ebp pop ebp ret 0 ?vm_VectorDistanceQuick@@YAMPAUvector@@0@Z ENDP ; vm_VectorDistanceQuick _TEXT ENDS PUBLIC ?vm_CrossProduct@@YAXPAUvector@@00@Z ; vm_CrossProduct PUBLIC ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp _TEXT SEGMENT _n$ = 8 _a$ = 12 _b$ = 16 _c$ = 20 _x$ = -12 _y$ = -24 ?vm_GetPerp@@YAXPAUvector@@000@Z PROC NEAR ; vm_GetPerp ; Line 532 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 538 mov eax, DWORD PTR _a$[ebp] push eax mov ecx, DWORD PTR _b$[ebp] push ecx lea edx, DWORD PTR _x$[ebp] push edx call ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ; vm_SubVectors add esp, 12 ; 0000000cH ; Line 539 mov eax, DWORD PTR _b$[ebp] push eax mov ecx, DWORD PTR _c$[ebp] push ecx lea edx, DWORD PTR _y$[ebp] push edx call ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ; vm_SubVectors add esp, 12 ; 0000000cH ; Line 541 lea eax, DWORD PTR _y$[ebp] push eax lea ecx, DWORD PTR _x$[ebp] push ecx mov edx, DWORD PTR _n$[ebp] push edx call ?vm_CrossProduct@@YAXPAUvector@@00@Z ; vm_CrossProduct add esp, 12 ; 0000000cH ; Line 542 mov esp, ebp pop ebp ret 0 ?vm_GetPerp@@YAXPAUvector@@000@Z ENDP ; vm_GetPerp _TEXT ENDS PUBLIC ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize PUBLIC ?vm_GetNormal@@YAMPAUvector@@000@Z ; vm_GetNormal _TEXT SEGMENT _n$ = 8 _v0$ = 12 _v1$ = 16 _v2$ = 20 ?vm_GetNormal@@YAMPAUvector@@000@Z PROC NEAR ; vm_GetNormal ; Line 550 push ebp mov ebp, esp ; Line 551 mov eax, DWORD PTR _v2$[ebp] push eax mov ecx, DWORD PTR _v1$[ebp] push ecx mov edx, DWORD PTR _v0$[ebp] push edx mov eax, DWORD PTR _n$[ebp] push eax call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 553 mov ecx, DWORD PTR _n$[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 ; Line 554 pop ebp ret 0 ?vm_GetNormal@@YAMPAUvector@@000@Z ENDP ; vm_GetNormal _TEXT ENDS PUBLIC ?vm_DotProduct@@YAMPAUvector@@0@Z ; vm_DotProduct _TEXT SEGMENT _u$ = 8 _v$ = 12 ?vm_DotProduct@@YAMPAUvector@@0@Z PROC NEAR ; vm_DotProduct ; Line 559 push ebp mov ebp, esp ; Line 560 mov eax, DWORD PTR _u$[ebp] mov ecx, DWORD PTR _v$[ebp] fld DWORD PTR [eax] fmul DWORD PTR [ecx] mov edx, DWORD PTR _u$[ebp] mov eax, DWORD PTR _v$[ebp] fld DWORD PTR [edx+4] fmul DWORD PTR [eax+4] faddp ST(1), ST(0) mov ecx, DWORD PTR _u$[ebp] mov edx, DWORD PTR _v$[ebp] fld DWORD PTR [ecx+8] fmul DWORD PTR [edx+8] faddp ST(1), ST(0) ; Line 561 pop ebp ret 0 ?vm_DotProduct@@YAMPAUvector@@0@Z ENDP ; vm_DotProduct _TEXT ENDS PUBLIC ?vm_ScaleVector@@YAXPAUvector@@0M@Z ; vm_ScaleVector _TEXT SEGMENT _d$ = 8 _v$ = 12 _s$ = 16 ?vm_ScaleVector@@YAXPAUvector@@0M@Z PROC NEAR ; vm_ScaleVector ; Line 566 push ebp mov ebp, esp ; Line 567 mov eax, DWORD PTR _v$[ebp] fld DWORD PTR _s$[ebp] fmul DWORD PTR [eax] mov ecx, DWORD PTR _d$[ebp] fstp DWORD PTR [ecx] ; Line 568 mov edx, DWORD PTR _v$[ebp] fld DWORD PTR _s$[ebp] fmul DWORD PTR [edx+4] mov eax, DWORD PTR _d$[ebp] fstp DWORD PTR [eax+4] ; Line 569 mov ecx, DWORD PTR _v$[ebp] fld DWORD PTR _s$[ebp] fmul DWORD PTR [ecx+8] mov edx, DWORD PTR _d$[ebp] fstp DWORD PTR [edx+8] ; Line 570 pop ebp ret 0 ?vm_ScaleVector@@YAXPAUvector@@0M@Z ENDP ; vm_ScaleVector _TEXT ENDS PUBLIC ?vm_ScaleAddVector@@YAXPAUvector@@00M@Z ; vm_ScaleAddVector _TEXT SEGMENT _d$ = 8 _p$ = 12 _v$ = 16 _s$ = 20 ?vm_ScaleAddVector@@YAXPAUvector@@00M@Z PROC NEAR ; vm_ScaleAddVector ; Line 574 push ebp mov ebp, esp ; Line 579 mov eax, DWORD PTR _v$[ebp] fld DWORD PTR _s$[ebp] fmul DWORD PTR [eax] mov ecx, DWORD PTR _p$[ebp] fadd DWORD PTR [ecx] mov edx, DWORD PTR _d$[ebp] fstp DWORD PTR [edx] ; Line 580 mov eax, DWORD PTR _v$[ebp] fld DWORD PTR _s$[ebp] fmul DWORD PTR [eax+4] mov ecx, DWORD PTR _p$[ebp] fadd DWORD PTR [ecx+4] mov edx, DWORD PTR _d$[ebp] fstp DWORD PTR [edx+4] ; Line 581 mov eax, DWORD PTR _v$[ebp] fld DWORD PTR _s$[ebp] fmul DWORD PTR [eax+8] mov ecx, DWORD PTR _p$[ebp] fadd DWORD PTR [ecx+8] mov edx, DWORD PTR _d$[ebp] fstp DWORD PTR [edx+8] ; Line 582 pop ebp ret 0 ?vm_ScaleAddVector@@YAXPAUvector@@00M@Z ENDP ; vm_ScaleAddVector _TEXT ENDS PUBLIC ?vm_DivVector@@YAXPAUvector@@0M@Z ; vm_DivVector _TEXT SEGMENT _dest$ = 8 _src$ = 12 _n$ = 16 ?vm_DivVector@@YAXPAUvector@@0M@Z PROC NEAR ; vm_DivVector ; Line 585 push ebp mov ebp, esp ; Line 592 mov eax, DWORD PTR _src$[ebp] fld DWORD PTR [eax] fdiv DWORD PTR _n$[ebp] mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx] ; Line 593 mov edx, DWORD PTR _src$[ebp] fld DWORD PTR [edx+4] fdiv DWORD PTR _n$[ebp] mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax+4] ; Line 594 mov ecx, DWORD PTR _src$[ebp] fld DWORD PTR [ecx+8] fdiv DWORD PTR _n$[ebp] mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+8] ; Line 595 pop ebp ret 0 ?vm_DivVector@@YAXPAUvector@@0M@Z ENDP ; vm_DivVector _dest$ = 8 _u$ = 12 _v$ = 16 ?vm_CrossProduct@@YAXPAUvector@@00@Z PROC NEAR ; vm_CrossProduct ; Line 598 push ebp mov ebp, esp ; Line 602 mov eax, DWORD PTR _u$[ebp] mov ecx, DWORD PTR _v$[ebp] fld DWORD PTR [eax+4] fmul DWORD PTR [ecx+8] mov edx, DWORD PTR _u$[ebp] mov eax, DWORD PTR _v$[ebp] fld DWORD PTR [edx+8] fmul DWORD PTR [eax+4] fsubp ST(1), ST(0) mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx] ; Line 603 mov edx, DWORD PTR _u$[ebp] mov eax, DWORD PTR _v$[ebp] fld DWORD PTR [edx+8] fmul DWORD PTR [eax] mov ecx, DWORD PTR _u$[ebp] mov edx, DWORD PTR _v$[ebp] fld DWORD PTR [ecx] fmul DWORD PTR [edx+8] fsubp ST(1), ST(0) mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax+4] ; Line 604 mov ecx, DWORD PTR _u$[ebp] mov edx, DWORD PTR _v$[ebp] fld DWORD PTR [ecx] fmul DWORD PTR [edx+4] mov eax, DWORD PTR _u$[ebp] mov ecx, DWORD PTR _v$[ebp] fld DWORD PTR [eax+4] fmul DWORD PTR [ecx] fsubp ST(1), ST(0) mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+8] ; Line 605 pop ebp ret 0 ?vm_CrossProduct@@YAXPAUvector@@00@Z ENDP ; vm_CrossProduct _TEXT ENDS PUBLIC ??_0@YA?AUvector@@AAU0@M@Z ; operator/= _TEXT SEGMENT $T10501 = -16 $T10502 = -28 _a$ = 8 _mag$ = -4 ?vm_VectorNormalize@@YAMPAUvector@@@Z PROC NEAR ; vm_VectorNormalize ; Line 610 push ebp mov ebp, esp sub esp, 28 ; 0000001cH ; Line 613 mov eax, DWORD PTR _a$[ebp] push eax call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fstp DWORD PTR _mag$[ebp] ; Line 615 fld DWORD PTR _mag$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L3474 ; Line 616 mov ecx, DWORD PTR _mag$[ebp] push ecx mov edx, DWORD PTR _a$[ebp] push edx lea eax, DWORD PTR $T10502[ebp] push eax call ??_0@YA?AUvector@@AAU0@M@Z ; operator/= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10501[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10501[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10501[ebp+8], eax ; Line 617 jmp SHORT $L3476 $L3474: ; Line 619 mov ecx, DWORD PTR _a$[ebp] mov edx, DWORD PTR _Zero_vector mov DWORD PTR [ecx], edx mov eax, DWORD PTR _Zero_vector+4 mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _Zero_vector+8 mov DWORD PTR [ecx+8], edx ; Line 620 mov eax, DWORD PTR _a$[ebp] mov DWORD PTR [eax], 1065353216 ; 3f800000H ; Line 621 mov DWORD PTR _mag$[ebp], 0 $L3476: ; Line 624 fld DWORD PTR _mag$[ebp] ; Line 625 mov esp, ebp pop ebp ret 0 ?vm_VectorNormalize@@YAMPAUvector@@@Z ENDP ; vm_VectorNormalize _TEXT ENDS PUBLIC ??K@YA?AUvector@@U0@M@Z ; operator/ ; COMDAT ??_0@YA?AUvector@@AAU0@M@Z _TEXT SEGMENT $T10504 = 8 $T10505 = -12 $T10506 = -24 _src$ = 12 _n$ = 16 ??_0@YA?AUvector@@AAU0@M@Z PROC NEAR ; operator/=, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 235 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 236 mov eax, DWORD PTR _n$[ebp] push eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _src$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10506[ebp] push edx call ??K@YA?AUvector@@U0@M@Z ; operator/ add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10505[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10505[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10505[ebp+8], eax mov ecx, DWORD PTR _src$[ebp] mov edx, DWORD PTR $T10505[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10505[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10505[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR $T10504[ebp] mov ecx, DWORD PTR $T10505[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T10505[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T10505[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10504[ebp] ; Line 237 mov esp, ebp pop ebp ret 0 ??_0@YA?AUvector@@AAU0@M@Z ENDP ; operator/= _TEXT ENDS ; COMDAT ??K@YA?AUvector@@U0@M@Z _TEXT SEGMENT _src$ = 12 $T10508 = 8 _n$ = 24 ??K@YA?AUvector@@U0@M@Z PROC NEAR ; operator/, COMDAT ; Line 225 push ebp mov ebp, esp ; Line 226 fld DWORD PTR _src$[ebp] fdiv DWORD PTR _n$[ebp] fstp DWORD PTR _src$[ebp] ; Line 227 fld DWORD PTR _src$[ebp+4] fdiv DWORD PTR _n$[ebp] fstp DWORD PTR _src$[ebp+4] ; Line 228 fld DWORD PTR _src$[ebp+8] fdiv DWORD PTR _n$[ebp] fstp DWORD PTR _src$[ebp+8] ; Line 230 mov eax, DWORD PTR $T10508[ebp] mov ecx, DWORD PTR _src$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _src$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _src$[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10508[ebp] ; Line 231 pop ebp ret 0 ??K@YA?AUvector@@U0@M@Z ENDP ; operator/ _TEXT ENDS _TEXT SEGMENT _a$ = 8 _f$ = -4 ?vm_GetMagnitude@@YAMPAUvector@@@Z PROC NEAR ; vm_GetMagnitude ; File osiris_vector.h ; Line 628 push ebp mov ebp, esp sub esp, 8 ; Line 631 mov eax, DWORD PTR _a$[ebp] mov ecx, DWORD PTR _a$[ebp] fld DWORD PTR [eax] fmul DWORD PTR [ecx] mov edx, DWORD PTR _a$[ebp] mov eax, DWORD PTR _a$[ebp] fld DWORD PTR [edx+4] fmul DWORD PTR [eax+4] faddp ST(1), ST(0) mov ecx, DWORD PTR _a$[ebp] mov edx, DWORD PTR _a$[ebp] fld DWORD PTR [ecx+8] fmul DWORD PTR [edx+8] faddp ST(1), ST(0) fst DWORD PTR _f$[ebp] ; Line 633 sub esp, 8 fstp QWORD PTR [esp] call _sqrt add esp, 8 fst DWORD PTR -8+[ebp] ; Line 634 mov esp, ebp pop ebp ret 0 ?vm_GetMagnitude@@YAMPAUvector@@@Z ENDP ; vm_GetMagnitude _TEXT ENDS PUBLIC ?vm_ClearMatrix@@YAXPAUmatrix@@@Z ; vm_ClearMatrix EXTRN _memset:NEAR _TEXT SEGMENT _dest$ = 8 ?vm_ClearMatrix@@YAXPAUmatrix@@@Z PROC NEAR ; vm_ClearMatrix ; Line 637 push ebp mov ebp, esp ; Line 638 push 36 ; 00000024H push 0 mov eax, DWORD PTR _dest$[ebp] push eax call _memset add esp, 12 ; 0000000cH ; Line 639 pop ebp ret 0 ?vm_ClearMatrix@@YAXPAUmatrix@@@Z ENDP ; vm_ClearMatrix _TEXT ENDS PUBLIC ?vm_MakeIdentity@@YAXPAUmatrix@@@Z ; vm_MakeIdentity _TEXT SEGMENT _dest$ = 8 ?vm_MakeIdentity@@YAXPAUmatrix@@@Z PROC NEAR ; vm_MakeIdentity ; Line 642 push ebp mov ebp, esp ; Line 643 push 36 ; 00000024H push 0 mov eax, DWORD PTR _dest$[ebp] push eax call _memset add esp, 12 ; 0000000cH ; Line 644 mov ecx, DWORD PTR _dest$[ebp] mov DWORD PTR [ecx+32], 1065353216 ; 3f800000H mov edx, DWORD PTR _dest$[ebp] mov DWORD PTR [edx+16], 1065353216 ; 3f800000H mov eax, DWORD PTR _dest$[ebp] mov DWORD PTR [eax], 1065353216 ; 3f800000H ; Line 645 pop ebp ret 0 ?vm_MakeIdentity@@YAXPAUmatrix@@@Z ENDP ; vm_MakeIdentity _TEXT ENDS PUBLIC ?vm_MakeInverseMatrix@@YAXPAUmatrix@@@Z ; vm_MakeInverseMatrix _TEXT SEGMENT _dest$ = 8 ?vm_MakeInverseMatrix@@YAXPAUmatrix@@@Z PROC NEAR ; vm_MakeInverseMatrix ; Line 647 push ebp mov ebp, esp ; Line 648 push 36 ; 00000024H push 0 mov eax, DWORD PTR _dest$[ebp] push eax call _memset add esp, 12 ; 0000000cH ; Line 649 mov ecx, DWORD PTR _dest$[ebp] mov DWORD PTR [ecx+32], -1082130432 ; bf800000H mov edx, DWORD PTR _dest$[ebp] mov DWORD PTR [edx+16], -1082130432 ; bf800000H mov eax, DWORD PTR _dest$[ebp] mov DWORD PTR [eax], -1082130432 ; bf800000H ; Line 650 pop ebp ret 0 ?vm_MakeInverseMatrix@@YAXPAUmatrix@@@Z ENDP ; vm_MakeInverseMatrix _TEXT ENDS PUBLIC ?vm_TransposeMatrix@@YAXPAUmatrix@@@Z ; vm_TransposeMatrix _TEXT SEGMENT _m$ = 8 _t$ = -4 ?vm_TransposeMatrix@@YAXPAUmatrix@@@Z PROC NEAR ; vm_TransposeMatrix ; Line 653 push ebp mov ebp, esp push ecx ; Line 658 mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR [eax+12] mov DWORD PTR _t$[ebp], ecx mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+12], ecx mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR _t$[ebp] mov DWORD PTR [edx+4], eax ; Line 659 mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR [ecx+24] mov DWORD PTR _t$[ebp], edx mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR [ecx+8] mov DWORD PTR [eax+24], edx mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR _t$[ebp] mov DWORD PTR [eax+8], ecx ; Line 660 mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR [edx+28] mov DWORD PTR _t$[ebp], eax mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR [edx+20] mov DWORD PTR [ecx+28], eax mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR _t$[ebp] mov DWORD PTR [ecx+20], edx ; Line 662 mov esp, ebp pop ebp ret 0 ?vm_TransposeMatrix@@YAXPAUmatrix@@@Z ENDP ; vm_TransposeMatrix _TEXT ENDS PUBLIC ?vm_MatrixMulVector@@YAXPAUvector@@0PAUmatrix@@@Z ; vm_MatrixMulVector PUBLIC ??D@YAMUvector@@0@Z ; operator* _TEXT SEGMENT _result$ = 8 _v$ = 12 _m$ = 16 ?vm_MatrixMulVector@@YAXPAUvector@@0PAUmatrix@@@Z PROC NEAR ; vm_MatrixMulVector ; Line 665 push ebp mov ebp, esp ; Line 670 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _m$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _v$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx] ; Line 671 mov eax, DWORD PTR _m$[ebp] add eax, 12 ; 0000000cH sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _v$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx+4] ; Line 672 mov eax, DWORD PTR _m$[ebp] add eax, 24 ; 00000018H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _v$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx+8] ; Line 673 pop ebp ret 0 ?vm_MatrixMulVector@@YAXPAUvector@@0PAUmatrix@@@Z ENDP ; vm_MatrixMulVector _TEXT ENDS ; COMDAT ??D@YAMUvector@@0@Z _TEXT SEGMENT _u$ = 8 _v$ = 20 ??D@YAMUvector@@0@Z PROC NEAR ; operator*, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 175 push ebp mov ebp, esp ; Line 176 fld DWORD PTR _u$[ebp] fmul DWORD PTR _v$[ebp] fld DWORD PTR _u$[ebp+4] fmul DWORD PTR _v$[ebp+4] faddp ST(1), ST(0) fld DWORD PTR _u$[ebp+8] fmul DWORD PTR _v$[ebp+8] faddp ST(1), ST(0) ; Line 177 pop ebp ret 0 ??D@YAMUvector@@0@Z ENDP ; operator* _TEXT ENDS PUBLIC ?vm_VectorMulTMatrix@@YAXPAUvector@@0PAUmatrix@@@Z ; vm_VectorMulTMatrix PUBLIC ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector _TEXT SEGMENT _result$ = 8 _v$ = 12 _m$ = 16 ?vm_VectorMulTMatrix@@YAXPAUvector@@0PAUmatrix@@@Z PROC NEAR ; vm_VectorMulTMatrix ; File osiris_vector.h ; Line 677 push ebp mov ebp, esp ; Line 680 mov eax, DWORD PTR _v$[ebp] push eax mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR [ecx+24] push edx mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR [eax+12] push ecx mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR [edx] push eax call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov ecx, DWORD PTR _result$[ebp] fstp DWORD PTR [ecx] ; Line 681 mov edx, DWORD PTR _v$[ebp] push edx mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR [edx+16] push eax mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR [ecx+4] push edx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov eax, DWORD PTR _result$[ebp] fstp DWORD PTR [eax+4] ; Line 682 mov ecx, DWORD PTR _v$[ebp] push ecx mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR [edx+32] push eax mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR [eax+8] push ecx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov edx, DWORD PTR _result$[ebp] fstp DWORD PTR [edx+8] ; Line 683 pop ebp ret 0 ?vm_VectorMulTMatrix@@YAXPAUvector@@0PAUmatrix@@@Z ENDP ; vm_VectorMulTMatrix _TEXT ENDS ; COMDAT ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z _TEXT SEGMENT _x$ = 8 _y$ = 12 _z$ = 16 _v$ = 20 ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z PROC NEAR ; vm_Dot3Vector, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 301 push ebp mov ebp, esp ; Line 302 mov eax, DWORD PTR _v$[ebp] fld DWORD PTR _x$[ebp] fmul DWORD PTR [eax] mov ecx, DWORD PTR _v$[ebp] fld DWORD PTR _y$[ebp] fmul DWORD PTR [ecx+4] faddp ST(1), ST(0) mov edx, DWORD PTR _v$[ebp] fld DWORD PTR _z$[ebp] fmul DWORD PTR [edx+8] faddp ST(1), ST(0) ; Line 303 pop ebp ret 0 ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ENDP ; vm_Dot3Vector _TEXT ENDS PUBLIC ?vm_MatrixMul@@YAXPAUmatrix@@00@Z ; vm_MatrixMul _TEXT SEGMENT _dest$ = 8 _src0$ = 12 _src1$ = 16 ?vm_MatrixMul@@YAXPAUmatrix@@00@Z PROC NEAR ; vm_MatrixMul ; File osiris_vector.h ; Line 686 push ebp mov ebp, esp ; Line 691 mov eax, DWORD PTR _src1$[ebp] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+24] push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+12] push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx] push eax call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx] ; Line 692 mov edx, DWORD PTR _src1$[ebp] add edx, 12 ; 0000000cH push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+24] push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+12] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx] push edx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax+12] ; Line 693 mov ecx, DWORD PTR _src1$[ebp] add ecx, 24 ; 00000018H push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+24] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+12] push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax] push ecx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+24] ; Line 695 mov eax, DWORD PTR _src1$[ebp] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+28] push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+16] push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+4] push eax call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx+4] ; Line 696 mov edx, DWORD PTR _src1$[ebp] add edx, 12 ; 0000000cH push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+16] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+4] push edx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax+16] ; Line 697 mov ecx, DWORD PTR _src1$[ebp] add ecx, 24 ; 00000018H push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+28] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+16] push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+4] push ecx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+28] ; Line 699 mov eax, DWORD PTR _src1$[ebp] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+32] push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+8] push eax call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx+8] ; Line 700 mov edx, DWORD PTR _src1$[ebp] add edx, 12 ; 0000000cH push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+32] push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+20] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+8] push edx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax+20] ; Line 701 mov ecx, DWORD PTR _src1$[ebp] add ecx, 24 ; 00000018H push ecx mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR [edx+32] push eax mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR [eax+8] push ecx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+32] ; Line 702 pop ebp ret 0 ?vm_MatrixMul@@YAXPAUmatrix@@00@Z ENDP ; vm_MatrixMul _TEXT ENDS PUBLIC ?vm_MatrixMulTMatrix@@YAXPAUmatrix@@00@Z ; vm_MatrixMulTMatrix _TEXT SEGMENT _dest$ = 8 _src0$ = 12 _src1$ = 16 ?vm_MatrixMulTMatrix@@YAXPAUmatrix@@00@Z PROC NEAR ; vm_MatrixMulTMatrix ; Line 706 push ebp mov ebp, esp ; Line 711 mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax] fmul DWORD PTR [ecx] mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+12] fmul DWORD PTR [eax+12] faddp ST(1), ST(0) mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+24] fmul DWORD PTR [edx+24] faddp ST(1), ST(0) mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax] ; Line 712 mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx] fmul DWORD PTR [edx+4] mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+12] fmul DWORD PTR [ecx+16] faddp ST(1), ST(0) mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+24] fmul DWORD PTR [eax+28] faddp ST(1), ST(0) mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx+12] ; Line 713 mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx] fmul DWORD PTR [eax+8] mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+12] fmul DWORD PTR [edx+20] faddp ST(1), ST(0) mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+24] fmul DWORD PTR [ecx+32] faddp ST(1), ST(0) mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+24] ; Line 715 mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+4] fmul DWORD PTR [ecx] mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+16] fmul DWORD PTR [eax+12] faddp ST(1), ST(0) mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+28] fmul DWORD PTR [edx+24] faddp ST(1), ST(0) mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax+4] ; Line 716 mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+4] fmul DWORD PTR [edx+4] mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+16] fmul DWORD PTR [ecx+16] faddp ST(1), ST(0) mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+28] fmul DWORD PTR [eax+28] faddp ST(1), ST(0) mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx+16] ; Line 717 mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+4] fmul DWORD PTR [eax+8] mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+16] fmul DWORD PTR [edx+20] faddp ST(1), ST(0) mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+28] fmul DWORD PTR [ecx+32] faddp ST(1), ST(0) mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+28] ; Line 719 mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+8] fmul DWORD PTR [ecx] mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+20] fmul DWORD PTR [eax+12] faddp ST(1), ST(0) mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+32] fmul DWORD PTR [edx+24] faddp ST(1), ST(0) mov eax, DWORD PTR _dest$[ebp] fstp DWORD PTR [eax+8] ; Line 720 mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+8] fmul DWORD PTR [edx+4] mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+20] fmul DWORD PTR [ecx+16] faddp ST(1), ST(0) mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+32] fmul DWORD PTR [eax+28] faddp ST(1), ST(0) mov ecx, DWORD PTR _dest$[ebp] fstp DWORD PTR [ecx+20] ; Line 721 mov edx, DWORD PTR _src0$[ebp] mov eax, DWORD PTR _src1$[ebp] fld DWORD PTR [edx+8] fmul DWORD PTR [eax+8] mov ecx, DWORD PTR _src0$[ebp] mov edx, DWORD PTR _src1$[ebp] fld DWORD PTR [ecx+20] fmul DWORD PTR [edx+20] faddp ST(1), ST(0) mov eax, DWORD PTR _src0$[ebp] mov ecx, DWORD PTR _src1$[ebp] fld DWORD PTR [eax+32] fmul DWORD PTR [ecx+32] faddp ST(1), ST(0) mov edx, DWORD PTR _dest$[ebp] fstp DWORD PTR [edx+32] ; Line 722 pop ebp ret 0 ?vm_MatrixMulTMatrix@@YAXPAUmatrix@@00@Z ENDP ; vm_MatrixMulTMatrix _TEXT ENDS PUBLIC ??D@YA?AUmatrix@@U0@0@Z ; operator* _TEXT SEGMENT $T10521 = 8 _src0$ = 12 _src1$ = 48 _dest$ = -36 ??D@YA?AUmatrix@@U0@0@Z PROC NEAR ; operator* ; Line 725 push ebp mov ebp, esp sub esp, 36 ; 00000024H push esi push edi ; Line 729 lea eax, DWORD PTR _src1$[ebp] push eax mov ecx, DWORD PTR _src0$[ebp+24] push ecx mov edx, DWORD PTR _src0$[ebp+12] push edx mov eax, DWORD PTR _src0$[ebp] push eax call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp] ; Line 730 lea ecx, DWORD PTR _src1$[ebp+12] push ecx mov edx, DWORD PTR _src0$[ebp+24] push edx mov eax, DWORD PTR _src0$[ebp+12] push eax mov ecx, DWORD PTR _src0$[ebp] push ecx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+12] ; Line 731 lea edx, DWORD PTR _src1$[ebp+24] push edx mov eax, DWORD PTR _src0$[ebp+24] push eax mov ecx, DWORD PTR _src0$[ebp+12] push ecx mov edx, DWORD PTR _src0$[ebp] push edx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+24] ; Line 733 lea eax, DWORD PTR _src1$[ebp] push eax mov ecx, DWORD PTR _src0$[ebp+28] push ecx mov edx, DWORD PTR _src0$[ebp+16] push edx mov eax, DWORD PTR _src0$[ebp+4] push eax call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+4] ; Line 734 lea ecx, DWORD PTR _src1$[ebp+12] push ecx mov edx, DWORD PTR _src0$[ebp+28] push edx mov eax, DWORD PTR _src0$[ebp+16] push eax mov ecx, DWORD PTR _src0$[ebp+4] push ecx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+16] ; Line 735 lea edx, DWORD PTR _src1$[ebp+24] push edx mov eax, DWORD PTR _src0$[ebp+28] push eax mov ecx, DWORD PTR _src0$[ebp+16] push ecx mov edx, DWORD PTR _src0$[ebp+4] push edx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+28] ; Line 737 lea eax, DWORD PTR _src1$[ebp] push eax mov ecx, DWORD PTR _src0$[ebp+32] push ecx mov edx, DWORD PTR _src0$[ebp+20] push edx mov eax, DWORD PTR _src0$[ebp+8] push eax call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+8] ; Line 738 lea ecx, DWORD PTR _src1$[ebp+12] push ecx mov edx, DWORD PTR _src0$[ebp+32] push edx mov eax, DWORD PTR _src0$[ebp+20] push eax mov ecx, DWORD PTR _src0$[ebp+8] push ecx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+20] ; Line 739 lea edx, DWORD PTR _src1$[ebp+24] push edx mov eax, DWORD PTR _src0$[ebp+32] push eax mov ecx, DWORD PTR _src0$[ebp+20] push ecx mov edx, DWORD PTR _src0$[ebp+8] push edx call ?vm_Dot3Vector@@YAMMMMPAUvector@@@Z ; vm_Dot3Vector add esp, 16 ; 00000010H fstp DWORD PTR _dest$[ebp+32] ; Line 741 mov ecx, 9 lea esi, DWORD PTR _dest$[ebp] mov edi, DWORD PTR $T10521[ebp] rep movsd mov eax, DWORD PTR $T10521[ebp] ; Line 742 pop edi pop esi mov esp, ebp pop ebp ret 0 ??D@YA?AUmatrix@@U0@0@Z ENDP ; operator* _TEXT ENDS PUBLIC ??X@YA?AUmatrix@@AAU0@U0@@Z ; operator*= _TEXT SEGMENT $T10523 = 8 $T10524 = -36 $T10525 = -72 _src0$ = 12 _src1$ = 16 ??X@YA?AUmatrix@@AAU0@U0@@Z PROC NEAR ; operator*= ; Line 745 push ebp mov ebp, esp sub esp, 72 ; 00000048H push esi push edi ; Line 746 sub esp, 36 ; 00000024H mov ecx, 9 lea esi, DWORD PTR _src1$[ebp] mov edi, esp rep movsd sub esp, 36 ; 00000024H mov ecx, 9 mov esi, DWORD PTR _src0$[ebp] mov edi, esp rep movsd lea eax, DWORD PTR $T10525[ebp] push eax call ??D@YA?AUmatrix@@U0@0@Z ; operator* add esp, 76 ; 0000004cH mov esi, eax mov ecx, 9 lea edi, DWORD PTR $T10524[ebp] rep movsd mov ecx, 9 lea esi, DWORD PTR $T10524[ebp] mov edi, DWORD PTR _src0$[ebp] rep movsd mov ecx, 9 lea esi, DWORD PTR $T10524[ebp] mov edi, DWORD PTR $T10523[ebp] rep movsd mov eax, DWORD PTR $T10523[ebp] ; Line 747 pop edi pop esi mov esp, ebp pop ebp ret 0 ??X@YA?AUmatrix@@AAU0@U0@@Z ENDP ; operator*= _TEXT ENDS PUBLIC ?vm_GetNormalizedDir@@YAMPAUvector@@00@Z ; vm_GetNormalizedDir _TEXT SEGMENT _dest$ = 8 _end$ = 12 _start$ = 16 ?vm_GetNormalizedDir@@YAMPAUvector@@00@Z PROC NEAR ; vm_GetNormalizedDir ; Line 754 push ebp mov ebp, esp ; Line 755 mov eax, DWORD PTR _start$[ebp] push eax mov ecx, DWORD PTR _end$[ebp] push ecx mov edx, DWORD PTR _dest$[ebp] push edx call ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ; vm_SubVectors add esp, 12 ; 0000000cH ; Line 756 mov eax, DWORD PTR _dest$[ebp] push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 ; Line 757 pop ebp ret 0 ?vm_GetNormalizedDir@@YAMPAUvector@@00@Z ENDP ; vm_GetNormalizedDir _TEXT ENDS PUBLIC ?vm_VectorNormalizeFast@@YAMPAUvector@@@Z ; vm_VectorNormalizeFast PUBLIC ?vm_GetNormalizedDirFast@@YAMPAUvector@@00@Z ; vm_GetNormalizedDirFast _TEXT SEGMENT _dest$ = 8 _end$ = 12 _start$ = 16 ?vm_GetNormalizedDirFast@@YAMPAUvector@@00@Z PROC NEAR ; vm_GetNormalizedDirFast ; Line 765 push ebp mov ebp, esp ; Line 766 mov eax, DWORD PTR _start$[ebp] push eax mov ecx, DWORD PTR _end$[ebp] push ecx mov edx, DWORD PTR _dest$[ebp] push edx call ?vm_SubVectors@@YAXPAUvector@@PBU1@1@Z ; vm_SubVectors add esp, 12 ; 0000000cH ; Line 767 mov eax, DWORD PTR _dest$[ebp] push eax call ?vm_VectorNormalizeFast@@YAMPAUvector@@@Z ; vm_VectorNormalizeFast add esp, 4 ; Line 768 pop ebp ret 0 ?vm_GetNormalizedDirFast@@YAMPAUvector@@00@Z ENDP ; vm_GetNormalizedDirFast _TEXT ENDS PUBLIC __real@4@40018000000000000000 PUBLIC __real@4@40028000000000000000 PUBLIC __real@4@40008000000000000000 ; COMDAT __real@4@40018000000000000000 ; File osiris_vector.h CONST SEGMENT __real@4@40018000000000000000 DD 040800000r ; 4 CONST ENDS ; COMDAT __real@4@40028000000000000000 CONST SEGMENT __real@4@40028000000000000000 DD 041000000r ; 8 CONST ENDS ; COMDAT __real@4@40008000000000000000 CONST SEGMENT __real@4@40008000000000000000 DD 040000000r ; 2 CONST ENDS _TEXT SEGMENT _v$ = 8 _a$ = -8 _b$ = -12 _c$ = -16 _bc$ = -4 _t$3546 = -20 _t$3548 = -24 _t$3550 = -28 ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z PROC NEAR ; vm_GetMagnitudeFast ; File osiris_vector.h ; Line 771 push ebp mov ebp, esp sub esp, 28 ; 0000001cH ; Line 774 mov eax, DWORD PTR _v$[ebp] fld DWORD PTR [eax] sub esp, 8 fstp QWORD PTR [esp] call _fabs add esp, 8 fstp DWORD PTR _a$[ebp] ; Line 775 mov ecx, DWORD PTR _v$[ebp] fld DWORD PTR [ecx+4] sub esp, 8 fstp QWORD PTR [esp] call _fabs add esp, 8 fstp DWORD PTR _b$[ebp] ; Line 776 mov edx, DWORD PTR _v$[ebp] fld DWORD PTR [edx+8] sub esp, 8 fstp QWORD PTR [esp] call _fabs add esp, 8 fstp DWORD PTR _c$[ebp] ; Line 778 fld DWORD PTR _a$[ebp] fcomp DWORD PTR _b$[ebp] fnstsw ax test ah, 1 je SHORT $L3545 ; Line 779 mov eax, DWORD PTR _a$[ebp] mov DWORD PTR _t$3546[ebp], eax mov ecx, DWORD PTR _b$[ebp] mov DWORD PTR _a$[ebp], ecx mov edx, DWORD PTR _t$3546[ebp] mov DWORD PTR _b$[ebp], edx $L3545: ; Line 782 fld DWORD PTR _b$[ebp] fcomp DWORD PTR _c$[ebp] fnstsw ax test ah, 1 je SHORT $L3549 ; Line 783 mov eax, DWORD PTR _b$[ebp] mov DWORD PTR _t$3548[ebp], eax mov ecx, DWORD PTR _c$[ebp] mov DWORD PTR _b$[ebp], ecx mov edx, DWORD PTR _t$3548[ebp] mov DWORD PTR _c$[ebp], edx ; Line 785 fld DWORD PTR _a$[ebp] fcomp DWORD PTR _b$[ebp] fnstsw ax test ah, 1 je SHORT $L3549 ; Line 786 mov eax, DWORD PTR _a$[ebp] mov DWORD PTR _t$3550[ebp], eax mov ecx, DWORD PTR _b$[ebp] mov DWORD PTR _a$[ebp], ecx mov edx, DWORD PTR _t$3550[ebp] mov DWORD PTR _b$[ebp], edx $L3549: ; Line 790 fld DWORD PTR _b$[ebp] fdiv DWORD PTR __real@4@40018000000000000000 fld DWORD PTR _c$[ebp] fdiv DWORD PTR __real@4@40028000000000000000 faddp ST(1), ST(0) fstp DWORD PTR _bc$[ebp] ; Line 792 fld DWORD PTR _a$[ebp] fadd DWORD PTR _bc$[ebp] fld DWORD PTR _bc$[ebp] fdiv DWORD PTR __real@4@40008000000000000000 faddp ST(1), ST(0) ; Line 793 mov esp, ebp pop ebp ret 0 ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ENDP ; vm_GetMagnitudeFast _TEXT ENDS PUBLIC __real@8@00000000000000000000 ; COMDAT __real@8@00000000000000000000 ; File osiris_vector.h CONST SEGMENT __real@8@00000000000000000000 DQ 00000000000000000r ; 0 CONST ENDS _TEXT SEGMENT _a$ = 8 _mag$ = -4 ?vm_VectorNormalizeFast@@YAMPAUvector@@@Z PROC NEAR ; vm_VectorNormalizeFast ; File osiris_vector.h ; Line 799 push ebp mov ebp, esp push ecx ; Line 802 mov eax, DWORD PTR _a$[ebp] push eax call ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ; vm_GetMagnitudeFast add esp, 4 fstp DWORD PTR _mag$[ebp] ; Line 804 fld DWORD PTR _mag$[ebp] fcomp QWORD PTR __real@8@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3555 ; Line 806 mov ecx, DWORD PTR _a$[ebp] mov DWORD PTR [ecx+8], 0 mov edx, DWORD PTR _a$[ebp] mov DWORD PTR [edx+4], 0 mov eax, DWORD PTR _a$[ebp] mov DWORD PTR [eax], 0 ; Line 807 fld DWORD PTR __real@4@00000000000000000000 jmp SHORT $L3553 $L3555: ; Line 810 mov ecx, DWORD PTR _a$[ebp] fld DWORD PTR [ecx] fdiv DWORD PTR _mag$[ebp] mov edx, DWORD PTR _a$[ebp] fstp DWORD PTR [edx] ; Line 811 mov eax, DWORD PTR _a$[ebp] fld DWORD PTR [eax+4] fdiv DWORD PTR _mag$[ebp] mov ecx, DWORD PTR _a$[ebp] fstp DWORD PTR [ecx+4] ; Line 812 mov edx, DWORD PTR _a$[ebp] fld DWORD PTR [edx+8] fdiv DWORD PTR _mag$[ebp] mov eax, DWORD PTR _a$[ebp] fstp DWORD PTR [eax+8] ; Line 814 fld DWORD PTR _mag$[ebp] $L3553: ; Line 815 mov esp, ebp pop ebp ret 0 ?vm_VectorNormalizeFast@@YAMPAUvector@@@Z ENDP ; vm_VectorNormalizeFast _TEXT ENDS PUBLIC ??G@YA?AUvector@@U0@0@Z ; operator- PUBLIC ?vm_DistToPlane@@YAMPAUvector@@00@Z ; vm_DistToPlane _TEXT SEGMENT $T10539 = -24 $T10540 = -36 _checkp$ = 8 _norm$ = 12 _planep$ = 16 _t$ = -12 ?vm_DistToPlane@@YAMPAUvector@@00@Z PROC NEAR ; vm_DistToPlane ; Line 823 push ebp mov ebp, esp sub esp, 36 ; 00000024H ; Line 826 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _planep$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _checkp$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10540[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10539[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10539[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10539[ebp+8], eax mov ecx, DWORD PTR $T10539[ebp] mov DWORD PTR _t$[ebp], ecx mov edx, DWORD PTR $T10539[ebp+4] mov DWORD PTR _t$[ebp+4], edx mov eax, DWORD PTR $T10539[ebp+8] mov DWORD PTR _t$[ebp+8], eax ; Line 828 sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _norm$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR _t$[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _t$[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _t$[ebp+8] mov DWORD PTR [edx+8], eax call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H ; Line 830 mov esp, ebp pop ebp ret 0 ?vm_DistToPlane@@YAMPAUvector@@00@Z ENDP ; vm_DistToPlane _TEXT ENDS ; COMDAT ??G@YA?AUvector@@U0@0@Z _TEXT SEGMENT _a$ = 12 _b$ = 24 $T10542 = 8 ??G@YA?AUvector@@U0@0@Z PROC NEAR ; operator-, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 139 push ebp mov ebp, esp ; Line 142 fld DWORD PTR _a$[ebp] fsub DWORD PTR _b$[ebp] fstp DWORD PTR _a$[ebp] ; Line 143 fld DWORD PTR _a$[ebp+4] fsub DWORD PTR _b$[ebp+4] fstp DWORD PTR _a$[ebp+4] ; Line 144 fld DWORD PTR _a$[ebp+8] fsub DWORD PTR _b$[ebp+8] fstp DWORD PTR _a$[ebp+8] ; Line 146 mov eax, DWORD PTR $T10542[ebp] mov ecx, DWORD PTR _a$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _a$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _a$[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10542[ebp] ; Line 147 pop ebp ret 0 ??G@YA?AUvector@@U0@0@Z ENDP ; operator- _TEXT ENDS PUBLIC ?vm_GetSlope@@YAMMMMM@Z ; vm_GetSlope _TEXT SEGMENT _x1$ = 8 _y1$ = 12 _x2$ = 16 _y2$ = 20 _r$ = -4 ?vm_GetSlope@@YAMMMMM@Z PROC NEAR ; vm_GetSlope ; File osiris_vector.h ; Line 833 push ebp mov ebp, esp push ecx ; Line 837 fld DWORD PTR _y2$[ebp] fsub DWORD PTR _y1$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3570 ; Line 838 fld DWORD PTR __real@4@00000000000000000000 jmp SHORT $L3568 $L3570: ; Line 840 fld DWORD PTR _x2$[ebp] fsub DWORD PTR _x1$[ebp] fld DWORD PTR _y2$[ebp] fsub DWORD PTR _y1$[ebp] fdivp ST(1), ST(0) fst DWORD PTR _r$[ebp] $L3568: ; Line 843 mov esp, ebp pop ebp ret 0 ?vm_GetSlope@@YAMMMMM@Z ENDP ; vm_GetSlope _TEXT ENDS PUBLIC ?vm_SinCosToMatrix@@YAXPAUmatrix@@MMMMMM@Z ; vm_SinCosToMatrix _TEXT SEGMENT _m$ = 8 _sinp$ = 12 _cosp$ = 16 _sinb$ = 20 _cosb$ = 24 _sinh$ = 28 _cosh$ = 32 _sbsh$ = -16 _cbch$ = -8 _cbsh$ = -12 _sbch$ = -4 ?vm_SinCosToMatrix@@YAXPAUmatrix@@MMMMMM@Z PROC NEAR ; vm_SinCosToMatrix ; Line 846 push ebp mov ebp, esp sub esp, 16 ; 00000010H ; Line 849 fld DWORD PTR _sinb$[ebp] fmul DWORD PTR _sinh$[ebp] fstp DWORD PTR _sbsh$[ebp] ; Line 850 fld DWORD PTR _cosb$[ebp] fmul DWORD PTR _cosh$[ebp] fstp DWORD PTR _cbch$[ebp] ; Line 851 fld DWORD PTR _cosb$[ebp] fmul DWORD PTR _sinh$[ebp] fstp DWORD PTR _cbsh$[ebp] ; Line 852 fld DWORD PTR _sinb$[ebp] fmul DWORD PTR _cosh$[ebp] fstp DWORD PTR _sbch$[ebp] ; Line 854 fld DWORD PTR _sinp$[ebp] fmul DWORD PTR _sbsh$[ebp] fadd DWORD PTR _cbch$[ebp] mov eax, DWORD PTR _m$[ebp] fstp DWORD PTR [eax] ; Line 855 fld DWORD PTR _sinp$[ebp] fmul DWORD PTR _cbch$[ebp] fadd DWORD PTR _sbsh$[ebp] mov ecx, DWORD PTR _m$[ebp] fstp DWORD PTR [ecx+20] ; Line 857 fld DWORD PTR _sinp$[ebp] fmul DWORD PTR _cbsh$[ebp] fsub DWORD PTR _sbch$[ebp] mov edx, DWORD PTR _m$[ebp] fstp DWORD PTR [edx+12] ; Line 858 fld DWORD PTR _sinp$[ebp] fmul DWORD PTR _sbch$[ebp] fsub DWORD PTR _cbsh$[ebp] mov eax, DWORD PTR _m$[ebp] fstp DWORD PTR [eax+8] ; Line 860 fld DWORD PTR _sinh$[ebp] fmul DWORD PTR _cosp$[ebp] mov ecx, DWORD PTR _m$[ebp] fstp DWORD PTR [ecx+24] ; Line 861 fld DWORD PTR _sinb$[ebp] fmul DWORD PTR _cosp$[ebp] mov edx, DWORD PTR _m$[ebp] fstp DWORD PTR [edx+4] ; Line 862 fld DWORD PTR _cosb$[ebp] fmul DWORD PTR _cosp$[ebp] mov eax, DWORD PTR _m$[ebp] fstp DWORD PTR [eax+16] ; Line 863 fld DWORD PTR _cosh$[ebp] fmul DWORD PTR _cosp$[ebp] mov ecx, DWORD PTR _m$[ebp] fstp DWORD PTR [ecx+32] ; Line 865 fld DWORD PTR _sinp$[ebp] fchs mov edx, DWORD PTR _m$[ebp] fstp DWORD PTR [edx+28] ; Line 866 mov esp, ebp pop ebp ret 0 ?vm_SinCosToMatrix@@YAXPAUmatrix@@MMMMMM@Z ENDP ; vm_SinCosToMatrix _TEXT ENDS PUBLIC ?vm_AnglesToMatrix@@YAXPAUmatrix@@GGG@Z ; vm_AnglesToMatrix _TEXT SEGMENT _m$ = 8 _p$ = 12 _h$ = 16 _b$ = 20 _sinp$ = -16 _cosp$ = -8 _sinb$ = -24 _cosb$ = -12 _sinh$ = -4 _cosh$ = -20 ?vm_AnglesToMatrix@@YAXPAUmatrix@@GGG@Z PROC NEAR ; vm_AnglesToMatrix ; Line 869 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 872 mov ax, WORD PTR _p$[ebp] push eax call ?FixSin@@YAMG@Z ; FixSin add esp, 4 fstp DWORD PTR _sinp$[ebp] mov cx, WORD PTR _p$[ebp] push ecx call ?FixCos@@YAMG@Z ; FixCos add esp, 4 fstp DWORD PTR _cosp$[ebp] ; Line 873 mov dx, WORD PTR _b$[ebp] push edx call ?FixSin@@YAMG@Z ; FixSin add esp, 4 fstp DWORD PTR _sinb$[ebp] mov ax, WORD PTR _b$[ebp] push eax call ?FixCos@@YAMG@Z ; FixCos add esp, 4 fstp DWORD PTR _cosb$[ebp] ; Line 874 mov cx, WORD PTR _h$[ebp] push ecx call ?FixSin@@YAMG@Z ; FixSin add esp, 4 fstp DWORD PTR _sinh$[ebp] mov dx, WORD PTR _h$[ebp] push edx call ?FixCos@@YAMG@Z ; FixCos add esp, 4 fstp DWORD PTR _cosh$[ebp] ; Line 876 mov eax, DWORD PTR _cosh$[ebp] push eax mov ecx, DWORD PTR _sinh$[ebp] push ecx mov edx, DWORD PTR _cosb$[ebp] push edx mov eax, DWORD PTR _sinb$[ebp] push eax mov ecx, DWORD PTR _cosp$[ebp] push ecx mov edx, DWORD PTR _sinp$[ebp] push edx mov eax, DWORD PTR _m$[ebp] push eax call ?vm_SinCosToMatrix@@YAXPAUmatrix@@MMMMMM@Z ; vm_SinCosToMatrix add esp, 28 ; 0000001cH ; Line 877 mov esp, ebp pop ebp ret 0 ?vm_AnglesToMatrix@@YAXPAUmatrix@@GGG@Z ENDP ; vm_AnglesToMatrix _TEXT ENDS PUBLIC ?vm_VectorAngleToMatrix@@YAXPAUmatrix@@PAUvector@@G@Z ; vm_VectorAngleToMatrix PUBLIC __real@8@3fff8000000000000000 ; COMDAT __real@8@3fff8000000000000000 ; File osiris_vector.h CONST SEGMENT __real@8@3fff8000000000000000 DQ 03ff0000000000000r ; 1 CONST ENDS _TEXT SEGMENT _m$ = 8 _v$ = 12 _a$ = 16 _sinb$ = -24 _cosb$ = -12 _sinp$ = -16 _cosp$ = -8 _sinh$ = -4 _cosh$ = -20 ?vm_VectorAngleToMatrix@@YAXPAUmatrix@@PAUvector@@G@Z PROC NEAR ; vm_VectorAngleToMatrix ; File osiris_vector.h ; Line 884 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 887 mov ax, WORD PTR _a$[ebp] push eax call ?FixSin@@YAMG@Z ; FixSin add esp, 4 fstp DWORD PTR _sinb$[ebp] mov cx, WORD PTR _a$[ebp] push ecx call ?FixCos@@YAMG@Z ; FixCos add esp, 4 fstp DWORD PTR _cosb$[ebp] ; Line 889 mov edx, DWORD PTR _v$[ebp] fld DWORD PTR [edx+4] fchs fst DWORD PTR _sinp$[ebp] ; Line 890 fmul DWORD PTR _sinp$[ebp] fsubr QWORD PTR __real@8@3fff8000000000000000 sub esp, 8 fstp QWORD PTR [esp] call _sqrt add esp, 8 fstp DWORD PTR _cosp$[ebp] ; Line 892 fld DWORD PTR _cosp$[ebp] fcomp QWORD PTR __real@8@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H jne SHORT $L3607 ; Line 893 mov eax, DWORD PTR _v$[ebp] fld DWORD PTR [eax] fdiv DWORD PTR _cosp$[ebp] fstp DWORD PTR _sinh$[ebp] ; Line 894 mov ecx, DWORD PTR _v$[ebp] fld DWORD PTR [ecx+8] fdiv DWORD PTR _cosp$[ebp] fstp DWORD PTR _cosh$[ebp] ; Line 896 jmp SHORT $L3608 $L3607: ; Line 897 mov DWORD PTR _sinh$[ebp], 0 ; Line 898 mov DWORD PTR _cosh$[ebp], 1065353216 ; 3f800000H $L3608: ; Line 901 mov edx, DWORD PTR _cosh$[ebp] push edx mov eax, DWORD PTR _sinh$[ebp] push eax mov ecx, DWORD PTR _cosb$[ebp] push ecx mov edx, DWORD PTR _sinb$[ebp] push edx mov eax, DWORD PTR _cosp$[ebp] push eax mov ecx, DWORD PTR _sinp$[ebp] push ecx mov edx, DWORD PTR _m$[ebp] push edx call ?vm_SinCosToMatrix@@YAXPAUmatrix@@MMMMMM@Z ; vm_SinCosToMatrix add esp, 28 ; 0000001cH ; Line 902 mov esp, ebp pop ebp ret 0 ?vm_VectorAngleToMatrix@@YAXPAUmatrix@@PAUvector@@G@Z ENDP ; vm_VectorAngleToMatrix _TEXT ENDS PUBLIC ?vm_Orthogonalize@@YAXPAUmatrix@@@Z ; vm_Orthogonalize PUBLIC ?vm_VectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ; vm_VectorToMatrix PUBLIC ??T@YA?AUvector@@U0@0@Z ; operator^ _TEXT SEGMENT $T10550 = -12 $T10551 = -24 $T10552 = -36 $T10553 = -48 _m$ = 8 ?vm_Orthogonalize@@YAXPAUmatrix@@@Z PROC NEAR ; vm_Orthogonalize ; Line 907 push ebp mov ebp, esp sub esp, 48 ; 00000030H ; Line 909 mov eax, DWORD PTR _m$[ebp] add eax, 24 ; 00000018H push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3612 ; Line 910 jmp $L3611 $L3612: ; Line 914 mov ecx, DWORD PTR _m$[ebp] add ecx, 24 ; 00000018H sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx mov edx, DWORD PTR _m$[ebp] add edx, 12 ; 0000000cH sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR $T10551[ebp] push eax call ??T@YA?AUvector@@U0@0@Z ; operator^ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10550[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10550[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10550[ebp+8], eax mov ecx, DWORD PTR _m$[ebp] mov edx, DWORD PTR $T10550[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10550[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10550[ebp+8] mov DWORD PTR [ecx+8], edx ; Line 917 mov eax, DWORD PTR _m$[ebp] push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3614 ; Line 918 push 0 push 0 mov ecx, DWORD PTR _m$[ebp] add ecx, 24 ; 00000018H push ecx mov edx, DWORD PTR _m$[ebp] push edx call ?vm_VectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ; vm_VectorToMatrix add esp, 16 ; 00000010H ; Line 919 jmp SHORT $L3611 $L3614: ; Line 923 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _m$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax mov ecx, DWORD PTR _m$[ebp] add ecx, 24 ; 00000018H sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10553[ebp] push edx call ??T@YA?AUvector@@U0@0@Z ; operator^ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10552[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10552[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10552[ebp+8], eax mov ecx, DWORD PTR _m$[ebp] add ecx, 12 ; 0000000cH mov edx, DWORD PTR $T10552[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10552[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10552[ebp+8] mov DWORD PTR [ecx+8], edx $L3611: ; Line 924 mov esp, ebp pop ebp ret 0 ?vm_Orthogonalize@@YAXPAUmatrix@@@Z ENDP ; vm_Orthogonalize _TEXT ENDS ; COMDAT ??T@YA?AUvector@@U0@0@Z _TEXT SEGMENT _u$ = 12 _v$ = 24 _dest$ = -12 $T10555 = 8 ??T@YA?AUvector@@U0@0@Z PROC NEAR ; operator^, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 258 push ebp mov ebp, esp sub esp, 12 ; 0000000cH ; Line 261 fld DWORD PTR _u$[ebp+4] fmul DWORD PTR _v$[ebp+8] fld DWORD PTR _u$[ebp+8] fmul DWORD PTR _v$[ebp+4] fsubp ST(1), ST(0) fstp DWORD PTR _dest$[ebp] ; Line 262 fld DWORD PTR _u$[ebp+8] fmul DWORD PTR _v$[ebp] fld DWORD PTR _u$[ebp] fmul DWORD PTR _v$[ebp+8] fsubp ST(1), ST(0) fstp DWORD PTR _dest$[ebp+4] ; Line 263 fld DWORD PTR _u$[ebp] fmul DWORD PTR _v$[ebp+4] fld DWORD PTR _u$[ebp+4] fmul DWORD PTR _v$[ebp] fsubp ST(1), ST(0) fstp DWORD PTR _dest$[ebp+8] ; Line 265 mov eax, DWORD PTR $T10555[ebp] mov ecx, DWORD PTR _dest$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _dest$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _dest$[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10555[ebp] ; Line 266 mov esp, ebp pop ebp ret 0 ??T@YA?AUvector@@U0@0@Z ENDP ; operator^ _TEXT ENDS PUBLIC ?DoVectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ; DoVectorToMatrix _TEXT SEGMENT $T10559 = -24 $T10560 = -36 $T10561 = -48 $T10562 = -60 $T10563 = -72 $T10564 = -84 $T10565 = -96 $T10566 = -108 $T10567 = -120 $T10568 = -132 _m$ = 8 _fvec$ = 12 _uvec$ = 16 _rvec$ = 20 _xvec$ = -8 _yvec$ = -12 _zvec$ = -4 ?DoVectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z PROC NEAR ; DoVectorToMatrix ; File osiris_vector.h ; Line 928 push ebp mov ebp, esp sub esp, 140 ; 0000008cH ; Line 929 mov eax, DWORD PTR _m$[ebp] mov DWORD PTR _xvec$[ebp], eax mov ecx, DWORD PTR _m$[ebp] add ecx, 12 ; 0000000cH mov DWORD PTR _yvec$[ebp], ecx mov edx, DWORD PTR _m$[ebp] add edx, 24 ; 00000018H mov DWORD PTR _zvec$[ebp], edx ; Line 933 mov eax, DWORD PTR _fvec$[ebp] mov ecx, DWORD PTR _zvec$[ebp] mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax ; Line 934 mov ecx, DWORD PTR _zvec$[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3625 ; Line 935 jmp $L3621 $L3625: ; Line 938 cmp DWORD PTR _uvec$[ebp], 0 jne $L3626 ; Line 940 cmp DWORD PTR _rvec$[ebp], 0 jne $L3627 $bad_vector2$3628: ; Line 945 mov edx, DWORD PTR _zvec$[ebp] fld DWORD PTR [edx] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je $L3629 mov eax, DWORD PTR _zvec$[ebp] fld DWORD PTR [eax+8] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3629 ; Line 947 mov ecx, DWORD PTR _m$[ebp] mov DWORD PTR [ecx], 1065353216 ; 3f800000H ; Line 948 mov edx, DWORD PTR _zvec$[ebp] fld DWORD PTR [edx+4] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L10557 mov DWORD PTR -140+[ebp], 0 mov DWORD PTR -140+[ebp+4], 1072693248 ; 3ff00000H jmp SHORT $L10558 $L10557: mov DWORD PTR -140+[ebp], 0 mov DWORD PTR -140+[ebp+4], -1074790400 ; bff00000H $L10558: fld QWORD PTR -140+[ebp] mov eax, DWORD PTR _m$[ebp] fstp DWORD PTR [eax+20] ; Line 950 mov ecx, DWORD PTR _m$[ebp] mov DWORD PTR [ecx+16], 0 mov edx, DWORD PTR _m$[ebp] mov DWORD PTR [edx+12], 0 mov eax, DWORD PTR _m$[ebp] mov DWORD PTR [eax+8], 0 mov ecx, DWORD PTR _m$[ebp] mov DWORD PTR [ecx+4], 0 ; Line 952 jmp $L3630 $L3629: ; Line 954 mov edx, DWORD PTR _xvec$[ebp] mov eax, DWORD PTR _zvec$[ebp] mov ecx, DWORD PTR [eax+8] mov DWORD PTR [edx], ecx ; Line 955 mov edx, DWORD PTR _xvec$[ebp] mov DWORD PTR [edx+4], 0 ; Line 956 mov eax, DWORD PTR _zvec$[ebp] fld DWORD PTR [eax] fchs mov ecx, DWORD PTR _xvec$[ebp] fstp DWORD PTR [ecx+8] ; Line 958 mov edx, DWORD PTR _xvec$[ebp] push edx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 960 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _xvec$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _zvec$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10560[ebp] push edx call ??T@YA?AUvector@@U0@0@Z ; operator^ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10559[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10559[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10559[ebp+8], eax mov ecx, DWORD PTR _yvec$[ebp] mov edx, DWORD PTR $T10559[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10559[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10559[ebp+8] mov DWORD PTR [ecx+8], edx $L3630: ; Line 965 jmp $L3632 $L3627: ; Line 967 mov eax, DWORD PTR _rvec$[ebp] mov ecx, DWORD PTR _xvec$[ebp] mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax ; Line 968 mov ecx, DWORD PTR _xvec$[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3633 ; Line 969 jmp $bad_vector2$3628 $L3633: ; Line 971 sub esp, 12 ; 0000000cH mov edx, DWORD PTR _xvec$[ebp] mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx sub esp, 12 ; 0000000cH mov eax, DWORD PTR _zvec$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax lea ecx, DWORD PTR $T10562[ebp] push ecx call ??T@YA?AUvector@@U0@0@Z ; operator^ add esp, 28 ; 0000001cH mov edx, DWORD PTR [eax] mov DWORD PTR $T10561[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10561[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10561[ebp+8], edx mov eax, DWORD PTR _yvec$[ebp] mov ecx, DWORD PTR $T10561[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T10561[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T10561[ebp+8] mov DWORD PTR [eax+8], ecx ; Line 974 mov edx, DWORD PTR _yvec$[ebp] push edx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3635 ; Line 975 jmp $bad_vector2$3628 $L3635: ; Line 978 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _zvec$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _yvec$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10564[ebp] push edx call ??T@YA?AUvector@@U0@0@Z ; operator^ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10563[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10563[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10563[ebp+8], eax mov ecx, DWORD PTR _xvec$[ebp] mov edx, DWORD PTR $T10563[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10563[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10563[ebp+8] mov DWORD PTR [ecx+8], edx $L3632: ; Line 981 jmp $L3637 $L3626: ; Line 983 mov eax, DWORD PTR _uvec$[ebp] mov ecx, DWORD PTR _yvec$[ebp] mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax ; Line 984 mov ecx, DWORD PTR _yvec$[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3638 ; Line 985 jmp $bad_vector2$3628 $L3638: ; Line 987 sub esp, 12 ; 0000000cH mov edx, DWORD PTR _zvec$[ebp] mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx sub esp, 12 ; 0000000cH mov eax, DWORD PTR _yvec$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax lea ecx, DWORD PTR $T10566[ebp] push ecx call ??T@YA?AUvector@@U0@0@Z ; operator^ add esp, 28 ; 0000001cH mov edx, DWORD PTR [eax] mov DWORD PTR $T10565[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10565[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10565[ebp+8], edx mov eax, DWORD PTR _xvec$[ebp] mov ecx, DWORD PTR $T10565[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T10565[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T10565[ebp+8] mov DWORD PTR [eax+8], ecx ; Line 990 mov edx, DWORD PTR _xvec$[ebp] push edx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3640 ; Line 991 jmp $bad_vector2$3628 $L3640: ; Line 994 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _xvec$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _zvec$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10568[ebp] push edx call ??T@YA?AUvector@@U0@0@Z ; operator^ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10567[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10567[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10567[ebp+8], eax mov ecx, DWORD PTR _yvec$[ebp] mov edx, DWORD PTR $T10567[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10567[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10567[ebp+8] mov DWORD PTR [ecx+8], edx $L3637: $L3621: ; Line 997 mov esp, ebp pop ebp ret 0 ?DoVectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ENDP ; DoVectorToMatrix _TEXT ENDS PUBLIC ??G@YA?AUvector@@U0@@Z ; operator- _TEXT SEGMENT $T10570 = -48 $T10571 = -60 $T10572 = -72 $T10573 = -84 _m$ = 8 _fvec$ = 12 _uvec$ = 16 _rvec$ = 20 _tmatrix$3649 = -36 ?vm_VectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z PROC NEAR ; vm_VectorToMatrix ; Line 1004 push ebp mov ebp, esp sub esp, 84 ; 00000054H ; Line 1005 cmp DWORD PTR _fvec$[ebp], 0 jne $L3648 ; Line 1008 cmp DWORD PTR _uvec$[ebp], 0 je $L3650 ; Line 1009 mov eax, DWORD PTR _rvec$[ebp] push eax push 0 mov ecx, DWORD PTR _uvec$[ebp] push ecx lea edx, DWORD PTR _tmatrix$3649[ebp] push edx call ?DoVectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ; DoVectorToMatrix add esp, 16 ; 00000010H ; Line 1010 sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _tmatrix$3649[ebp+12] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _tmatrix$3649[ebp+16] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _tmatrix$3649[ebp+20] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T10571[ebp] push edx call ??G@YA?AUvector@@U0@@Z ; operator- add esp, 16 ; 00000010H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10570[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10570[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10570[ebp+8], eax mov ecx, DWORD PTR _m$[ebp] add ecx, 24 ; 00000018H mov edx, DWORD PTR $T10570[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10570[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10570[ebp+8] mov DWORD PTR [ecx+8], edx ; Line 1011 mov eax, DWORD PTR _m$[ebp] add eax, 12 ; 0000000cH mov ecx, DWORD PTR _tmatrix$3649[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _tmatrix$3649[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _tmatrix$3649[ebp+32] mov DWORD PTR [eax+8], ecx ; Line 1012 mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR _tmatrix$3649[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _tmatrix$3649[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _tmatrix$3649[ebp+8] mov DWORD PTR [edx+8], eax ; Line 1013 jmp $L3647 $L3650: ; Line 1017 push 0 push 0 mov ecx, DWORD PTR _rvec$[ebp] push ecx lea edx, DWORD PTR _tmatrix$3649[ebp] push edx call ?DoVectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ; DoVectorToMatrix add esp, 16 ; 00000010H ; Line 1018 sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _tmatrix$3649[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _tmatrix$3649[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _tmatrix$3649[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T10573[ebp] push edx call ??G@YA?AUvector@@U0@@Z ; operator- add esp, 16 ; 00000010H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10572[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10572[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10572[ebp+8], eax mov ecx, DWORD PTR _m$[ebp] add ecx, 24 ; 00000018H mov edx, DWORD PTR $T10572[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10572[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10572[ebp+8] mov DWORD PTR [ecx+8], edx ; Line 1019 mov eax, DWORD PTR _m$[ebp] add eax, 12 ; 0000000cH mov ecx, DWORD PTR _tmatrix$3649[ebp+12] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _tmatrix$3649[ebp+16] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _tmatrix$3649[ebp+20] mov DWORD PTR [eax+8], ecx ; Line 1020 mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR _tmatrix$3649[ebp+24] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _tmatrix$3649[ebp+28] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _tmatrix$3649[ebp+32] mov DWORD PTR [edx+8], eax ; Line 1021 jmp SHORT $L3647 $L3648: ; Line 1026 mov ecx, DWORD PTR _rvec$[ebp] push ecx mov edx, DWORD PTR _uvec$[ebp] push edx mov eax, DWORD PTR _fvec$[ebp] push eax mov ecx, DWORD PTR _m$[ebp] push ecx call ?DoVectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ; DoVectorToMatrix add esp, 16 ; 00000010H $L3647: ; Line 1028 mov esp, ebp pop ebp ret 0 ?vm_VectorToMatrix@@YAXPAUmatrix@@PAUvector@@11@Z ENDP ; vm_VectorToMatrix _TEXT ENDS PUBLIC __real@4@bfff8000000000000000 ; COMDAT __real@4@bfff8000000000000000 ; File ../../main/lib/vecmat_external.h CONST SEGMENT __real@4@bfff8000000000000000 DD 0bf800000r ; -1 CONST ENDS ; COMDAT ??G@YA?AUvector@@U0@@Z _TEXT SEGMENT _a$ = 12 $T10575 = 8 ??G@YA?AUvector@@U0@@Z PROC NEAR ; operator-, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 280 push ebp mov ebp, esp ; Line 281 fld DWORD PTR _a$[ebp] fmul DWORD PTR __real@4@bfff8000000000000000 fstp DWORD PTR _a$[ebp] ; Line 282 fld DWORD PTR _a$[ebp+4] fmul DWORD PTR __real@4@bfff8000000000000000 fstp DWORD PTR _a$[ebp+4] ; Line 283 fld DWORD PTR _a$[ebp+8] fmul DWORD PTR __real@4@bfff8000000000000000 fstp DWORD PTR _a$[ebp+8] ; Line 285 mov eax, DWORD PTR $T10575[ebp] mov ecx, DWORD PTR _a$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _a$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _a$[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10575[ebp] ; Line 286 pop ebp ret 0 ??G@YA?AUvector@@U0@@Z ENDP ; operator- _TEXT ENDS PUBLIC ?vm_SinCos@@YAXGPAM0@Z ; vm_SinCos _TEXT SEGMENT _a$ = 8 _s$ = 12 _c$ = 16 ?vm_SinCos@@YAXGPAM0@Z PROC NEAR ; vm_SinCos ; File osiris_vector.h ; Line 1031 push ebp mov ebp, esp ; Line 1032 cmp DWORD PTR _s$[ebp], 0 je SHORT $L3660 ; Line 1033 mov ax, WORD PTR _a$[ebp] push eax call ?FixSin@@YAMG@Z ; FixSin add esp, 4 mov ecx, DWORD PTR _s$[ebp] fstp DWORD PTR [ecx] $L3660: ; Line 1034 cmp DWORD PTR _c$[ebp], 0 je SHORT $L3661 ; Line 1035 mov dx, WORD PTR _a$[ebp] push edx call ?FixCos@@YAMG@Z ; FixCos add esp, 4 mov eax, DWORD PTR _c$[ebp] fstp DWORD PTR [eax] $L3661: ; Line 1036 pop ebp ret 0 ?vm_SinCos@@YAXGPAM0@Z ENDP ; vm_SinCos _TEXT ENDS PUBLIC ?vm_ExtractAnglesFromMatrix@@YAPAUangvec@@PAU1@PAUmatrix@@@Z ; vm_ExtractAnglesFromMatrix _TEXT SEGMENT _a$ = 8 _m$ = 12 _sinh$ = -4 _cosh$ = -12 _cosp$ = -8 _sinb$3677 = -20 _cosb$3678 = -16 ?vm_ExtractAnglesFromMatrix@@YAPAUangvec@@PAU1@PAUmatrix@@@Z PROC NEAR ; vm_ExtractAnglesFromMatrix ; Line 1040 push ebp mov ebp, esp sub esp, 28 ; 0000001cH ; Line 1043 mov eax, DWORD PTR _m$[ebp] fld DWORD PTR [eax+24] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3669 mov ecx, DWORD PTR _m$[ebp] fld DWORD PTR [ecx+32] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3669 ; Line 1044 mov edx, DWORD PTR _a$[ebp] mov WORD PTR [edx+2], 0 ; Line 1045 jmp SHORT $L3670 $L3669: ; Line 1046 mov eax, DWORD PTR _m$[ebp] mov ecx, DWORD PTR [eax+24] push ecx mov edx, DWORD PTR _m$[ebp] mov eax, DWORD PTR [edx+32] push eax call ?FixAtan2@@YAGMM@Z ; FixAtan2 add esp, 8 mov ecx, DWORD PTR _a$[ebp] mov WORD PTR [ecx+2], ax $L3670: ; Line 1048 mov edx, DWORD PTR _a$[ebp] mov ax, WORD PTR [edx+2] push eax call ?FixSin@@YAMG@Z ; FixSin add esp, 4 fstp DWORD PTR _sinh$[ebp] ; Line 1049 mov ecx, DWORD PTR _a$[ebp] mov dx, WORD PTR [ecx+2] push edx call ?FixCos@@YAMG@Z ; FixCos add esp, 4 fstp DWORD PTR _cosh$[ebp] ; Line 1051 fld DWORD PTR _sinh$[ebp] sub esp, 8 fstp QWORD PTR [esp] call _fabs fstp QWORD PTR -28+[ebp] add esp, 8 fld DWORD PTR _cosh$[ebp] sub esp, 8 fstp QWORD PTR [esp] call _fabs add esp, 8 fcomp QWORD PTR -28+[ebp] fnstsw ax test ah, 1 je SHORT $L3671 ; Line 1052 mov eax, DWORD PTR _m$[ebp] fld DWORD PTR [eax+24] fdiv DWORD PTR _sinh$[ebp] fstp DWORD PTR _cosp$[ebp] ; Line 1053 jmp SHORT $L3672 $L3671: ; Line 1054 mov ecx, DWORD PTR _m$[ebp] fld DWORD PTR [ecx+32] fdiv DWORD PTR _cosh$[ebp] fstp DWORD PTR _cosp$[ebp] $L3672: ; Line 1056 fld DWORD PTR _cosp$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3673 mov edx, DWORD PTR _m$[ebp] fld DWORD PTR [edx+28] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3673 ; Line 1057 mov eax, DWORD PTR _a$[ebp] mov WORD PTR [eax], 0 ; Line 1058 jmp SHORT $L3674 $L3673: ; Line 1059 mov ecx, DWORD PTR _m$[ebp] fld DWORD PTR [ecx+28] fchs push ecx fstp DWORD PTR [esp] mov edx, DWORD PTR _cosp$[ebp] push edx call ?FixAtan2@@YAGMM@Z ; FixAtan2 add esp, 8 mov ecx, DWORD PTR _a$[ebp] mov WORD PTR [ecx], ax $L3674: ; Line 1062 fld DWORD PTR _cosp$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3675 ; Line 1064 mov edx, DWORD PTR _a$[ebp] mov WORD PTR [edx+4], 0 ; Line 1066 jmp SHORT $L3680 $L3675: ; Line 1069 mov eax, DWORD PTR _m$[ebp] fld DWORD PTR [eax+4] fdiv DWORD PTR _cosp$[ebp] fstp DWORD PTR _sinb$3677[ebp] ; Line 1070 mov ecx, DWORD PTR _m$[ebp] fld DWORD PTR [ecx+16] fdiv DWORD PTR _cosp$[ebp] fstp DWORD PTR _cosb$3678[ebp] ; Line 1072 fld DWORD PTR _sinb$3677[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3679 fld DWORD PTR _cosb$3678[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L3679 ; Line 1073 mov edx, DWORD PTR _a$[ebp] mov WORD PTR [edx+4], 0 ; Line 1074 jmp SHORT $L3680 $L3679: ; Line 1075 mov eax, DWORD PTR _sinb$3677[ebp] push eax mov ecx, DWORD PTR _cosb$3678[ebp] push ecx call ?FixAtan2@@YAGMM@Z ; FixAtan2 add esp, 8 mov edx, DWORD PTR _a$[ebp] mov WORD PTR [edx+4], ax $L3680: ; Line 1079 mov eax, DWORD PTR _a$[ebp] ; Line 1080 mov esp, ebp pop ebp ret 0 ?vm_ExtractAnglesFromMatrix@@YAPAUangvec@@PAU1@PAUmatrix@@@Z ENDP ; vm_ExtractAnglesFromMatrix _TEXT ENDS PUBLIC ?calc_det_value@@YAMPAUmatrix@@@Z ; calc_det_value _TEXT SEGMENT _det$ = 8 ?calc_det_value@@YAMPAUmatrix@@@Z PROC NEAR ; calc_det_value ; Line 1084 push ebp mov ebp, esp ; Line 1090 mov eax, DWORD PTR _det$[ebp] mov ecx, DWORD PTR _det$[ebp] fld DWORD PTR [eax] fmul DWORD PTR [ecx+16] mov edx, DWORD PTR _det$[ebp] fmul DWORD PTR [edx+32] mov eax, DWORD PTR _det$[ebp] mov ecx, DWORD PTR _det$[ebp] fld DWORD PTR [eax] fmul DWORD PTR [ecx+20] mov edx, DWORD PTR _det$[ebp] fmul DWORD PTR [edx+28] fsubp ST(1), ST(0) mov eax, DWORD PTR _det$[ebp] mov ecx, DWORD PTR _det$[ebp] fld DWORD PTR [eax+4] fmul DWORD PTR [ecx+12] mov edx, DWORD PTR _det$[ebp] fmul DWORD PTR [edx+32] fsubp ST(1), ST(0) mov eax, DWORD PTR _det$[ebp] mov ecx, DWORD PTR _det$[ebp] fld DWORD PTR [eax+4] fmul DWORD PTR [ecx+20] mov edx, DWORD PTR _det$[ebp] fmul DWORD PTR [edx+24] faddp ST(1), ST(0) mov eax, DWORD PTR _det$[ebp] mov ecx, DWORD PTR _det$[ebp] fld DWORD PTR [eax+8] fmul DWORD PTR [ecx+12] mov edx, DWORD PTR _det$[ebp] fmul DWORD PTR [edx+28] faddp ST(1), ST(0) mov eax, DWORD PTR _det$[ebp] mov ecx, DWORD PTR _det$[ebp] fld DWORD PTR [eax+8] fmul DWORD PTR [ecx+16] mov edx, DWORD PTR _det$[ebp] fmul DWORD PTR [edx+24] fsubp ST(1), ST(0) ; Line 1091 pop ebp ret 0 ?calc_det_value@@YAMPAUmatrix@@@Z ENDP ; calc_det_value _TEXT ENDS PUBLIC ?vm_DeltaAngVec@@YAGPAUvector@@00@Z ; vm_DeltaAngVec PUBLIC ?vm_DeltaAngVecNorm@@YAGPAUvector@@00@Z ; vm_DeltaAngVecNorm _TEXT SEGMENT _v0$ = 8 _v1$ = 12 _fvec$ = 16 _t0$ = -12 _t1$ = -24 ?vm_DeltaAngVec@@YAGPAUvector@@00@Z PROC NEAR ; vm_DeltaAngVec ; Line 1102 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 1105 mov eax, DWORD PTR _v0$[ebp] mov ecx, DWORD PTR [eax] mov DWORD PTR _t0$[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR _t0$[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR _t0$[ebp+8], eax ; Line 1106 mov ecx, DWORD PTR _v1$[ebp] mov edx, DWORD PTR [ecx] mov DWORD PTR _t1$[ebp], edx mov eax, DWORD PTR [ecx+4] mov DWORD PTR _t1$[ebp+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR _t1$[ebp+8], ecx ; Line 1108 lea edx, DWORD PTR _t0$[ebp] push edx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 1109 lea eax, DWORD PTR _t1$[ebp] push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 1111 mov ecx, DWORD PTR _fvec$[ebp] push ecx lea edx, DWORD PTR _t1$[ebp] push edx lea eax, DWORD PTR _t0$[ebp] push eax call ?vm_DeltaAngVecNorm@@YAGPAUvector@@00@Z ; vm_DeltaAngVecNorm add esp, 12 ; 0000000cH ; Line 1112 mov esp, ebp pop ebp ret 0 ?vm_DeltaAngVec@@YAGPAUvector@@00@Z ENDP ; vm_DeltaAngVec _v0$ = 8 _v1$ = 12 _fvec$ = 16 _a$ = -4 _t$3698 = -16 ?vm_DeltaAngVecNorm@@YAGPAUvector@@00@Z PROC NEAR ; vm_DeltaAngVecNorm ; Line 1116 push ebp mov ebp, esp sub esp, 16 ; 00000010H ; Line 1119 mov eax, DWORD PTR _v1$[ebp] push eax mov ecx, DWORD PTR _v0$[ebp] push ecx call ?vm_DotProduct@@YAMPAUvector@@0@Z ; vm_DotProduct add esp, 4 fstp DWORD PTR [esp] call ?FixAcos@@YAGM@Z ; FixAcos add esp, 4 mov WORD PTR _a$[ebp], ax ; Line 1121 cmp DWORD PTR _fvec$[ebp], 0 je SHORT $L3699 ; Line 1124 mov edx, DWORD PTR _v1$[ebp] push edx mov eax, DWORD PTR _v0$[ebp] push eax lea ecx, DWORD PTR _t$3698[ebp] push ecx call ?vm_CrossProduct@@YAXPAUvector@@00@Z ; vm_CrossProduct add esp, 12 ; 0000000cH ; Line 1125 mov edx, DWORD PTR _fvec$[ebp] push edx lea eax, DWORD PTR _t$3698[ebp] push eax call ?vm_DotProduct@@YAMPAUvector@@0@Z ; vm_DotProduct add esp, 8 fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L3699 ; Line 1126 mov ecx, DWORD PTR _a$[ebp] and ecx, 65535 ; 0000ffffH neg ecx mov WORD PTR _a$[ebp], cx $L3699: ; Line 1129 mov ax, WORD PTR _a$[ebp] ; Line 1130 mov esp, ebp pop ebp ret 0 ?vm_DeltaAngVecNorm@@YAGPAUvector@@00@Z ENDP ; vm_DeltaAngVecNorm _TEXT ENDS PUBLIC ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= PUBLIC ??D@YA?AUvector@@U0@M@Z ; operator* PUBLIC ?vm_GetCentroid@@YAMPAUvector@@0H@Z ; vm_GetCentroid _TEXT SEGMENT $T10584 = -48 $T10585 = -60 $T10586 = -72 $T10587 = -84 $T10588 = -96 $T10589 = -108 $T10590 = -120 $T10591 = -132 $T10592 = -144 $T10593 = -156 $T10594 = -168 $T10595 = -180 $T10596 = -192 $T10597 = -204 $T10598 = -216 $T10599 = -228 $T10600 = -240 $T10601 = -252 $T10602 = -264 $T10603 = -276 _centroid$ = 8 _src$ = 12 _nv$ = 16 _normal$ = -36 _area$ = -16 _total_area$ = -24 _i$ = -20 _tmp_center$ = -12 ?vm_GetCentroid@@YAMPAUvector@@0H@Z PROC NEAR ; vm_GetCentroid ; Line 1135 push ebp mov ebp, esp sub esp, 276 ; 00000114H ; Line 1142 mov eax, DWORD PTR _centroid$[ebp] push eax call ?vm_MakeZero@@YAXPAUvector@@@Z ; vm_MakeZero add esp, 4 ; Line 1145 mov ecx, DWORD PTR _src$[ebp] add ecx, 24 ; 00000018H push ecx mov edx, DWORD PTR _src$[ebp] add edx, 12 ; 0000000cH push edx mov eax, DWORD PTR _src$[ebp] push eax lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1146 lea edx, DWORD PTR _normal$[ebp] push edx call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _total_area$[ebp] ; Line 1148 mov DWORD PTR _i$[ebp], 2 jmp SHORT $L3710 $L3711: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L3710: mov ecx, DWORD PTR _nv$[ebp] sub ecx, 1 cmp DWORD PTR _i$[ebp], ecx jge SHORT $L3712 ; Line 1150 mov edx, DWORD PTR _i$[ebp] add edx, 1 imul edx, 12 ; 0000000cH mov eax, DWORD PTR _src$[ebp] add eax, edx push eax mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx push edx mov eax, DWORD PTR _src$[ebp] push eax lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1151 lea edx, DWORD PTR _normal$[ebp] push edx call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _area$[ebp] ; Line 1152 fld DWORD PTR _total_area$[ebp] fadd DWORD PTR _area$[ebp] fstp DWORD PTR _total_area$[ebp] ; Line 1153 jmp SHORT $L3711 $L3712: ; Line 1157 mov eax, DWORD PTR _src$[ebp] add eax, 24 ; 00000018H push eax mov ecx, DWORD PTR _src$[ebp] add ecx, 12 ; 0000000cH push ecx mov edx, DWORD PTR _src$[ebp] push edx lea eax, DWORD PTR _normal$[ebp] push eax call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1158 lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _area$[ebp] ; Line 1161 lea edx, DWORD PTR _tmp_center$[ebp] push edx call ?vm_MakeZero@@YAXPAUvector@@@Z ; vm_MakeZero add esp, 4 ; Line 1162 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L3713 $L3714: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L3713: cmp DWORD PTR _i$[ebp], 3 jge SHORT $L3715 ; Line 1164 mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR _tmp_center$[ebp] push eax lea ecx, DWORD PTR $T10585[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10584[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10584[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10584[ebp+8], edx ; Line 1165 jmp SHORT $L3714 $L3715: ; Line 1166 push 1077936128 ; 40400000H lea eax, DWORD PTR _tmp_center$[ebp] push eax lea ecx, DWORD PTR $T10587[ebp] push ecx call ??_0@YA?AUvector@@AAU0@M@Z ; operator/= add esp, 12 ; 0000000cH mov edx, DWORD PTR [eax] mov DWORD PTR $T10586[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10586[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10586[ebp+8], edx ; Line 1168 fld DWORD PTR _area$[ebp] fdiv DWORD PTR _total_area$[ebp] push ecx fstp DWORD PTR [esp] sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _tmp_center$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _tmp_center$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _tmp_center$[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T10590[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10589[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10589[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10589[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10589[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10589[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10589[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR _centroid$[ebp] push eax lea ecx, DWORD PTR $T10591[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10588[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10588[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10588[ebp+8], edx ; Line 1171 mov DWORD PTR _i$[ebp], 2 jmp SHORT $L3720 $L3721: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L3720: mov ecx, DWORD PTR _nv$[ebp] sub ecx, 1 cmp DWORD PTR _i$[ebp], ecx jge $L3722 ; Line 1173 mov edx, DWORD PTR _i$[ebp] add edx, 1 imul edx, 12 ; 0000000cH mov eax, DWORD PTR _src$[ebp] add eax, edx push eax mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx push edx mov eax, DWORD PTR _src$[ebp] push eax lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1174 lea edx, DWORD PTR _normal$[ebp] push edx call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _area$[ebp] ; Line 1176 lea eax, DWORD PTR _tmp_center$[ebp] push eax call ?vm_MakeZero@@YAXPAUvector@@@Z ; vm_MakeZero add esp, 4 ; Line 1178 sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _src$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR _tmp_center$[ebp] push edx lea eax, DWORD PTR $T10593[ebp] push eax call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10592[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10592[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10592[ebp+8], eax ; Line 1179 mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR _tmp_center$[ebp] push eax lea ecx, DWORD PTR $T10595[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10594[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10594[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10594[ebp+8], edx ; Line 1180 mov eax, DWORD PTR _i$[ebp] add eax, 1 imul eax, 12 ; 0000000cH mov ecx, DWORD PTR _src$[ebp] add ecx, eax sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR _tmp_center$[ebp] push edx lea eax, DWORD PTR $T10597[ebp] push eax call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10596[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10596[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10596[ebp+8], eax ; Line 1182 push 1077936128 ; 40400000H lea ecx, DWORD PTR _tmp_center$[ebp] push ecx lea edx, DWORD PTR $T10599[ebp] push edx call ??_0@YA?AUvector@@AAU0@M@Z ; operator/= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10598[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10598[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10598[ebp+8], eax ; Line 1184 fld DWORD PTR _area$[ebp] fdiv DWORD PTR _total_area$[ebp] push ecx fstp DWORD PTR [esp] sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _tmp_center$[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _tmp_center$[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _tmp_center$[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T10602[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10601[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10601[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10601[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10601[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10601[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10601[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR _centroid$[ebp] push eax lea ecx, DWORD PTR $T10603[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10600[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10600[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10600[ebp+8], edx ; Line 1185 jmp $L3721 $L3722: ; Line 1187 fld DWORD PTR _total_area$[ebp] ; Line 1188 mov esp, ebp pop ebp ret 0 ?vm_GetCentroid@@YAMPAUvector@@0H@Z ENDP ; vm_GetCentroid _TEXT ENDS PUBLIC ??H@YA?AUvector@@U0@0@Z ; operator+ ; COMDAT ??Y@YA?AUvector@@AAU0@U0@@Z _TEXT SEGMENT _a$ = 12 _b$ = 16 $T10605 = 8 $T10606 = -12 $T10607 = -24 ??Y@YA?AUvector@@AAU0@U0@@Z PROC NEAR ; operator+=, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 115 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 116 sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _b$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _b$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _b$[ebp+8] mov DWORD PTR [eax+8], ecx sub esp, 12 ; 0000000cH mov edx, DWORD PTR _a$[ebp] mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR $T10607[ebp] push eax call ??H@YA?AUvector@@U0@0@Z ; operator+ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10606[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10606[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10606[ebp+8], eax mov ecx, DWORD PTR _a$[ebp] mov edx, DWORD PTR $T10606[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10606[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10606[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR $T10605[ebp] mov ecx, DWORD PTR $T10606[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T10606[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T10606[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10605[ebp] ; Line 117 mov esp, ebp pop ebp ret 0 ??Y@YA?AUvector@@AAU0@U0@@Z ENDP ; operator+= _TEXT ENDS ; COMDAT ??H@YA?AUvector@@U0@0@Z _TEXT SEGMENT _a$ = 12 _b$ = 24 $T10609 = 8 ??H@YA?AUvector@@U0@0@Z PROC NEAR ; operator+, COMDAT ; Line 103 push ebp mov ebp, esp ; Line 106 fld DWORD PTR _a$[ebp] fadd DWORD PTR _b$[ebp] fstp DWORD PTR _a$[ebp] ; Line 107 fld DWORD PTR _a$[ebp+4] fadd DWORD PTR _b$[ebp+4] fstp DWORD PTR _a$[ebp+4] ; Line 108 fld DWORD PTR _a$[ebp+8] fadd DWORD PTR _b$[ebp+8] fstp DWORD PTR _a$[ebp+8] ; Line 110 mov eax, DWORD PTR $T10609[ebp] mov ecx, DWORD PTR _a$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _a$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _a$[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10609[ebp] ; Line 111 pop ebp ret 0 ??H@YA?AUvector@@U0@0@Z ENDP ; operator+ _TEXT ENDS ; COMDAT ??D@YA?AUvector@@U0@M@Z _TEXT SEGMENT _v$ = 12 _s$ = 24 $T10611 = 8 ??D@YA?AUvector@@U0@M@Z PROC NEAR ; operator*, COMDAT ; Line 181 push ebp mov ebp, esp ; Line 182 fld DWORD PTR _v$[ebp] fmul DWORD PTR _s$[ebp] fstp DWORD PTR _v$[ebp] ; Line 183 fld DWORD PTR _v$[ebp+4] fmul DWORD PTR _s$[ebp] fstp DWORD PTR _v$[ebp+4] ; Line 184 fld DWORD PTR _v$[ebp+8] fmul DWORD PTR _s$[ebp] fstp DWORD PTR _v$[ebp+8] ; Line 186 mov eax, DWORD PTR $T10611[ebp] mov ecx, DWORD PTR _v$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _v$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _v$[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10611[ebp] ; Line 187 pop ebp ret 0 ??D@YA?AUvector@@U0@M@Z ENDP ; operator* _TEXT ENDS PUBLIC ?vm_GetCentroidFast@@YAMPAUvector@@0H@Z ; vm_GetCentroidFast _TEXT SEGMENT $T10613 = -48 $T10614 = -60 $T10615 = -72 $T10616 = -84 $T10617 = -96 $T10618 = -108 $T10619 = -120 $T10620 = -132 $T10621 = -144 $T10622 = -156 $T10623 = -168 $T10624 = -180 $T10625 = -192 $T10626 = -204 $T10627 = -216 $T10628 = -228 $T10629 = -240 $T10630 = -252 $T10631 = -264 $T10632 = -276 _centroid$ = 8 _src$ = 12 _nv$ = 16 _normal$ = -36 _area$ = -16 _total_area$ = -24 _i$ = -20 _tmp_center$ = -12 ?vm_GetCentroidFast@@YAMPAUvector@@0H@Z PROC NEAR ; vm_GetCentroidFast ; File osiris_vector.h ; Line 1193 push ebp mov ebp, esp sub esp, 276 ; 00000114H ; Line 1200 mov eax, DWORD PTR _centroid$[ebp] push eax call ?vm_MakeZero@@YAXPAUvector@@@Z ; vm_MakeZero add esp, 4 ; Line 1203 mov ecx, DWORD PTR _src$[ebp] add ecx, 24 ; 00000018H push ecx mov edx, DWORD PTR _src$[ebp] add edx, 12 ; 0000000cH push edx mov eax, DWORD PTR _src$[ebp] push eax lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1204 lea edx, DWORD PTR _normal$[ebp] push edx call ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ; vm_GetMagnitudeFast add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _total_area$[ebp] ; Line 1206 mov DWORD PTR _i$[ebp], 2 jmp SHORT $L3739 $L3740: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L3739: mov ecx, DWORD PTR _nv$[ebp] sub ecx, 1 cmp DWORD PTR _i$[ebp], ecx jge SHORT $L3741 ; Line 1208 mov edx, DWORD PTR _i$[ebp] add edx, 1 imul edx, 12 ; 0000000cH mov eax, DWORD PTR _src$[ebp] add eax, edx push eax mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx push edx mov eax, DWORD PTR _src$[ebp] push eax lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1209 lea edx, DWORD PTR _normal$[ebp] push edx call ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ; vm_GetMagnitudeFast add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _area$[ebp] ; Line 1210 fld DWORD PTR _total_area$[ebp] fadd DWORD PTR _area$[ebp] fstp DWORD PTR _total_area$[ebp] ; Line 1211 jmp SHORT $L3740 $L3741: ; Line 1215 mov eax, DWORD PTR _src$[ebp] add eax, 24 ; 00000018H push eax mov ecx, DWORD PTR _src$[ebp] add ecx, 12 ; 0000000cH push ecx mov edx, DWORD PTR _src$[ebp] push edx lea eax, DWORD PTR _normal$[ebp] push eax call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1216 lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ; vm_GetMagnitudeFast add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _area$[ebp] ; Line 1219 lea edx, DWORD PTR _tmp_center$[ebp] push edx call ?vm_MakeZero@@YAXPAUvector@@@Z ; vm_MakeZero add esp, 4 ; Line 1220 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L3742 $L3743: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L3742: cmp DWORD PTR _i$[ebp], 3 jge SHORT $L3744 ; Line 1222 mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR _tmp_center$[ebp] push eax lea ecx, DWORD PTR $T10614[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10613[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10613[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10613[ebp+8], edx ; Line 1223 jmp SHORT $L3743 $L3744: ; Line 1224 push 1077936128 ; 40400000H lea eax, DWORD PTR _tmp_center$[ebp] push eax lea ecx, DWORD PTR $T10616[ebp] push ecx call ??_0@YA?AUvector@@AAU0@M@Z ; operator/= add esp, 12 ; 0000000cH mov edx, DWORD PTR [eax] mov DWORD PTR $T10615[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10615[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10615[ebp+8], edx ; Line 1226 fld DWORD PTR _area$[ebp] fdiv DWORD PTR _total_area$[ebp] push ecx fstp DWORD PTR [esp] sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _tmp_center$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _tmp_center$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _tmp_center$[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T10619[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10618[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10618[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10618[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10618[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10618[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10618[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR _centroid$[ebp] push eax lea ecx, DWORD PTR $T10620[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10617[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10617[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10617[ebp+8], edx ; Line 1229 mov DWORD PTR _i$[ebp], 2 jmp SHORT $L3749 $L3750: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L3749: mov ecx, DWORD PTR _nv$[ebp] sub ecx, 1 cmp DWORD PTR _i$[ebp], ecx jge $L3751 ; Line 1231 mov edx, DWORD PTR _i$[ebp] add edx, 1 imul edx, 12 ; 0000000cH mov eax, DWORD PTR _src$[ebp] add eax, edx push eax mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx push edx mov eax, DWORD PTR _src$[ebp] push eax lea ecx, DWORD PTR _normal$[ebp] push ecx call ?vm_GetPerp@@YAXPAUvector@@000@Z ; vm_GetPerp add esp, 16 ; 00000010H ; Line 1232 lea edx, DWORD PTR _normal$[ebp] push edx call ?vm_GetMagnitudeFast@@YAMPAUvector@@@Z ; vm_GetMagnitudeFast add esp, 4 fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _area$[ebp] ; Line 1234 lea eax, DWORD PTR _tmp_center$[ebp] push eax call ?vm_MakeZero@@YAXPAUvector@@@Z ; vm_MakeZero add esp, 4 ; Line 1236 sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _src$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR _tmp_center$[ebp] push edx lea eax, DWORD PTR $T10622[ebp] push eax call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10621[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10621[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10621[ebp+8], eax ; Line 1237 mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _src$[ebp] add edx, ecx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR _tmp_center$[ebp] push eax lea ecx, DWORD PTR $T10624[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10623[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10623[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10623[ebp+8], edx ; Line 1238 mov eax, DWORD PTR _i$[ebp] add eax, 1 imul eax, 12 ; 0000000cH mov ecx, DWORD PTR _src$[ebp] add ecx, eax sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR _tmp_center$[ebp] push edx lea eax, DWORD PTR $T10626[ebp] push eax call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10625[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10625[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10625[ebp+8], eax ; Line 1240 push 1077936128 ; 40400000H lea ecx, DWORD PTR _tmp_center$[ebp] push ecx lea edx, DWORD PTR $T10628[ebp] push edx call ??_0@YA?AUvector@@AAU0@M@Z ; operator/= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10627[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10627[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10627[ebp+8], eax ; Line 1242 fld DWORD PTR _area$[ebp] fdiv DWORD PTR _total_area$[ebp] push ecx fstp DWORD PTR [esp] sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _tmp_center$[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _tmp_center$[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _tmp_center$[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T10631[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10630[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10630[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10630[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10630[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10630[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10630[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR _centroid$[ebp] push eax lea ecx, DWORD PTR $T10632[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10629[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10629[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10629[ebp+8], edx ; Line 1243 jmp $L3750 $L3751: ; Line 1245 fld DWORD PTR _total_area$[ebp] ; Line 1246 mov esp, ebp pop ebp ret 0 ?vm_GetCentroidFast@@YAMPAUvector@@0H@Z ENDP ; vm_GetCentroidFast _TEXT ENDS PUBLIC ?vm_MakeRandomVector@@YAXPAUvector@@@Z ; vm_MakeRandomVector EXTRN _rand:NEAR _TEXT SEGMENT _vec$ = 8 ?vm_MakeRandomVector@@YAXPAUvector@@@Z PROC NEAR ; vm_MakeRandomVector ; Line 1251 push ebp mov ebp, esp sub esp, 12 ; 0000000cH ; Line 1252 call _rand sub eax, 16383 ; 00003fffH mov DWORD PTR -4+[ebp], eax fild DWORD PTR -4+[ebp] mov eax, DWORD PTR _vec$[ebp] fstp DWORD PTR [eax] ; Line 1253 call _rand sub eax, 16383 ; 00003fffH mov DWORD PTR -8+[ebp], eax fild DWORD PTR -8+[ebp] mov ecx, DWORD PTR _vec$[ebp] fstp DWORD PTR [ecx+4] ; Line 1254 call _rand sub eax, 16383 ; 00003fffH mov DWORD PTR -12+[ebp], eax fild DWORD PTR -12+[ebp] mov edx, DWORD PTR _vec$[ebp] fstp DWORD PTR [edx+8] ; Line 1255 mov esp, ebp pop ebp ret 0 ?vm_MakeRandomVector@@YAXPAUvector@@@Z ENDP ; vm_MakeRandomVector _TEXT ENDS PUBLIC ?vm_ComputeBoundingSphere@@YAMPAUvector@@0H@Z ; vm_ComputeBoundingSphere _TEXT SEGMENT $T10635 = -84 $T10636 = -96 $T10637 = -108 $T10638 = -120 $T10639 = -132 $T10640 = -144 $T10641 = -156 $T10642 = -168 $T10643 = -180 $T10644 = -192 $T10645 = -204 $T10646 = -216 $T10647 = -228 $T10648 = -240 $T10649 = -252 $T10650 = -264 $T10651 = -276 $T10652 = -288 $T10653 = -300 $T10654 = -312 $T10655 = -324 $T10656 = -336 $T10657 = -348 $T10658 = -360 _center$ = 8 _vecs$ = 12 _num_verts$ = 16 _min_x$ = -40 _max_x$ = -16 _min_y$ = -52 _max_y$ = -20 _min_z$ = -8 _max_z$ = -24 _vp$ = -48 _dx$ = -36 _dy$ = -44 _dz$ = -4 _rad$ = -28 _rad2$ = -12 _i$ = -32 _delta$3805 = -68 _t2$3806 = -56 _t$3809 = -72 ?vm_ComputeBoundingSphere@@YAMPAUvector@@0H@Z PROC NEAR ; vm_ComputeBoundingSphere ; Line 1260 push ebp mov ebp, esp sub esp, 360 ; 00000168H ; Line 1270 mov eax, DWORD PTR _vecs$[ebp] mov DWORD PTR _max_z$[ebp], eax mov ecx, DWORD PTR _max_z$[ebp] mov DWORD PTR _min_z$[ebp], ecx mov edx, DWORD PTR _min_z$[ebp] mov DWORD PTR _max_y$[ebp], edx mov eax, DWORD PTR _max_y$[ebp] mov DWORD PTR _min_y$[ebp], eax mov ecx, DWORD PTR _min_y$[ebp] mov DWORD PTR _max_x$[ebp], ecx mov edx, DWORD PTR _max_x$[ebp] mov DWORD PTR _min_x$[ebp], edx ; Line 1273 mov DWORD PTR _i$[ebp], 0 mov eax, DWORD PTR _vecs$[ebp] mov DWORD PTR _vp$[ebp], eax jmp SHORT $L3779 $L3780: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx mov edx, DWORD PTR _vp$[ebp] add edx, 12 ; 0000000cH mov DWORD PTR _vp$[ebp], edx $L3779: mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR _num_verts$[ebp] jge $L3781 ; Line 1275 mov ecx, DWORD PTR _vp$[ebp] mov edx, DWORD PTR _min_x$[ebp] fld DWORD PTR [ecx] fcomp DWORD PTR [edx] fnstsw ax test ah, 1 je SHORT $L3782 ; Line 1276 mov eax, DWORD PTR _vp$[ebp] mov DWORD PTR _min_x$[ebp], eax $L3782: ; Line 1278 mov ecx, DWORD PTR _vp$[ebp] mov edx, DWORD PTR _max_x$[ebp] fld DWORD PTR [ecx] fcomp DWORD PTR [edx] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L3783 ; Line 1279 mov eax, DWORD PTR _vp$[ebp] mov DWORD PTR _max_x$[ebp], eax $L3783: ; Line 1281 mov ecx, DWORD PTR _vp$[ebp] mov edx, DWORD PTR _min_y$[ebp] fld DWORD PTR [ecx+4] fcomp DWORD PTR [edx+4] fnstsw ax test ah, 1 je SHORT $L3784 ; Line 1282 mov eax, DWORD PTR _vp$[ebp] mov DWORD PTR _min_y$[ebp], eax $L3784: ; Line 1284 mov ecx, DWORD PTR _vp$[ebp] mov edx, DWORD PTR _max_y$[ebp] fld DWORD PTR [ecx+4] fcomp DWORD PTR [edx+4] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L3785 ; Line 1285 mov eax, DWORD PTR _vp$[ebp] mov DWORD PTR _max_y$[ebp], eax $L3785: ; Line 1287 mov ecx, DWORD PTR _vp$[ebp] mov edx, DWORD PTR _min_z$[ebp] fld DWORD PTR [ecx+8] fcomp DWORD PTR [edx+8] fnstsw ax test ah, 1 je SHORT $L3786 ; Line 1288 mov eax, DWORD PTR _vp$[ebp] mov DWORD PTR _min_z$[ebp], eax $L3786: ; Line 1290 mov ecx, DWORD PTR _vp$[ebp] mov edx, DWORD PTR _max_z$[ebp] fld DWORD PTR [ecx+8] fcomp DWORD PTR [edx+8] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L3787 ; Line 1291 mov eax, DWORD PTR _vp$[ebp] mov DWORD PTR _max_z$[ebp], eax $L3787: ; Line 1292 jmp $L3780 $L3781: ; Line 1296 mov ecx, DWORD PTR _max_x$[ebp] push ecx mov edx, DWORD PTR _min_x$[ebp] push edx call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dx$[ebp] ; Line 1297 mov eax, DWORD PTR _max_y$[ebp] push eax mov ecx, DWORD PTR _min_y$[ebp] push ecx call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dy$[ebp] ; Line 1298 mov edx, DWORD PTR _max_z$[ebp] push edx mov eax, DWORD PTR _min_z$[ebp] push eax call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dz$[ebp] ; Line 1300 fld DWORD PTR _dx$[ebp] fcomp DWORD PTR _dy$[ebp] fnstsw ax test ah, 65 ; 00000041H jne $L3788 ; Line 1301 fld DWORD PTR _dx$[ebp] fcomp DWORD PTR _dz$[ebp] fnstsw ax test ah, 65 ; 00000041H jne $L3789 ; Line 1302 sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _max_x$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx sub esp, 12 ; 0000000cH mov edx, DWORD PTR _min_x$[ebp] mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR $T10637[ebp] push eax call ??H@YA?AUvector@@U0@0@Z ; operator+ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10636[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10636[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10636[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10636[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10636[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10636[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T10638[ebp] push eax call ??K@YA?AUvector@@U0@M@Z ; operator/ add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10635[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10635[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10635[ebp+8], eax mov ecx, DWORD PTR _center$[ebp] mov edx, DWORD PTR $T10635[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10635[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10635[ebp+8] mov DWORD PTR [ecx+8], edx fld DWORD PTR _dx$[ebp] fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _rad$[ebp] ; Line 1304 jmp $L3792 $L3789: ; Line 1305 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _max_z$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _min_z$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10641[ebp] push edx call ??H@YA?AUvector@@U0@0@Z ; operator+ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10640[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10640[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10640[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10640[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10640[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10640[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T10642[ebp] push eax call ??K@YA?AUvector@@U0@M@Z ; operator/ add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10639[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10639[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10639[ebp+8], eax mov ecx, DWORD PTR _center$[ebp] mov edx, DWORD PTR $T10639[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10639[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10639[ebp+8] mov DWORD PTR [ecx+8], edx fld DWORD PTR _dz$[ebp] fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _rad$[ebp] $L3792: ; Line 1307 jmp $L3799 $L3788: ; Line 1308 fld DWORD PTR _dy$[ebp] fcomp DWORD PTR _dz$[ebp] fnstsw ax test ah, 65 ; 00000041H jne $L3796 ; Line 1309 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _max_y$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _min_y$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10645[ebp] push edx call ??H@YA?AUvector@@U0@0@Z ; operator+ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10644[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10644[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10644[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10644[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10644[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10644[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T10646[ebp] push eax call ??K@YA?AUvector@@U0@M@Z ; operator/ add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10643[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10643[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10643[ebp+8], eax mov ecx, DWORD PTR _center$[ebp] mov edx, DWORD PTR $T10643[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10643[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10643[ebp+8] mov DWORD PTR [ecx+8], edx fld DWORD PTR _dy$[ebp] fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _rad$[ebp] ; Line 1311 jmp $L3799 $L3796: ; Line 1312 sub esp, 12 ; 0000000cH mov eax, DWORD PTR _max_z$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _min_z$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10649[ebp] push edx call ??H@YA?AUvector@@U0@0@Z ; operator+ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10648[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10648[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10648[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10648[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10648[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10648[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T10650[ebp] push eax call ??K@YA?AUvector@@U0@M@Z ; operator/ add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10647[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10647[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10647[ebp+8], eax mov ecx, DWORD PTR _center$[ebp] mov edx, DWORD PTR $T10647[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10647[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10647[ebp+8] mov DWORD PTR [ecx+8], edx fld DWORD PTR _dz$[ebp] fdiv DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR _rad$[ebp] $L3799: ; Line 1317 fld DWORD PTR _rad$[ebp] fmul DWORD PTR _rad$[ebp] fstp DWORD PTR _rad2$[ebp] ; Line 1318 mov DWORD PTR _i$[ebp], 0 mov eax, DWORD PTR _vecs$[ebp] mov DWORD PTR _vp$[ebp], eax jmp SHORT $L3802 $L3803: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx mov edx, DWORD PTR _vp$[ebp] add edx, 12 ; 0000000cH mov DWORD PTR _vp$[ebp], edx $L3802: mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR _num_verts$[ebp] jge $L3804 ; Line 1322 sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _center$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx sub esp, 12 ; 0000000cH mov edx, DWORD PTR _vp$[ebp] mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR $T10652[ebp] push eax call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T10651[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10651[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10651[ebp+8], eax mov ecx, DWORD PTR $T10651[ebp] mov DWORD PTR _delta$3805[ebp], ecx mov edx, DWORD PTR $T10651[ebp+4] mov DWORD PTR _delta$3805[ebp+4], edx mov eax, DWORD PTR $T10651[ebp+8] mov DWORD PTR _delta$3805[ebp+8], eax ; Line 1323 fld DWORD PTR _delta$3805[ebp] fmul DWORD PTR _delta$3805[ebp] fld DWORD PTR _delta$3805[ebp+4] fmul DWORD PTR _delta$3805[ebp+4] faddp ST(1), ST(0) fld DWORD PTR _delta$3805[ebp+8] fmul DWORD PTR _delta$3805[ebp+8] faddp ST(1), ST(0) fstp DWORD PTR _t2$3806[ebp] ; Line 1326 fld DWORD PTR _t2$3806[ebp] fcomp DWORD PTR _rad2$[ebp] fnstsw ax test ah, 65 ; 00000041H jne $L3808 ; Line 1329 fld DWORD PTR _t2$3806[ebp] sub esp, 8 fstp QWORD PTR [esp] call _sqrt add esp, 8 fstp DWORD PTR _t$3809[ebp] ; Line 1330 fld DWORD PTR _rad$[ebp] fadd DWORD PTR _t$3809[ebp] fdiv DWORD PTR __real@4@40008000000000000000 fst DWORD PTR _rad$[ebp] ; Line 1331 fmul DWORD PTR _rad$[ebp] fstp DWORD PTR _rad2$[ebp] ; Line 1332 fld DWORD PTR _t$3809[ebp] fsub DWORD PTR _rad$[ebp] push ecx fstp DWORD PTR [esp] sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _delta$3805[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _delta$3805[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _delta$3805[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T10656[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10655[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10655[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10655[ebp+8], eax mov ecx, DWORD PTR _t$3809[ebp] push ecx sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR $T10655[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR $T10655[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR $T10655[ebp+8] mov DWORD PTR [edx+8], eax lea ecx, DWORD PTR $T10657[ebp] push ecx call ??K@YA?AUvector@@U0@M@Z ; operator/ add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10654[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10654[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10654[ebp+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR $T10654[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T10654[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T10654[ebp+8] mov DWORD PTR [eax+8], ecx mov edx, DWORD PTR _center$[ebp] push edx lea eax, DWORD PTR $T10658[ebp] push eax call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10653[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10653[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10653[ebp+8], eax $L3808: ; Line 1334 jmp $L3803 $L3804: ; Line 1337 fld DWORD PTR _rad$[ebp] ; Line 1338 mov esp, ebp pop ebp ret 0 ?vm_ComputeBoundingSphere@@YAMPAUvector@@0H@Z ENDP ; vm_ComputeBoundingSphere _TEXT ENDS PUBLIC ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable _TEXT SEGMENT _index$ = 8 ?GetStringFromTable@@YAPADH@Z PROC NEAR ; GetStringFromTable ; File aigame.cpp ; Line 37 push ebp mov ebp, esp ; Line 38 cmp DWORD PTR _index$[ebp], 0 jl SHORT $L3843 mov eax, DWORD PTR _index$[ebp] cmp eax, DWORD PTR ?String_table_size@@3HA ; String_table_size jl SHORT $L3842 $L3843: ; Line 39 mov eax, DWORD PTR __Error_string jmp SHORT $L3841 $L3842: ; Line 40 mov ecx, DWORD PTR _index$[ebp] mov edx, DWORD PTR ?String_table@@3PAPADA ; String_table cmp DWORD PTR [edx+ecx*4], 0 jne SHORT $L3844 ; Line 41 mov eax, DWORD PTR __Empty_string jmp SHORT $L3841 $L3844: ; Line 42 mov eax, DWORD PTR _index$[ebp] mov ecx, DWORD PTR ?String_table@@3PAPADA ; String_table mov eax, DWORD PTR [ecx+eax*4] $L3841: ; Line 43 pop ebp ret 0 ?GetStringFromTable@@YAPADH@Z ENDP ; GetStringFromTable _TEXT ENDS PUBLIC ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach _TEXT SEGMENT _me$ = 8 _child_name$ = 12 _child_type$ = 16 _parent_ap$ = 20 _child_ap$ = 24 _f_aligned$ = 28 _f_set_parent$ = 32 _child_handle$ = -4 _child_id$ = -8 _m$ = -928 _parent$3858 = -932 ?CreateAndAttach@@YAHHPADEDD_N1@Z PROC NEAR ; CreateAndAttach ; Line 190 push ebp mov ebp, esp sub esp, 932 ; 000003a4H ; Line 191 mov DWORD PTR _child_handle$[ebp], -1 ; Line 192 mov eax, DWORD PTR _child_name$[ebp] push eax call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _child_id$[ebp], eax ; Line 194 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], ecx ; Line 195 lea edx, DWORD PTR _m$[ebp] push edx push 38 ; 00000026H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 196 lea eax, DWORD PTR _m$[ebp] push eax push 40 ; 00000028H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 198 cmp DWORD PTR _child_id$[ebp], 0 jl SHORT $L3862 ; Line 201 mov ecx, DWORD PTR _f_set_parent$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L3859 ; Line 202 mov edx, DWORD PTR _me$[ebp] mov DWORD PTR _parent$3858[ebp], edx ; Line 203 jmp SHORT $L3860 $L3859: ; Line 204 mov DWORD PTR _parent$3858[ebp], -1 $L3860: ; Line 206 push 0 mov eax, DWORD PTR _parent$3858[ebp] push eax push 0 lea ecx, DWORD PTR _m$[ebp+176] push ecx mov edx, DWORD PTR _m$[ebp] push edx mov ax, WORD PTR _child_id$[ebp] push eax mov cl, BYTE PTR _child_type$[ebp] push ecx call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _child_handle$[ebp], eax ; Line 207 cmp DWORD PTR _child_handle$[ebp], -1 je SHORT $L3862 ; Line 209 mov dl, BYTE PTR _f_aligned$[ebp] push edx mov al, BYTE PTR _child_ap$[ebp] push eax mov ecx, DWORD PTR _child_handle$[ebp] push ecx mov dl, BYTE PTR _parent_ap$[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_AttachObjectAP@@3P6AHHDHDE@ZA ; Obj_AttachObjectAP add esp, 20 ; 00000014H $L3862: ; Line 216 mov eax, DWORD PTR _child_handle$[ebp] ; Line 217 mov esp, ebp pop ebp ret 0 ?CreateAndAttach@@YAHHPADEDD_N1@Z ENDP ; CreateAndAttach _TEXT ENDS PUBLIC __real@4@400dfffe000000000000 PUBLIC __real@4@3fff8000000000000000 PUBLIC ?SetMode@SuperThief@@AAEXHD@Z ; SuperThief::SetMode ; COMDAT __real@4@400dfffe000000000000 ; File aigame.cpp CONST SEGMENT __real@4@400dfffe000000000000 DD 046fffe00r ; 32767 CONST ENDS ; COMDAT __real@4@3fff8000000000000000 CONST SEGMENT __real@4@3fff8000000000000000 DD 03f800000r ; 1 CONST ENDS _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -12 _flags$5628 = -4 _temp$5629 = -8 ?SetMode@SuperThief@@AAEXHD@Z PROC NEAR ; SuperThief::SetMode ; File aigame.cpp ; Line 1770 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 1771 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 1774 mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR -16+[ebp], cl cmp BYTE PTR -16+[ebp], 0 je SHORT $L5625 cmp BYTE PTR -16+[ebp], 1 je SHORT $L5626 cmp BYTE PTR -16+[ebp], 2 je SHORT $L5627 jmp $L5620 $L5625: ; Line 1785 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 1786 jmp $L5620 $L5626: ; Line 1788 push 6 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 1789 jmp $L5620 $L5627: ; Line 1792 mov DWORD PTR _flags$5628[ebp], 128 ; 00000080H ; Line 1793 lea ecx, DWORD PTR _flags$5628[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 1795 mov DWORD PTR _flags$5628[ebp], 25165824 ; 01800000H ; Line 1796 lea eax, DWORD PTR _flags$5628[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 1798 mov edx, DWORD PTR _me$[ebp] push edx push 65540 ; 00010004H push -1 push 1065353216 ; 3f800000H push 1 push 4 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 1800 mov DWORD PTR _temp$5629[ebp], 0 ; Line 1801 lea ecx, DWORD PTR _temp$5629[ebp] push ecx push 2 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 1802 push -1 push -1 push 0 push 1086324736 ; 40c00000H push 1133641728 ; 43920000H push 1131806720 ; 43760000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L5620: ; Line 1807 call _rand mov DWORD PTR -20+[ebp], eax fild DWORD PTR -20+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+20] ; Line 1808 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _mode$[ebp] mov BYTE PTR [ecx+12], dl ; Line 1809 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx], 0 ; Line 1810 mov esp, ebp pop ebp ret 8 ?SetMode@SuperThief@@AAEXHD@Z ENDP ; SuperThief::SetMode _TEXT ENDS PUBLIC ??X@YA?AUvector@@AAU0@M@Z ; operator*= PUBLIC __real@4@4003a000000000000000 PUBLIC __real@4@4001a000000000000000 PUBLIC __real@4@3ffe8000000000000000 PUBLIC ?SpewEverything@SuperThief@@AAEXH@Z ; SuperThief::SpewEverything ; COMDAT __real@4@4003a000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4003a000000000000000 DD 041a00000r ; 20 CONST ENDS ; COMDAT __real@4@4001a000000000000000 CONST SEGMENT __real@4@4001a000000000000000 DD 040a00000r ; 5 CONST ENDS ; COMDAT __real@4@3ffe8000000000000000 CONST SEGMENT __real@4@3ffe8000000000000000 DD 03f000000r ; 0.5 CONST ENDS _TEXT SEGMENT $T10667 = -60 $T10668 = -72 _me$ = 8 _this$ = -76 _i$ = -8 _powerup_handle$ = -4 _room$ = -12 _pos$ = -24 _id$5643 = -32 _j$5644 = -28 _speed$5648 = -36 _dir$5650 = -48 ?SpewEverything@SuperThief@@AAEXH@Z PROC NEAR ; SuperThief::SpewEverything ; File aigame.cpp ; Line 1813 push ebp mov ebp, esp sub esp, 92 ; 0000005cH mov DWORD PTR _this$[ebp], ecx ; Line 1819 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 1820 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 1822 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L5640 $L5641: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx $L5640: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] cmp ecx, DWORD PTR [eax+28] jge $L5642 ; Line 1827 mov DWORD PTR _j$5644[ebp], 0 jmp SHORT $L5645 $L5646: mov edx, DWORD PTR _j$5644[ebp] add edx, 1 mov DWORD PTR _j$5644[ebp], edx $L5645: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] imul edx, 12 ; 0000000cH movsx eax, BYTE PTR [ecx+edx+40] cmp DWORD PTR _j$5644[ebp], eax jge $L5647 ; Line 1829 call _rand mov DWORD PTR -80+[ebp], eax fild DWORD PTR -80+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4003a000000000000000 fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR _speed$5648[ebp] ; Line 1832 call _rand mov DWORD PTR -84+[ebp], eax fild DWORD PTR -84+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$5650[ebp] ; Line 1833 call _rand mov DWORD PTR -88+[ebp], eax fild DWORD PTR -88+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$5650[ebp+4] ; Line 1834 call _rand mov DWORD PTR -92+[ebp], eax fild DWORD PTR -92+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$5650[ebp+8] ; Line 1836 lea ecx, DWORD PTR _dir$5650[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 1837 mov edx, DWORD PTR _speed$5648[ebp] push edx lea eax, DWORD PTR _dir$5650[ebp] push eax lea ecx, DWORD PTR $T10668[ebp] push ecx call ??X@YA?AUvector@@AAU0@M@Z ; operator*= add esp, 12 ; 0000000cH mov edx, DWORD PTR [eax] mov DWORD PTR $T10667[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10667[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10667[ebp+8], edx ; Line 1839 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] imul edx, 12 ; 0000000cH movsx eax, BYTE PTR [ecx+edx+32] push eax lea ecx, DWORD PTR _id$5643[ebp] push ecx push 9 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR [eax+ecx+36] push edx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 1840 lea eax, DWORD PTR _dir$5650[ebp] push eax push -1 push 0 lea ecx, DWORD PTR _pos$[ebp] push ecx mov edx, DWORD PTR _room$[ebp] push edx mov ax, WORD PTR _id$5643[ebp] push eax push 7 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _powerup_handle$[ebp], eax ; Line 1841 jmp $L5646 $L5647: ; Line 1843 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$[ebp] imul eax, 12 ; 0000000cH mov BYTE PTR [edx+eax+40], 0 ; Line 1844 jmp $L5641 $L5642: ; Line 1845 mov esp, ebp pop ebp ret 4 ?SpewEverything@SuperThief@@AAEXH@Z ENDP ; SuperThief::SpewEverything _TEXT ENDS ; COMDAT ??X@YA?AUvector@@AAU0@M@Z _TEXT SEGMENT _v$ = 12 _s$ = 16 $T10676 = 8 $T10677 = -12 $T10678 = -24 ??X@YA?AUvector@@AAU0@M@Z PROC NEAR ; operator*=, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 191 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 192 mov eax, DWORD PTR _s$[ebp] push eax sub esp, 12 ; 0000000cH mov ecx, DWORD PTR _v$[ebp] mov edx, esp mov eax, DWORD PTR [ecx] mov DWORD PTR [edx], eax mov eax, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax mov ecx, DWORD PTR [ecx+8] mov DWORD PTR [edx+8], ecx lea edx, DWORD PTR $T10678[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10677[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10677[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10677[ebp+8], eax mov ecx, DWORD PTR _v$[ebp] mov edx, DWORD PTR $T10677[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10677[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10677[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR $T10676[ebp] mov ecx, DWORD PTR $T10677[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T10677[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T10677[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T10676[ebp] ; Line 193 mov esp, ebp pop ebp ret 0 ??X@YA?AUvector@@AAU0@M@Z ENDP ; operator*= _TEXT ENDS PUBLIC ?DoSteal@SuperThief@@AAE_NHH@Z ; SuperThief::DoSteal PUBLIC ?DoNotify@SuperThief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; SuperThief::DoNotify _TEXT SEGMENT _me$ = 8 _notify$ = 12 _this$ = -16 _target_handle$5661 = -4 _target_type$5662 = -8 _f_success$5664 = -12 ?DoNotify@SuperThief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z PROC NEAR ; SuperThief::DoNotify ; File aigame.cpp ; Line 1848 push ebp mov ebp, esp sub esp, 24 ; 00000018H mov DWORD PTR _this$[ebp], ecx ; Line 1849 mov eax, DWORD PTR _notify$[ebp] cmp DWORD PTR [eax], 23 ; 00000017H jne SHORT $L5663 ; Line 1854 lea ecx, DWORD PTR _target_handle$5661[ebp] push ecx push 19 ; 00000013H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 1855 push 0 lea eax, DWORD PTR _target_type$5662[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _target_handle$5661[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 1857 cmp DWORD PTR _target_type$5662[ebp], 4 jne SHORT $L5663 ; Line 1861 call _rand mov DWORD PTR -20+[ebp], eax fild DWORD PTR -20+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+20] ; Line 1862 mov ecx, DWORD PTR _target_handle$5661[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoSteal@SuperThief@@AAE_NHH@Z ; SuperThief::DoSteal mov BYTE PTR _f_success$5664[ebp], al $L5663: ; Line 1867 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx+12] mov BYTE PTR -24+[ebp], dl cmp BYTE PTR -24+[ebp], 3 je SHORT $L5671 cmp BYTE PTR -24+[ebp], 4 je SHORT $L5673 jmp SHORT $L5668 $L5671: ; Line 1870 mov eax, DWORD PTR _notify$[ebp] cmp DWORD PTR [eax], 27 ; 0000001bH jne SHORT $L5672 ; Line 1872 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SuperThief@@AAEXHD@Z ; SuperThief::SetMode $L5672: ; Line 1875 jmp SHORT $L5668 $L5673: ; Line 1879 mov edx, DWORD PTR _notify$[ebp] cmp DWORD PTR [edx], 28 ; 0000001cH jne SHORT $L5674 ; Line 1881 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SuperThief@@AAEXHD@Z ; SuperThief::SetMode $L5674: $L5668: ; Line 1886 mov al, 1 ; Line 1887 mov esp, ebp pop ebp ret 8 ?DoNotify@SuperThief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ENDP ; SuperThief::DoNotify _TEXT ENDS PUBLIC __real@4@4000a000000000000000 PUBLIC __real@4@400e8000000000000000 EXTRN _sprintf:NEAR EXTRN _free:NEAR EXTRN _malloc:NEAR EXTRN _strcpy:NEAR _DATA SEGMENT ORG $+3 $SG5700 DB 'SUPER THIEF: no mo'' room', 0aH, 00H ORG $+2 $SG5721 DB 'Super Thief: Nice %s!', 0aH, 00H ORG $+1 $SG5727 DB 'Super Thief: Not taking anything', 0aH, 00H _DATA ENDS ; COMDAT __real@4@4000a000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4000a000000000000000 DD 040200000r ; 2.5 CONST ENDS ; COMDAT __real@4@400e8000000000000000 CONST SEGMENT __real@4@400e8000000000000000 DD 047000000r ; 32768 CONST ENDS _TEXT SEGMENT _me$ = 8 _it$ = 12 _this$ = -316 _max_tries$ = -8 _i$ = -24 _count_max$ = -32 _count_num$ = -20 _attempted_steals$ = -28 _ftime$ = -4 _can_take$5701 = -296 _amount$5702 = -36 _message$5703 = -292 _max$5712 = -300 _new_amount$5715 = -304 _wpn$5724 = -312 _snd$5725 = -308 ?DoSteal@SuperThief@@AAE_NHH@Z PROC NEAR ; SuperThief::DoSteal ; File aigame.cpp ; Line 1890 push ebp mov ebp, esp sub esp, 332 ; 0000014cH mov DWORD PTR _this$[ebp], ecx ; Line 1891 mov eax, DWORD PTR ?numSuperThiefableItems@@3HA ; numSuperThiefableItems mov DWORD PTR _max_tries$[ebp], eax ; Line 1897 mov ecx, DWORD PTR ?numSuperThiefableItems@@3HA ; numSuperThiefableItems push ecx call _malloc add esp, 4 mov DWORD PTR _attempted_steals$[ebp], eax ; Line 1898 cmp DWORD PTR _attempted_steals$[ebp], 0 jne SHORT $L5689 ; Line 1899 xor al, al jmp $L5679 $L5689: ; Line 1901 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fstp DWORD PTR _ftime$[ebp] ; Line 1902 fld DWORD PTR _ftime$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L5691 ; Line 1903 mov DWORD PTR _ftime$[ebp], 1065353216 ; 3f800000H $L5691: ; Line 1904 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fdiv DWORD PTR _ftime$[ebp] call __ftol push eax call _srand add esp, 4 ; Line 1906 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L5692 $L5693: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L5692: mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR ?numSuperThiefableItems@@3HA ; numSuperThiefableItems jge SHORT $L5694 ; Line 1908 mov ecx, DWORD PTR _attempted_steals$[ebp] add ecx, DWORD PTR _i$[ebp] mov BYTE PTR [ecx], 0 ; Line 1909 jmp SHORT $L5693 $L5694: ; Line 1911 mov edx, DWORD PTR _max_tries$[ebp] mov eax, DWORD PTR _max_tries$[ebp] sub eax, 1 mov DWORD PTR _max_tries$[ebp], eax test edx, edx je $L5697 ; Line 1913 call _rand cdq idiv DWORD PTR ?numSuperThiefableItems@@3HA ; numSuperThiefableItems mov DWORD PTR _i$[ebp], edx ; Line 1915 mov ecx, DWORD PTR _attempted_steals$[ebp] add ecx, DWORD PTR _i$[ebp] xor edx, edx mov dl, BYTE PTR [ecx] test edx, edx je SHORT $L5698 ; Line 1918 mov eax, DWORD PTR _max_tries$[ebp] add eax, 1 mov DWORD PTR _max_tries$[ebp], eax ; Line 1919 jmp SHORT $L5694 $L5698: ; Line 1922 mov ecx, DWORD PTR _attempted_steals$[ebp] add ecx, DWORD PTR _i$[ebp] mov BYTE PTR [ecx], 1 ; Line 1925 mov DWORD PTR _count_max$[ebp], 25 ; 00000019H ; Line 1926 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] mov DWORD PTR _count_num$[ebp], ecx ; Line 1928 mov edx, DWORD PTR _count_num$[ebp] cmp edx, DWORD PTR _count_max$[ebp] jl SHORT $L5699 ; Line 1930 push OFFSET FLAT:$SG5700 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 1931 jmp SHORT $L5694 $L5699: ; Line 1936 mov BYTE PTR _can_take$5701[ebp], 0 ; Line 1937 mov DWORD PTR _amount$5702[ebp], 0 ; Line 1941 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+8] mov DWORD PTR -320+[ebp], ecx cmp DWORD PTR -320+[ebp], 0 je SHORT $L5708 cmp DWORD PTR -320+[ebp], 1 je SHORT $L5710 jmp $L5705 $L5708: ; Line 1944 mov edx, DWORD PTR _i$[ebp] imul edx, 28 ; 0000001cH mov eax, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx] push eax lea ecx, DWORD PTR _amount$5702[ebp] push ecx push 7 push 1 mov edx, DWORD PTR _it$[ebp] push edx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 1945 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH cmp DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax], 0 je SHORT $L5709 cmp DWORD PTR _amount$5702[ebp], 0 je SHORT $L5709 ; Line 1947 mov BYTE PTR _can_take$5701[ebp], 1 ; Line 1948 mov ecx, DWORD PTR _i$[ebp] imul ecx, 28 ; 0000001cH mov edx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[ecx+16] push edx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push 90 ; 0000005aH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea eax, DWORD PTR _message$5703[ebp] push eax call _sprintf add esp, 12 ; 0000000cH $L5709: ; Line 1950 jmp $L5705 $L5710: ; Line 1955 mov ecx, DWORD PTR _i$[ebp] imul ecx, 28 ; 0000001cH mov edx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[ecx] push edx lea eax, DWORD PTR _amount$5702[ebp] push eax push 7 push 1 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 1957 cmp DWORD PTR _amount$5702[ebp], 0 je $L5719 ; Line 1961 mov edx, DWORD PTR _i$[ebp] imul edx, 28 ; 0000001cH cmp DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx], 14 ; 0000000eH jle SHORT $L5713 ; Line 1964 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, 19 ; 00000013H sub ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax] mov DWORD PTR -324+[ebp], ecx fild DWORD PTR -324+[ebp] fdiv DWORD PTR __real@4@4000a000000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 call __ftol mov DWORD PTR _max$5712[ebp], eax ; Line 1965 jmp SHORT $L5714 $L5713: ; Line 1968 mov edx, DWORD PTR _i$[ebp] imul edx, 28 ; 0000001cH mov eax, 14 ; 0000000eH sub eax, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx] mov DWORD PTR -328+[ebp], eax fild DWORD PTR -328+[ebp] fdiv DWORD PTR __real@4@4000a000000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 call __ftol mov DWORD PTR _max$5712[ebp], eax $L5714: ; Line 1971 call _rand mov DWORD PTR -332+[ebp], eax fild DWORD PTR -332+[ebp] fdiv DWORD PTR __real@4@400e8000000000000000 fimul DWORD PTR _max$5712[ebp] fadd DWORD PTR __real@4@3fff8000000000000000 call __ftol mov DWORD PTR _new_amount$5715[ebp], eax ; Line 1973 mov ecx, DWORD PTR _new_amount$5715[ebp] cmp ecx, DWORD PTR _amount$5702[ebp] jge SHORT $L5717 ; Line 1974 mov edx, DWORD PTR _new_amount$5715[ebp] mov DWORD PTR _amount$5702[ebp], edx $L5717: ; Line 1976 mov BYTE PTR _can_take$5701[ebp], 1 ; Line 1978 cmp DWORD PTR _amount$5702[ebp], 1 jne SHORT $L5718 ; Line 1980 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+16] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push 94 ; 0000005eH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea edx, DWORD PTR _message$5703[ebp] push edx call _sprintf add esp, 12 ; 0000000cH ; Line 1981 jmp SHORT $L5719 $L5718: ; Line 1983 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+16] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov edx, DWORD PTR _amount$5702[ebp] push edx push 95 ; 0000005fH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea eax, DWORD PTR _message$5703[ebp] push eax call _sprintf add esp, 16 ; 00000010H $L5719: $L5705: ; Line 1990 mov ecx, DWORD PTR _can_take$5701[ebp] and ecx, 255 ; 000000ffH test ecx, ecx jne SHORT $L5720 ; Line 1991 jmp $L5694 $L5720: ; Line 1993 mov edx, DWORD PTR _i$[ebp] imul edx, 28 ; 0000001cH mov eax, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx+16] push eax call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push OFFSET FLAT:$SG5721 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH ; Line 1995 lea ecx, DWORD PTR _message$5703[ebp] push ecx mov edx, DWORD PTR _it$[ebp] push edx call DWORD PTR ?Player_AddHudMessage@@3P6AXHPAD@ZA ; Player_AddHudMessage add esp, 8 ; Line 1997 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [ecx+4] mov ecx, DWORD PTR [ecx+28] imul ecx, 12 ; 0000000cH mov al, BYTE PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax] mov BYTE PTR [edx+ecx+32], al ; Line 1998 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov eax, DWORD PTR [ecx+28] imul eax, 12 ; 0000000cH mov ecx, DWORD PTR _it$[ebp] mov DWORD PTR [edx+eax+36], ecx ; Line 1999 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR [edx+28] imul ecx, 12 ; 0000000cH mov dl, BYTE PTR _amount$5702[ebp] mov BYTE PTR [eax+ecx+40], dl ; Line 2000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+28] add edx, 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+28], edx ; Line 2002 mov edx, DWORD PTR _i$[ebp] imul edx, 28 ; 0000001cH cmp DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx+8], 0 jne $L5722 ; Line 2004 mov DWORD PTR _amount$5702[ebp], 0 ; Line 2005 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+4] cmp eax, DWORD PTR [edx+24] jle $L5723 ; Line 2007 mov ecx, DWORD PTR _i$[ebp] imul ecx, 28 ; 0000001cH mov edx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[ecx+20] push edx call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov WORD PTR _wpn$5724[ebp], ax ; Line 2008 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+24] push ecx call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _snd$5725[ebp], eax ; Line 2010 push 0 lea edx, DWORD PTR _snd$5725[ebp] push edx push 8 push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2011 push 0 mov ecx, DWORD PTR _i$[ebp] imul ecx, 28 ; 0000001cH add ecx, OFFSET FLAT:?SuperThiefableItems@@3PAUtSuperThiefItems@@A+12 push ecx push 9 push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2012 push 0 lea eax, DWORD PTR _wpn$5724[ebp] push eax push 4 push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2014 mov edx, DWORD PTR _i$[ebp] imul edx, 28 ; 0000001cH mov eax, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx+20] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 332 ; 0000014cH push edx call _strcpy add esp, 8 ; Line 2015 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+20] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 432 ; 000001b0H push eax call _strcpy add esp, 8 ; Line 2016 mov ecx, DWORD PTR _i$[ebp] imul ecx, 28 ; 0000001cH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[ecx+12] mov DWORD PTR [eax+532], ecx $L5723: ; Line 2019 jmp SHORT $L5726 $L5722: ; Line 2021 mov edx, DWORD PTR _amount$5702[ebp] imul edx, -1 mov DWORD PTR _amount$5702[ebp], edx $L5726: ; Line 2024 mov eax, DWORD PTR _i$[ebp] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax] push ecx lea edx, DWORD PTR _amount$5702[ebp] push edx push 7 push 0 mov eax, DWORD PTR _it$[ebp] push eax call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 2026 mov ecx, DWORD PTR _attempted_steals$[ebp] push ecx call _free add esp, 4 ; Line 2027 mov al, 1 jmp SHORT $L5679 $L5697: ; Line 2031 push OFFSET FLAT:$SG5727 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 2032 mov edx, DWORD PTR _attempted_steals$[ebp] push edx call _free add esp, 4 ; Line 2033 xor al, al $L5679: ; Line 2034 mov esp, ebp pop ebp ret 8 ?DoSteal@SuperThief@@AAE_NHH@Z ENDP ; SuperThief::DoSteal _TEXT ENDS PUBLIC __real@4@4000c000000000000000 PUBLIC __real@4@4002f000000000000000 PUBLIC ?DoInit@SuperThief@@AAEXH@Z ; SuperThief::DoInit _DATA SEGMENT ORG $+2 $SG5740 DB 'STEmitter', 00H ORG $+2 $SG5742 DB 'Laser Level 1 - Red', 00H $SG5744 DB 'Laser level 1', 00H _DATA ENDS ; COMDAT __real@4@4000c000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4000c000000000000000 DD 040400000r ; 3 CONST ENDS ; COMDAT __real@4@4002f000000000000000 CONST SEGMENT __real@4@4002f000000000000000 DD 041700000r ; 15 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -948 _ch$ = -16 _m$ = -940 _wpn$ = -944 _snd$ = -20 ?DoInit@SuperThief@@AAEXH@Z PROC NEAR ; SuperThief::DoInit ; File aigame.cpp ; Line 2037 push ebp mov ebp, esp sub esp, 960 ; 000003c0H mov DWORD PTR _this$[ebp], ecx ; Line 2039 mov WORD PTR _ch$[ebp+8], 4 ; Line 2040 mov DWORD PTR _ch$[ebp+12], 556 ; 0000022cH ; Line 2041 mov DWORD PTR _ch$[ebp], 0 ; Line 2042 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 2044 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 2047 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 2048 lea ecx, DWORD PTR _m$[ebp] push ecx push 20 ; 00000014H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 2050 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -952+[ebp] call _rand mov DWORD PTR -956+[ebp], eax fild DWORD PTR -956+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -952+[ebp] fadd DWORD PTR __real@4@4000c000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+4] ; Line 2051 fld DWORD PTR _m$[ebp+52] fdiv DWORD PTR __real@4@4002f000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] ; Line 2052 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+12], 3 ; Line 2053 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+13], 0 ; Line 2055 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+28], 0 ; Line 2056 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+24], -1 ; Line 2058 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax], 0 ; Line 2059 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+16], 0 ; Line 2060 call _rand mov DWORD PTR -960+[ebp], eax fild DWORD PTR -960+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+20] ; Line 2062 push 1 push 1 push 0 push 2 push 2 push OFFSET FLAT:$SG5740 mov edx, DWORD PTR _me$[ebp] push edx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+548], eax ; Line 2064 push OFFSET FLAT:$SG5742 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov WORD PTR _wpn$[ebp], ax ; Line 2065 push OFFSET FLAT:$SG5744 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _snd$[ebp], eax ; Line 2067 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+532], 1048576000 ; 3e800000H ; Line 2069 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+552], 0 ; Line 2071 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+536], 0 ; Line 2072 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+540], 0 ; Line 2074 push 0 lea edx, DWORD PTR _snd$[ebp] push edx push 8 push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2075 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 532 ; 00000214H push edx push 9 push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2076 push 0 lea ecx, DWORD PTR _wpn$[ebp] push ecx push 4 push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2077 mov esp, ebp pop ebp ret 4 ?DoInit@SuperThief@@AAEXH@Z ENDP ; SuperThief::DoInit _TEXT ENDS PUBLIC ?FireFlare@SuperThief@@AAEXH@Z ; SuperThief::FireFlare _DATA SEGMENT ORG $+2 $SG5750 DB 'Yellow flare', 00H ORG $+3 $SG5752 DB 'Flare', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -924 _mstruct$ = -920 ?FireFlare@SuperThief@@AAEXH@Z PROC NEAR ; SuperThief::FireFlare ; Line 2080 push ebp mov ebp, esp sub esp, 924 ; 0000039cH mov DWORD PTR _this$[ebp], ecx ; Line 2083 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _mstruct$[ebp+44], eax ; Line 2084 push OFFSET FLAT:$SG5750 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _mstruct$[ebp+264], eax ; Line 2085 cmp DWORD PTR _mstruct$[ebp+264], -1 jne SHORT $L5751 ; Line 2086 jmp SHORT $L5748 $L5751: ; Line 2087 mov BYTE PTR _mstruct$[ebp+231], 1 ; Line 2089 push 1065353216 ; 3f800000H push OFFSET FLAT:$SG5752 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH ; Line 2091 lea edx, DWORD PTR _mstruct$[ebp] push edx push 73 ; 00000049H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L5748: ; Line 2092 mov esp, ebp pop ebp ret 4 ?FireFlare@SuperThief@@AAEXH@Z ENDP ; SuperThief::FireFlare _TEXT ENDS PUBLIC ?CheckAndFireSecondary@SuperThief@@AAEXH@Z ; SuperThief::CheckAndFireSecondary _TEXT SEGMENT _me$ = 8 _this$ = -944 _i$ = -8 _wname$ = -20 _sname$ = -12 _best_select$ = -4 _best_index$ = -16 _mstruct$5768 = -940 ?CheckAndFireSecondary@SuperThief@@AAEXH@Z PROC NEAR ; SuperThief::CheckAndFireSecondary ; Line 2095 push ebp mov ebp, esp sub esp, 944 ; 000003b0H mov DWORD PTR _this$[ebp], ecx ; Line 2099 mov DWORD PTR _best_select$[ebp], -1 ; Line 2102 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L5762 $L5763: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L5762: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR [edx+28] jge $L5764 ; Line 2104 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$[ebp] imul eax, 12 ; 0000000cH movsx ecx, BYTE PTR [edx+eax+40] test ecx, ecx jle $L5766 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH movsx edx, BYTE PTR [eax+ecx+32] imul edx, 28 ; 0000001cH cmp DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx+8], 1 jne $L5766 ; Line 2106 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] imul edx, 12 ; 0000000cH movsx eax, BYTE PTR [ecx+edx+32] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR _best_select$[ebp] cmp ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+4] jge SHORT $L5766 ; Line 2108 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH movsx edx, BYTE PTR [eax+ecx+32] imul edx, 28 ; 0000001cH mov eax, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[edx+20] mov DWORD PTR _wname$[ebp], eax ; Line 2109 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$[ebp] imul eax, 12 ; 0000000cH movsx ecx, BYTE PTR [edx+eax+32] imul ecx, 28 ; 0000001cH mov edx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[ecx+24] mov DWORD PTR _sname$[ebp], edx ; Line 2110 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] imul edx, 12 ; 0000000cH movsx eax, BYTE PTR [ecx+edx+32] imul eax, 28 ; 0000001cH mov ecx, DWORD PTR ?SuperThiefableItems@@3PAUtSuperThiefItems@@A[eax+4] mov DWORD PTR _best_select$[ebp], ecx ; Line 2111 mov edx, DWORD PTR _i$[ebp] mov DWORD PTR _best_index$[ebp], edx $L5766: ; Line 2114 jmp $L5763 $L5764: ; Line 2116 cmp DWORD PTR _best_select$[ebp], 0 jl $L5767 ; Line 2118 mov eax, DWORD PTR _best_index$[ebp] imul eax, 12 ; 0000000cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx+eax+40] sub al, 1 mov ecx, DWORD PTR _best_index$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [edx+4] mov BYTE PTR [edx+ecx+40], al ; Line 2122 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _mstruct$5768[ebp+44], eax ; Line 2123 mov ecx, DWORD PTR _wname$[ebp] push ecx call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _mstruct$5768[ebp+264], eax ; Line 2124 cmp DWORD PTR _mstruct$5768[ebp+264], -1 jne SHORT $L5769 ; Line 2125 jmp SHORT $L5756 $L5769: ; Line 2126 mov BYTE PTR _mstruct$5768[ebp+231], 1 ; Line 2128 push 1065353216 ; 3f800000H mov edx, DWORD PTR _sname$[ebp] push edx call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH ; Line 2130 lea ecx, DWORD PTR _mstruct$5768[ebp] push ecx push 73 ; 00000049H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L5767: $L5756: ; Line 2132 mov esp, ebp pop ebp ret 4 ?CheckAndFireSecondary@SuperThief@@AAEXH@Z ENDP ; SuperThief::CheckAndFireSecondary _TEXT ENDS PUBLIC __real@4@4001c000000000000000 PUBLIC __real@4@4001c666660000000000 PUBLIC __real@4@4006ea00000000000000 PUBLIC __real@4@4001e000000000000000 PUBLIC __real@4@4002a000000000000000 PUBLIC __real@4@3ffec000000000000000 PUBLIC ?DoInterval@SuperThief@@AAEXH@Z ; SuperThief::DoInterval _DATA SEGMENT ORG $+2 $SG5791 DB 'ST: Dying', 0aH, 00H ORG $+1 $SG5797 DB 'TubbsHitBlast', 00H ORG $+2 $SG5800 DB 'ST: Died', 0aH, 00H ORG $+2 $SG5807 DB 'Invisiblepowerup', 00H ORG $+3 $SG5810 DB 'Stlaser', 00H _DATA ENDS ; COMDAT __real@4@4001c000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4001c000000000000000 DD 040c00000r ; 6 CONST ENDS ; COMDAT __real@4@4001c666660000000000 CONST SEGMENT __real@4@4001c666660000000000 DD 040c66666r ; 6.2 CONST ENDS ; COMDAT __real@4@4006ea00000000000000 CONST SEGMENT __real@4@4006ea00000000000000 DD 0436a0000r ; 234 CONST ENDS ; COMDAT __real@4@4001e000000000000000 CONST SEGMENT __real@4@4001e000000000000000 DD 040e00000r ; 7 CONST ENDS ; COMDAT __real@4@4002a000000000000000 CONST SEGMENT __real@4@4002a000000000000000 DD 041200000r ; 10 CONST ENDS ; COMDAT __real@4@3ffec000000000000000 CONST SEGMENT __real@4@3ffec000000000000000 DD 03f400000r ; 0.75 CONST ENDS _TEXT SEGMENT $T10693 = -2024 $T10694 = -2036 $T10695 = -2048 $T10696 = -2060 _me$ = 8 _this$ = -2064 _f_force_ranged$ = -20 _anim_frame$ = -12 _shields$ = -8 _flags$ = -4 _room$ = -24 _pos$ = -956 _ray$5783 = -1072 _orient$5784 = -1012 _end_pos$5785 = -968 _fvi_flags$5788 = -972 _fate$5789 = -976 _weapon_id$5796 = -1076 _flags$5804 = -1080 _awareness$5805 = -1084 _mstruct$5808 = -2008 _last_see_time$5815 = -2012 ?DoInterval@SuperThief@@AAEXH@Z PROC NEAR ; SuperThief::DoInterval ; File aigame.cpp ; Line 2135 push ebp mov ebp, esp sub esp, 2100 ; 00000834H push esi mov DWORD PTR _this$[ebp], ecx ; Line 2136 mov BYTE PTR _f_force_ranged$[ebp], 0 ; Line 2145 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2146 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2147 push 0 lea ecx, DWORD PTR _anim_frame$[ebp] push ecx push 18 ; 00000012H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2148 push 0 lea eax, DWORD PTR _shields$[ebp] push eax push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2149 push 0 lea edx, DWORD PTR _flags$[ebp] push edx push 10 ; 0000000aH push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2151 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor eax, eax mov al, BYTE PTR [edx+552] test eax, eax je $L5782 ; Line 2156 push 0 lea ecx, DWORD PTR _orient$5784[ebp] push ecx push 4 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2159 mov eax, DWORD PTR _pos$[ebp] mov DWORD PTR _end_pos$5785[ebp], eax mov ecx, DWORD PTR _pos$[ebp+4] mov DWORD PTR _end_pos$5785[ebp+4], ecx mov edx, DWORD PTR _pos$[ebp+8] mov DWORD PTR _end_pos$5785[ebp+8], edx ; Line 2160 push 1157234688 ; 44fa0000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$5784[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$5784[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$5784[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T10695[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T10694[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T10694[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T10694[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T10694[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T10694[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T10694[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _end_pos$5785[ebp] push eax lea ecx, DWORD PTR $T10696[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T10693[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T10693[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T10693[ebp+8], edx ; Line 2162 mov DWORD PTR _fvi_flags$5788[ebp], 1048585 ; 00100009H ; Line 2163 lea eax, DWORD PTR _ray$5783[ebp] push eax mov ecx, DWORD PTR _fvi_flags$5788[ebp] push ecx push 0 mov edx, DWORD PTR _room$[ebp] push edx lea eax, DWORD PTR _end_pos$5785[ebp] push eax lea ecx, DWORD PTR _pos$[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast add esp, 28 ; 0000001cH mov DWORD PTR _fate$5789[ebp], eax ; Line 2165 push 0 lea eax, DWORD PTR _ray$5783[ebp+4] push eax push 5 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+544] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2166 push 0 lea ecx, DWORD PTR _ray$5783[ebp+8] push ecx push 3 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+544] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L5782: ; Line 2169 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR _shields$[ebp] fcomp DWORD PTR [eax+8] fnstsw ax test ah, 1 je SHORT $L10697 mov DWORD PTR -2068+[ebp], 1 jmp SHORT $L10698 $L10697: mov DWORD PTR -2068+[ebp], 0 $L10698: xor ecx, ecx cmp DWORD PTR -2068+[ebp], 0 setne cl mov BYTE PTR _f_force_ranged$[ebp], cl mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _f_force_ranged$[ebp] mov BYTE PTR [eax+13], cl ; Line 2171 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+12] cmp ecx, 2 je SHORT $L5790 mov edx, DWORD PTR _flags$[ebp] and edx, 8388608 ; 00800000H test edx, edx je SHORT $L5790 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 jne SHORT $L5790 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L5790 ; Line 2173 push OFFSET FLAT:$SG5791 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 2174 push 2 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SuperThief@@AAEXHD@Z ; SuperThief::SetMode $L5790: ; Line 2177 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+12] cmp eax, 2 jne $L5792 ; Line 2180 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 1 je SHORT $L5795 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 1 je SHORT $L5794 $L5795: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 1 je SHORT $L5793 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 1 jne SHORT $L5793 $L5794: ; Line 2184 push OFFSET FLAT:$SG5797 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$5796[ebp], eax ; Line 2185 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx push 0 lea edx, DWORD PTR _pos$[ebp] push edx mov eax, DWORD PTR _room$[ebp] push eax mov cx, WORD PTR _weapon_id$5796[ebp] push ecx push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH $L5793: ; Line 2188 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 1 je SHORT $L5798 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 1 jne SHORT $L5798 ; Line 2190 push 1065353216 ; 3f800000H push 1232348160 ; 49742400H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH $L5798: ; Line 2193 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx] fcomp DWORD PTR __real@4@4001c666660000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L5799 ; Line 2195 push OFFSET FLAT:$SG5800 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 2196 push 0 push 0 push 68320 ; 00010ae0H push 1148846080 ; 447a0000H push -1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H $L5799: ; Line 2199 jmp $L5834 $L5792: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+12] cmp edx, 4 jne $L5802 ; Line 2201 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 1 je SHORT $L5803 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 1 jne SHORT $L5803 ; Line 2203 mov DWORD PTR _flags$5804[ebp], 536871936 ; 20000400H ; Line 2204 lea eax, DWORD PTR _flags$5804[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 2206 mov DWORD PTR _awareness$5805[ebp], 1120403456 ; 42c80000H ; Line 2207 lea edx, DWORD PTR _awareness$5805[ebp] push edx push 50 ; 00000032H push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L5803: ; Line 2211 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+16] fcomp DWORD PTR __real@4@4006ea00000000000000 fnstsw ax test ah, 1 je $L5806 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4006ea00000000000000 fnstsw ax test ah, 1 jne $L5806 ; Line 2213 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+552], 1 ; Line 2214 push 0 mov edx, DWORD PTR _me$[ebp] push edx push 0 lea eax, DWORD PTR _pos$[ebp] push eax mov ecx, DWORD PTR _room$[ebp] push ecx push OFFSET FLAT:$SG5807 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 push eax push 7 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+544], eax ; Line 2219 push 0 lea edx, DWORD PTR _mstruct$5808[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2220 push 0 lea ecx, DWORD PTR _mstruct$5808[ebp+176] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2221 push 0 lea eax, DWORD PTR _mstruct$5808[ebp+652] push eax push 3 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+544] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2223 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+548] mov DWORD PTR _mstruct$5808[ebp+44], eax ; Line 2224 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+544] mov DWORD PTR _mstruct$5808[ebp+48], eax ; Line 2225 mov DWORD PTR _mstruct$5808[ebp+576], 1259902592 ; 4b189680H ; Line 2226 mov DWORD PTR _mstruct$5808[ebp+580], 1065353216 ; 3f800000H ; Line 2228 mov DWORD PTR _mstruct$5808[ebp+272], 1065353216 ; 3f800000H ; Line 2229 mov DWORD PTR _mstruct$5808[ebp+588], 2 ; Line 2230 mov DWORD PTR _mstruct$5808[ebp+264], 1 ; Line 2231 push OFFSET FLAT:$SG5810 call DWORD PTR ?Scrpt_FindTextureName@@3P6AHPAD@ZA ; Scrpt_FindTextureName add esp, 4 mov WORD PTR _mstruct$5808[ebp+6], ax ; Line 2232 mov DWORD PTR _mstruct$5808[ebp+568], 16912 ; 00004210H ; Line 2234 mov BYTE PTR _mstruct$5808[ebp+276], 0 ; Line 2235 mov DWORD PTR _mstruct$5808[ebp+592], 0 ; Line 2237 lea ecx, DWORD PTR _mstruct$5808[ebp] push ecx push 103 ; 00000067H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L5806: ; Line 2240 jmp $L5834 $L5802: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+12] cmp ecx, 3 jne SHORT $L5812 ; Line 2243 jmp $L5834 $L5812: ; Line 2247 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+12] test ecx, ecx jne $L5820 ; Line 2249 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fsubr DWORD PTR [esi+20] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+20] ; Line 2251 lea edx, DWORD PTR _last_see_time$5815[ebp] push edx push 25 ; 00000019H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 2253 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+536] fnstsw ax test ah, 65 ; 00000041H jne $L5819 fld DWORD PTR _last_see_time$5815[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fstp DWORD PTR -2072+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -2072+[ebp] fnstsw ax test ah, 65 ; 00000041H je $L5819 ; Line 2255 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?FireFlare@SuperThief@@AAEXH@Z ; SuperThief::FireFlare ; Line 2256 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+540] add edx, 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+540], edx ; Line 2258 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+540], 3 jl SHORT $L5817 ; Line 2260 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+540], 0 ; Line 2261 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -2076+[ebp] call _rand mov DWORD PTR -2080+[ebp], eax fild DWORD PTR -2080+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR -2076+[ebp] fadd DWORD PTR __real@4@4001a000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+536] ; Line 2263 jmp SHORT $L5819 $L5817: ; Line 2265 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@3ffec000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+536] $L5819: ; Line 2269 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+20] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L5820 ; Line 2271 call _rand mov DWORD PTR -2084+[ebp], eax fild DWORD PTR -2084+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+20] ; Line 2272 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?CheckAndFireSecondary@SuperThief@@AAEXH@Z ; SuperThief::CheckAndFireSecondary $L5820: ; Line 2277 mov eax, DWORD PTR _f_force_ranged$[ebp] and eax, 255 ; 000000ffH test eax, eax jne $L5823 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+4] fnstsw ax test ah, 65 ; 00000041H jne $L5823 ; Line 2279 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+12] cmp ecx, 1 jne SHORT $L5824 ; Line 2281 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 2282 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+12], 0 ; Line 2284 jmp SHORT $L5826 $L5824: call _rand cdq mov ecx, 150 ; 00000096H idiv ecx cmp edx, 20 ; 00000014H jle SHORT $L5826 ; Line 2286 push 6 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 2287 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+12], 1 $L5826: ; Line 2290 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+12] test ecx, ecx jne SHORT $L5827 ; Line 2291 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR -2088+[ebp] call _rand mov DWORD PTR -2092+[ebp], eax fild DWORD PTR -2092+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -2088+[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+4] ; Line 2292 jmp SHORT $L5830 $L5827: ; Line 2293 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4000c000000000000000 fstp DWORD PTR -2096+[ebp] call _rand mov DWORD PTR -2100+[ebp], eax fild DWORD PTR -2100+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -2096+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] $L5830: ; Line 2295 jmp SHORT $L5834 $L5823: mov eax, DWORD PTR _f_force_ranged$[ebp] and eax, 255 ; 000000ffH test eax, eax je SHORT $L5834 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+12] test eax, eax je SHORT $L5834 ; Line 2298 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 2299 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+12], 0 $L5834: ; Line 2303 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _anim_frame$[ebp] mov DWORD PTR [edx+16], eax ; Line 2304 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax] ; Line 2305 pop esi mov esp, ebp pop ebp ret 4 ?DoInterval@SuperThief@@AAEXH@Z ENDP ; SuperThief::DoInterval _TEXT ENDS PUBLIC ?CallEvent@SuperThief@@UAEFHPAUtOSIRISEventInfo@@@Z ; SuperThief::CallEvent _TEXT SEGMENT _event$ = 8 _data$ = 12 _this$ = -932 _mo$5848 = -920 _wpn$5851 = -928 _snd$5852 = -924 ?CallEvent@SuperThief@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; SuperThief::CallEvent ; Line 2308 push ebp mov ebp, esp sub esp, 936 ; 000003a8H mov DWORD PTR _this$[ebp], ecx ; Line 2310 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -936+[ebp], eax mov ecx, DWORD PTR -936+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -936+[ebp], ecx cmp DWORD PTR -936+[ebp], 24 ; 00000018H ja $L5841 mov eax, DWORD PTR -936+[ebp] xor edx, edx mov dl, BYTE PTR $L10712[eax] jmp DWORD PTR $L10713[edx*4] $L5844: ; Line 2312 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@SuperThief@@AAEXH@Z ; SuperThief::DoInit ; Line 2313 jmp $L5841 $L5845: ; Line 2315 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoInterval@SuperThief@@AAEXH@Z ; SuperThief::DoInterval ; Line 2316 jmp $L5841 $L5846: ; Line 2318 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@SuperThief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; SuperThief::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp $L5839 $L5847: ; Line 2322 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax mov ecx, DWORD PTR _this$[ebp] call ?SpewEverything@SuperThief@@AAEXH@Z ; SuperThief::SpewEverything ; Line 2324 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+548] mov DWORD PTR _mo$5848[ebp+44], eax ; Line 2325 lea ecx, DWORD PTR _mo$5848[ebp] push ecx push 37 ; 00000025H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 2326 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+544] mov DWORD PTR _mo$5848[ebp+44], ecx ; Line 2327 lea edx, DWORD PTR _mo$5848[ebp] push edx push 37 ; 00000025H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 2329 jmp $L5841 $L5849: ; Line 2332 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx ; Line 2334 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 332 ; 0000014cH push ecx call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov WORD PTR _wpn$5851[ebp], ax ; Line 2335 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 432 ; 000001b0H push eax call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _snd$5852[ebp], eax ; Line 2337 push 0 lea ecx, DWORD PTR _snd$5852[ebp] push ecx push 8 push 0 push 1 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2338 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 532 ; 00000214H push edx push 9 push 0 push 1 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 2339 push 0 lea edx, DWORD PTR _wpn$5851[ebp] push edx push 4 push 0 push 1 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H $L5841: ; Line 2344 mov ax, 257 ; 00000101H $L5839: ; Line 2345 mov esp, ebp pop ebp ret 8 $L10713: DD $L5845 DD $L5847 DD $L5846 DD $L5844 DD $L5849 DD $L5841 $L10712: DB 0 DB 5 DB 5 DB 5 DB 1 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 2 DB 3 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 4 ?CallEvent@SuperThief@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; SuperThief::CallEvent _TEXT ENDS PUBLIC _SaveRestoreState@8 _TEXT SEGMENT _SaveRestoreState@8 PROC NEAR ; Line 2499 push ebp mov ebp, esp ; Line 2500 xor eax, eax ; Line 2501 pop ebp ret 8 _SaveRestoreState@8 ENDP _TEXT ENDS PUBLIC _InitializeDLL@4 _DATA SEGMENT $SG6047 DB 'Game-Checksum FAIL!!! (%ul!=%ul)', 0aH, 00H ORG $+2 $SG6048 DB 'RECOMPILE YOUR SCRIPTS!!!', 0aH, 00H _DATA ENDS _TEXT SEGMENT _func_list$ = 8 _InitializeDLL@4 PROC NEAR ; Line 2504 push ebp mov ebp, esp ; Line 2505 mov eax, DWORD PTR _func_list$[ebp] push eax call ?osicommon_Initialize@@YAXPAUtOSIRISModuleInit@@@Z ; osicommon_Initialize add esp, 4 ; Line 2506 mov ecx, DWORD PTR _func_list$[ebp] cmp DWORD PTR [ecx+1044], -2021094021 ; 87888d7bH je SHORT $L6046 ; Line 2508 push -2021094021 ; 87888d7bH mov edx, DWORD PTR _func_list$[ebp] mov eax, DWORD PTR [edx+1044] push eax push OFFSET FLAT:$SG6047 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 16 ; 00000010H ; Line 2509 push OFFSET FLAT:$SG6048 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 2510 xor al, al jmp SHORT $L6044 $L6046: ; Line 2512 mov ecx, DWORD PTR _func_list$[ebp] mov edx, DWORD PTR [ecx+1032] mov DWORD PTR ?aigame_mod_id@@3HA, edx ; aigame_mod_id ; Line 2513 mov eax, DWORD PTR _func_list$[ebp] mov ecx, DWORD PTR [eax+1028] mov DWORD PTR ?String_table_size@@3HA, ecx ; String_table_size ; Line 2514 mov edx, DWORD PTR _func_list$[ebp] mov eax, DWORD PTR [edx+1024] mov DWORD PTR ?String_table@@3PAPADA, eax ; String_table ; Line 2516 mov al, 1 $L6044: ; Line 2517 pop ebp ret 4 _InitializeDLL@4 ENDP _TEXT ENDS PUBLIC _ShutdownDLL@0 _TEXT SEGMENT _ShutdownDLL@0 PROC NEAR ; Line 2520 push ebp mov ebp, esp ; Line 2521 pop ebp ret 0 _ShutdownDLL@0 ENDP _TEXT ENDS PUBLIC _GetGOScriptID@8 EXTRN _stricmp:NEAR _TEXT SEGMENT _name$ = 8 _i$ = -4 _GetGOScriptID@8 PROC NEAR ; Line 2524 push ebp mov ebp, esp push ecx ; Line 2525 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L6057 $L6058: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L6057: cmp DWORD PTR _i$[ebp], 42 ; 0000002aH jge SHORT $L6059 ; Line 2527 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR ?ScriptInfo@@3PAUtScriptInfo@@A[ecx*8+4] push edx mov eax, DWORD PTR _name$[ebp] push eax call _stricmp add esp, 8 test eax, eax jne SHORT $L6060 ; Line 2529 mov ecx, DWORD PTR _i$[ebp] mov eax, DWORD PTR ?ScriptInfo@@3PAUtScriptInfo@@A[ecx*8] jmp SHORT $L6055 $L6060: ; Line 2531 jmp SHORT $L6058 $L6059: ; Line 2532 or eax, -1 $L6055: ; Line 2533 mov esp, ebp pop ebp ret 8 _GetGOScriptID@8 ENDP _TEXT ENDS PUBLIC ??0ChaffScript@@QAE@XZ ; ChaffScript::ChaffScript PUBLIC ??0ChaffChunkScript@@QAE@XZ ; ChaffChunkScript::ChaffChunkScript PUBLIC ??0Humonculous@@QAE@XZ ; Humonculous::Humonculous PUBLIC ??0ProxMine@@QAE@XZ ; ProxMine::ProxMine PUBLIC ??0Dragon@@QAE@XZ ; Dragon::Dragon PUBLIC ??0Gunboy@@QAE@XZ ; Gunboy::Gunboy PUBLIC ??0Tracker@@QAE@XZ ; Tracker::Tracker PUBLIC ??0GBPowerup@@QAE@XZ ; GBPowerup::GBPowerup PUBLIC ??0Lance@@QAE@XZ ; Lance::Lance PUBLIC ??0JoshBell@@QAE@XZ ; JoshBell::JoshBell PUBLIC ??0Flak@@QAE@XZ ; Flak::Flak PUBLIC ??0ExplodeOnContact@@QAE@XZ ; ExplodeOnContact::ExplodeOnContact PUBLIC ??0DestroyOnContact@@QAE@XZ ; DestroyOnContact::DestroyOnContact PUBLIC ??0Seeker@@QAE@XZ ; Seeker::Seeker PUBLIC ??0SuperTrooper@@QAE@XZ ; SuperTrooper::SuperTrooper PUBLIC ??0Sparky@@QAE@XZ ; Sparky::Sparky PUBLIC ??0GuideBot@@QAE@XZ ; GuideBot::GuideBot PUBLIC ??0Hellion@@QAE@XZ ; Hellion::Hellion PUBLIC ??0MantaRay@@QAE@XZ ; MantaRay::MantaRay PUBLIC ??0Thief@@QAE@XZ ; Thief::Thief PUBLIC ??0Skiff@@QAE@XZ ; Skiff::Skiff PUBLIC ??0SpyHunter@@QAE@XZ ; SpyHunter::SpyHunter PUBLIC ??0Sniper@@QAE@XZ ; Sniper::Sniper PUBLIC ??0SniperNoRun@@QAE@XZ ; SniperNoRun::SniperNoRun PUBLIC ??0EvaderModA@@QAE@XZ ; EvaderModA::EvaderModA PUBLIC ??0Jugg@@QAE@XZ ; Jugg::Jugg PUBLIC ??0DTower@@QAE@XZ ; DTower::DTower PUBLIC _CreateInstance@4 PUBLIC ??0FireAtDist@@QAE@XZ ; FireAtDist::FireAtDist PUBLIC ??0DCollector@@QAE@XZ ; DCollector::DCollector PUBLIC ??0HatePTMC@@QAE@XZ ; HatePTMC::HatePTMC PUBLIC ??0CBall@@QAE@XZ ; CBall::CBall PUBLIC ??0Tubbs@@QAE@XZ ; Tubbs::Tubbs PUBLIC ??0SixGun@@QAE@XZ ; SixGun::SixGun PUBLIC ??0ExplodeTimeOut@@QAE@XZ ; ExplodeTimeOut::ExplodeTimeOut PUBLIC ??0Pest@@QAE@XZ ; Pest::Pest PUBLIC ??0BarnSwallow@@QAE@XZ ; BarnSwallow::BarnSwallow PUBLIC ??0Stinger@@QAE@XZ ; Stinger::Stinger PUBLIC ??0Sickle@@QAE@XZ ; Sickle::Sickle PUBLIC ??0BettyBomb@@QAE@XZ ; BettyBomb::BettyBomb PUBLIC ??0BettyScript@@QAE@XZ ; BettyScript::BettyScript PUBLIC ??0SuperThief@@QAE@XZ ; SuperThief::SuperThief EXTRN ??2@YAPAXI@Z:NEAR ; operator new _DATA SEGMENT ORG $+1 $SG6192 DB 'SCRIPT: Illegal ID (%d)', 0aH, 00H _DATA ENDS _TEXT SEGMENT $T10719 = -4 $T10722 = -8 $T10725 = -12 $T10728 = -16 $T10731 = -20 $T10734 = -24 $T10737 = -28 $T10740 = -32 $T10743 = -36 $T10746 = -40 $T10749 = -44 $T10752 = -48 $T10755 = -52 $T10758 = -56 $T10761 = -60 $T10764 = -64 $T10767 = -68 $T10770 = -72 $T10773 = -76 $T10776 = -80 $T10779 = -84 $T10782 = -88 $T10785 = -92 $T10788 = -96 $T10791 = -100 $T10794 = -104 $T10797 = -108 $T10800 = -112 $T10803 = -116 $T10806 = -120 $T10809 = -124 $T10812 = -128 $T10815 = -132 $T10818 = -136 $T10821 = -140 $T10824 = -144 $T10827 = -148 $T10830 = -152 $T10833 = -156 $T10836 = -160 $T10839 = -164 _id$ = 8 _CreateInstance@4 PROC NEAR ; Line 2536 push ebp mov ebp, esp sub esp, 332 ; 0000014cH ; Line 2538 mov eax, DWORD PTR _id$[ebp] mov DWORD PTR -168+[ebp], eax cmp DWORD PTR -168+[ebp], 41 ; 00000029H ja $L6191 mov ecx, DWORD PTR -168+[ebp] jmp DWORD PTR $L10842[ecx*4] $L6068: ; Line 2540 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10719[ebp], eax cmp DWORD PTR $T10719[ebp], 0 je SHORT $L10720 mov ecx, DWORD PTR $T10719[ebp] call ??0Pest@@QAE@XZ ; Pest::Pest mov DWORD PTR -172+[ebp], eax jmp SHORT $L10721 $L10720: mov DWORD PTR -172+[ebp], 0 $L10721: mov eax, DWORD PTR -172+[ebp] jmp $L6063 $L6071: ; Line 2543 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10722[ebp], eax cmp DWORD PTR $T10722[ebp], 0 je SHORT $L10723 mov ecx, DWORD PTR $T10722[ebp] call ??0Stinger@@QAE@XZ ; Stinger::Stinger mov DWORD PTR -176+[ebp], eax jmp SHORT $L10724 $L10723: mov DWORD PTR -176+[ebp], 0 $L10724: mov eax, DWORD PTR -176+[ebp] jmp $L6063 $L6074: ; Line 2546 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10725[ebp], eax cmp DWORD PTR $T10725[ebp], 0 je SHORT $L10726 mov ecx, DWORD PTR $T10725[ebp] call ??0Dragon@@QAE@XZ ; Dragon::Dragon mov DWORD PTR -180+[ebp], eax jmp SHORT $L10727 $L10726: mov DWORD PTR -180+[ebp], 0 $L10727: mov eax, DWORD PTR -180+[ebp] jmp $L6063 $L6077: ; Line 2549 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10728[ebp], eax cmp DWORD PTR $T10728[ebp], 0 je SHORT $L10729 mov ecx, DWORD PTR $T10728[ebp] call ??0Tracker@@QAE@XZ ; Tracker::Tracker mov DWORD PTR -184+[ebp], eax jmp SHORT $L10730 $L10729: mov DWORD PTR -184+[ebp], 0 $L10730: mov eax, DWORD PTR -184+[ebp] jmp $L6063 $L6080: ; Line 2552 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10731[ebp], eax cmp DWORD PTR $T10731[ebp], 0 je SHORT $L10732 mov ecx, DWORD PTR $T10731[ebp] call ??0Lance@@QAE@XZ ; Lance::Lance mov DWORD PTR -188+[ebp], eax jmp SHORT $L10733 $L10732: mov DWORD PTR -188+[ebp], 0 $L10733: mov eax, DWORD PTR -188+[ebp] jmp $L6063 $L6083: ; Line 2555 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10734[ebp], eax cmp DWORD PTR $T10734[ebp], 0 je SHORT $L10735 mov ecx, DWORD PTR $T10734[ebp] call ??0Flak@@QAE@XZ ; Flak::Flak mov DWORD PTR -192+[ebp], eax jmp SHORT $L10736 $L10735: mov DWORD PTR -192+[ebp], 0 $L10736: mov eax, DWORD PTR -192+[ebp] jmp $L6063 $L6086: ; Line 2559 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10737[ebp], eax cmp DWORD PTR $T10737[ebp], 0 je SHORT $L10738 mov ecx, DWORD PTR $T10737[ebp] call ??0SuperTrooper@@QAE@XZ ; SuperTrooper::SuperTrooper mov DWORD PTR -196+[ebp], eax jmp SHORT $L10739 $L10738: mov DWORD PTR -196+[ebp], 0 $L10739: mov eax, DWORD PTR -196+[ebp] jmp $L6063 $L6089: ; Line 2562 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10740[ebp], eax cmp DWORD PTR $T10740[ebp], 0 je SHORT $L10741 mov ecx, DWORD PTR $T10740[ebp] call ??0Jugg@@QAE@XZ ; Jugg::Jugg mov DWORD PTR -200+[ebp], eax jmp SHORT $L10742 $L10741: mov DWORD PTR -200+[ebp], 0 $L10742: mov eax, DWORD PTR -200+[ebp] jmp $L6063 $L6092: ; Line 2565 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10743[ebp], eax cmp DWORD PTR $T10743[ebp], 0 je SHORT $L10744 mov ecx, DWORD PTR $T10743[ebp] call ??0SixGun@@QAE@XZ ; SixGun::SixGun mov DWORD PTR -204+[ebp], eax jmp SHORT $L10745 $L10744: mov DWORD PTR -204+[ebp], 0 $L10745: mov eax, DWORD PTR -204+[ebp] jmp $L6063 $L6095: ; Line 2568 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10746[ebp], eax cmp DWORD PTR $T10746[ebp], 0 je SHORT $L10747 mov ecx, DWORD PTR $T10746[ebp] call ??0Sickle@@QAE@XZ ; Sickle::Sickle mov DWORD PTR -208+[ebp], eax jmp SHORT $L10748 $L10747: mov DWORD PTR -208+[ebp], 0 $L10748: mov eax, DWORD PTR -208+[ebp] jmp $L6063 $L6098: ; Line 2571 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10749[ebp], eax cmp DWORD PTR $T10749[ebp], 0 je SHORT $L10750 mov ecx, DWORD PTR $T10749[ebp] call ??0GuideBot@@QAE@XZ ; GuideBot::GuideBot mov DWORD PTR -212+[ebp], eax jmp SHORT $L10751 $L10750: mov DWORD PTR -212+[ebp], 0 $L10751: mov eax, DWORD PTR -212+[ebp] jmp $L6063 $L6101: ; Line 2574 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10752[ebp], eax cmp DWORD PTR $T10752[ebp], 0 je SHORT $L10753 mov ecx, DWORD PTR $T10752[ebp] call ??0FireAtDist@@QAE@XZ ; FireAtDist::FireAtDist mov DWORD PTR -216+[ebp], eax jmp SHORT $L10754 $L10753: mov DWORD PTR -216+[ebp], 0 $L10754: mov eax, DWORD PTR -216+[ebp] jmp $L6063 $L6104: ; Line 2577 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10755[ebp], eax cmp DWORD PTR $T10755[ebp], 0 je SHORT $L10756 mov ecx, DWORD PTR $T10755[ebp] call ??0Tubbs@@QAE@XZ ; Tubbs::Tubbs mov DWORD PTR -220+[ebp], eax jmp SHORT $L10757 $L10756: mov DWORD PTR -220+[ebp], 0 $L10757: mov eax, DWORD PTR -220+[ebp] jmp $L6063 $L6107: ; Line 2580 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10758[ebp], eax cmp DWORD PTR $T10758[ebp], 0 je SHORT $L10759 mov ecx, DWORD PTR $T10758[ebp] call ??0Thief@@QAE@XZ ; Thief::Thief mov DWORD PTR -224+[ebp], eax jmp SHORT $L10760 $L10759: mov DWORD PTR -224+[ebp], 0 $L10760: mov eax, DWORD PTR -224+[ebp] jmp $L6063 $L6110: ; Line 2583 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10761[ebp], eax cmp DWORD PTR $T10761[ebp], 0 je SHORT $L10762 mov ecx, DWORD PTR $T10761[ebp] call ??0GBPowerup@@QAE@XZ ; GBPowerup::GBPowerup mov DWORD PTR -228+[ebp], eax jmp SHORT $L10763 $L10762: mov DWORD PTR -228+[ebp], 0 $L10763: mov eax, DWORD PTR -228+[ebp] jmp $L6063 $L6113: ; Line 2586 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10764[ebp], eax cmp DWORD PTR $T10764[ebp], 0 je SHORT $L10765 mov ecx, DWORD PTR $T10764[ebp] call ??0BarnSwallow@@QAE@XZ ; BarnSwallow::BarnSwallow mov DWORD PTR -232+[ebp], eax jmp SHORT $L10766 $L10765: mov DWORD PTR -232+[ebp], 0 $L10766: mov eax, DWORD PTR -232+[ebp] jmp $L6063 $L6116: ; Line 2589 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10767[ebp], eax cmp DWORD PTR $T10767[ebp], 0 je SHORT $L10768 mov ecx, DWORD PTR $T10767[ebp] call ??0Sparky@@QAE@XZ ; Sparky::Sparky mov DWORD PTR -236+[ebp], eax jmp SHORT $L10769 $L10768: mov DWORD PTR -236+[ebp], 0 $L10769: mov eax, DWORD PTR -236+[ebp] jmp $L6063 $L6119: ; Line 2592 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10770[ebp], eax cmp DWORD PTR $T10770[ebp], 0 je SHORT $L10771 mov ecx, DWORD PTR $T10770[ebp] call ??0MantaRay@@QAE@XZ ; MantaRay::MantaRay mov DWORD PTR -240+[ebp], eax jmp SHORT $L10772 $L10771: mov DWORD PTR -240+[ebp], 0 $L10772: mov eax, DWORD PTR -240+[ebp] jmp $L6063 $L6122: ; Line 2595 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10773[ebp], eax cmp DWORD PTR $T10773[ebp], 0 je SHORT $L10774 mov ecx, DWORD PTR $T10773[ebp] call ??0SpyHunter@@QAE@XZ ; SpyHunter::SpyHunter mov DWORD PTR -244+[ebp], eax jmp SHORT $L10775 $L10774: mov DWORD PTR -244+[ebp], 0 $L10775: mov eax, DWORD PTR -244+[ebp] jmp $L6063 $L6125: ; Line 2598 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10776[ebp], eax cmp DWORD PTR $T10776[ebp], 0 je SHORT $L10777 mov ecx, DWORD PTR $T10776[ebp] call ??0Sniper@@QAE@XZ ; Sniper::Sniper mov DWORD PTR -248+[ebp], eax jmp SHORT $L10778 $L10777: mov DWORD PTR -248+[ebp], 0 $L10778: mov eax, DWORD PTR -248+[ebp] jmp $L6063 $L6128: ; Line 2601 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10779[ebp], eax cmp DWORD PTR $T10779[ebp], 0 je SHORT $L10780 mov ecx, DWORD PTR $T10779[ebp] call ??0Humonculous@@QAE@XZ ; Humonculous::Humonculous mov DWORD PTR -252+[ebp], eax jmp SHORT $L10781 $L10780: mov DWORD PTR -252+[ebp], 0 $L10781: mov eax, DWORD PTR -252+[ebp] jmp $L6063 $L6131: ; Line 2604 push 4 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10782[ebp], eax cmp DWORD PTR $T10782[ebp], 0 je SHORT $L10783 mov ecx, DWORD PTR $T10782[ebp] call ??0Seeker@@QAE@XZ ; Seeker::Seeker mov DWORD PTR -256+[ebp], eax jmp SHORT $L10784 $L10783: mov DWORD PTR -256+[ebp], 0 $L10784: mov eax, DWORD PTR -256+[ebp] jmp $L6063 $L6134: ; Line 2607 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10785[ebp], eax cmp DWORD PTR $T10785[ebp], 0 je SHORT $L10786 mov ecx, DWORD PTR $T10785[ebp] call ??0BettyScript@@QAE@XZ ; BettyScript::BettyScript mov DWORD PTR -260+[ebp], eax jmp SHORT $L10787 $L10786: mov DWORD PTR -260+[ebp], 0 $L10787: mov eax, DWORD PTR -260+[ebp] jmp $L6063 $L6137: ; Line 2610 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10788[ebp], eax cmp DWORD PTR $T10788[ebp], 0 je SHORT $L10789 mov ecx, DWORD PTR $T10788[ebp] call ??0ChaffScript@@QAE@XZ ; ChaffScript::ChaffScript mov DWORD PTR -264+[ebp], eax jmp SHORT $L10790 $L10789: mov DWORD PTR -264+[ebp], 0 $L10790: mov eax, DWORD PTR -264+[ebp] jmp $L6063 $L6140: ; Line 2613 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10791[ebp], eax cmp DWORD PTR $T10791[ebp], 0 je SHORT $L10792 mov ecx, DWORD PTR $T10791[ebp] call ??0ChaffChunkScript@@QAE@XZ ; ChaffChunkScript::ChaffChunkScript mov DWORD PTR -268+[ebp], eax jmp SHORT $L10793 $L10792: mov DWORD PTR -268+[ebp], 0 $L10793: mov eax, DWORD PTR -268+[ebp] jmp $L6063 $L6143: ; Line 2616 push 4 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10794[ebp], eax cmp DWORD PTR $T10794[ebp], 0 je SHORT $L10795 mov ecx, DWORD PTR $T10794[ebp] call ??0ProxMine@@QAE@XZ ; ProxMine::ProxMine mov DWORD PTR -272+[ebp], eax jmp SHORT $L10796 $L10795: mov DWORD PTR -272+[ebp], 0 $L10796: mov eax, DWORD PTR -272+[ebp] jmp $L6063 $L6146: ; Line 2619 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10797[ebp], eax cmp DWORD PTR $T10797[ebp], 0 je SHORT $L10798 mov ecx, DWORD PTR $T10797[ebp] call ??0BettyBomb@@QAE@XZ ; BettyBomb::BettyBomb mov DWORD PTR -276+[ebp], eax jmp SHORT $L10799 $L10798: mov DWORD PTR -276+[ebp], 0 $L10799: mov eax, DWORD PTR -276+[ebp] jmp $L6063 $L6149: ; Line 2622 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10800[ebp], eax cmp DWORD PTR $T10800[ebp], 0 je SHORT $L10801 mov ecx, DWORD PTR $T10800[ebp] call ??0JoshBell@@QAE@XZ ; JoshBell::JoshBell mov DWORD PTR -280+[ebp], eax jmp SHORT $L10802 $L10801: mov DWORD PTR -280+[ebp], 0 $L10802: mov eax, DWORD PTR -280+[ebp] jmp $L6063 $L6152: ; Line 2625 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10803[ebp], eax cmp DWORD PTR $T10803[ebp], 0 je SHORT $L10804 mov ecx, DWORD PTR $T10803[ebp] call ??0Skiff@@QAE@XZ ; Skiff::Skiff mov DWORD PTR -284+[ebp], eax jmp SHORT $L10805 $L10804: mov DWORD PTR -284+[ebp], 0 $L10805: mov eax, DWORD PTR -284+[ebp] jmp $L6063 $L6155: ; Line 2628 push 4 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10806[ebp], eax cmp DWORD PTR $T10806[ebp], 0 je SHORT $L10807 mov ecx, DWORD PTR $T10806[ebp] call ??0ExplodeOnContact@@QAE@XZ ; ExplodeOnContact::ExplodeOnContact mov DWORD PTR -288+[ebp], eax jmp SHORT $L10808 $L10807: mov DWORD PTR -288+[ebp], 0 $L10808: mov eax, DWORD PTR -288+[ebp] jmp $L6063 $L6158: ; Line 2631 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10809[ebp], eax cmp DWORD PTR $T10809[ebp], 0 je SHORT $L10810 mov ecx, DWORD PTR $T10809[ebp] call ??0ExplodeTimeOut@@QAE@XZ ; ExplodeTimeOut::ExplodeTimeOut mov DWORD PTR -292+[ebp], eax jmp SHORT $L10811 $L10810: mov DWORD PTR -292+[ebp], 0 $L10811: mov eax, DWORD PTR -292+[ebp] jmp $L6063 $L6161: ; Line 2634 push 4 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10812[ebp], eax cmp DWORD PTR $T10812[ebp], 0 je SHORT $L10813 mov ecx, DWORD PTR $T10812[ebp] call ??0Gunboy@@QAE@XZ ; Gunboy::Gunboy mov DWORD PTR -296+[ebp], eax jmp SHORT $L10814 $L10813: mov DWORD PTR -296+[ebp], 0 $L10814: mov eax, DWORD PTR -296+[ebp] jmp $L6063 $L6164: ; Line 2637 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10815[ebp], eax cmp DWORD PTR $T10815[ebp], 0 je SHORT $L10816 mov ecx, DWORD PTR $T10815[ebp] call ??0DTower@@QAE@XZ ; DTower::DTower mov DWORD PTR -300+[ebp], eax jmp SHORT $L10817 $L10816: mov DWORD PTR -300+[ebp], 0 $L10817: mov eax, DWORD PTR -300+[ebp] jmp $L6063 $L6167: ; Line 2640 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10818[ebp], eax cmp DWORD PTR $T10818[ebp], 0 je SHORT $L10819 mov ecx, DWORD PTR $T10818[ebp] call ??0DCollector@@QAE@XZ ; DCollector::DCollector mov DWORD PTR -304+[ebp], eax jmp SHORT $L10820 $L10819: mov DWORD PTR -304+[ebp], 0 $L10820: mov eax, DWORD PTR -304+[ebp] jmp $L6063 $L6170: ; Line 2643 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10821[ebp], eax cmp DWORD PTR $T10821[ebp], 0 je SHORT $L10822 mov ecx, DWORD PTR $T10821[ebp] call ??0CBall@@QAE@XZ ; CBall::CBall mov DWORD PTR -308+[ebp], eax jmp SHORT $L10823 $L10822: mov DWORD PTR -308+[ebp], 0 $L10823: mov eax, DWORD PTR -308+[ebp] jmp $L6063 $L6173: ; Line 2646 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10824[ebp], eax cmp DWORD PTR $T10824[ebp], 0 je SHORT $L10825 mov ecx, DWORD PTR $T10824[ebp] call ??0Hellion@@QAE@XZ ; Hellion::Hellion mov DWORD PTR -312+[ebp], eax jmp SHORT $L10826 $L10825: mov DWORD PTR -312+[ebp], 0 $L10826: mov eax, DWORD PTR -312+[ebp] jmp $L6063 $L6176: ; Line 2649 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10827[ebp], eax cmp DWORD PTR $T10827[ebp], 0 je SHORT $L10828 mov ecx, DWORD PTR $T10827[ebp] call ??0SuperThief@@QAE@XZ ; SuperThief::SuperThief mov DWORD PTR -316+[ebp], eax jmp SHORT $L10829 $L10828: mov DWORD PTR -316+[ebp], 0 $L10829: mov eax, DWORD PTR -316+[ebp] jmp $L6063 $L6179: ; Line 2652 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10830[ebp], eax cmp DWORD PTR $T10830[ebp], 0 je SHORT $L10831 mov ecx, DWORD PTR $T10830[ebp] call ??0EvaderModA@@QAE@XZ ; EvaderModA::EvaderModA mov DWORD PTR -320+[ebp], eax jmp SHORT $L10832 $L10831: mov DWORD PTR -320+[ebp], 0 $L10832: mov eax, DWORD PTR -320+[ebp] jmp $L6063 $L6182: ; Line 2655 push 4 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10833[ebp], eax cmp DWORD PTR $T10833[ebp], 0 je SHORT $L10834 mov ecx, DWORD PTR $T10833[ebp] call ??0DestroyOnContact@@QAE@XZ ; DestroyOnContact::DestroyOnContact mov DWORD PTR -324+[ebp], eax jmp SHORT $L10835 $L10834: mov DWORD PTR -324+[ebp], 0 $L10835: mov eax, DWORD PTR -324+[ebp] jmp $L6063 $L6185: ; Line 2658 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10836[ebp], eax cmp DWORD PTR $T10836[ebp], 0 je SHORT $L10837 mov ecx, DWORD PTR $T10836[ebp] call ??0HatePTMC@@QAE@XZ ; HatePTMC::HatePTMC mov DWORD PTR -328+[ebp], eax jmp SHORT $L10838 $L10837: mov DWORD PTR -328+[ebp], 0 $L10838: mov eax, DWORD PTR -328+[ebp] jmp SHORT $L6063 $L6188: ; Line 2661 push 8 call ??2@YAPAXI@Z ; operator new add esp, 4 mov DWORD PTR $T10839[ebp], eax cmp DWORD PTR $T10839[ebp], 0 je SHORT $L10840 mov ecx, DWORD PTR $T10839[ebp] call ??0SniperNoRun@@QAE@XZ ; SniperNoRun::SniperNoRun mov DWORD PTR -332+[ebp], eax jmp SHORT $L10841 $L10840: mov DWORD PTR -332+[ebp], 0 $L10841: mov eax, DWORD PTR -332+[ebp] jmp SHORT $L6063 $L6191: ; Line 2664 mov edx, DWORD PTR _id$[ebp] push edx push OFFSET FLAT:$SG6192 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH ; Line 2667 xor eax, eax $L6063: ; Line 2668 mov esp, ebp pop ebp ret 4 $L10842: DD $L6068 DD $L6071 DD $L6074 DD $L6077 DD $L6080 DD $L6083 DD $L6086 DD $L6086 DD $L6089 DD $L6092 DD $L6095 DD $L6098 DD $L6101 DD $L6104 DD $L6107 DD $L6110 DD $L6113 DD $L6116 DD $L6119 DD $L6122 DD $L6125 DD $L6128 DD $L6131 DD $L6134 DD $L6137 DD $L6140 DD $L6143 DD $L6146 DD $L6149 DD $L6152 DD $L6155 DD $L6158 DD $L6161 DD $L6164 DD $L6167 DD $L6170 DD $L6173 DD $L6176 DD $L6179 DD $L6182 DD $L6185 DD $L6188 _CreateInstance@4 ENDP _TEXT ENDS PUBLIC ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript PUBLIC ?CallEvent@Pest@@UAEFHPAUtOSIRISEventInfo@@@Z ; Pest::CallEvent PUBLIC ??_7Pest@@6B@ ; Pest::`vftable' ; COMDAT ??_7Pest@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Pest@@6B@ DD FLAT:?CallEvent@Pest@@UAEFHPAUtOSIRISEventInfo@@@Z ; Pest::`vftable' CONST ENDS ; COMDAT ??0Pest@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Pest@@QAE@XZ PROC NEAR ; Pest::Pest, COMDAT ; File aigame.cpp ; Line 355 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Pest@@6B@ ; Pest::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Pest@@QAE@XZ ENDP ; Pest::Pest _TEXT ENDS PUBLIC ?CallEvent@Stinger@@UAEFHPAUtOSIRISEventInfo@@@Z ; Stinger::CallEvent PUBLIC ??_7Stinger@@6B@ ; Stinger::`vftable' ; COMDAT ??_7Stinger@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Stinger@@6B@ DD FLAT:?CallEvent@Stinger@@UAEFHPAUtOSIRISEventInfo@@@Z ; Stinger::`vftable' CONST ENDS ; COMDAT ??0Stinger@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Stinger@@QAE@XZ PROC NEAR ; Stinger::Stinger, COMDAT ; File aigame.cpp ; Line 381 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Stinger@@6B@ ; Stinger::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Stinger@@QAE@XZ ENDP ; Stinger::Stinger _TEXT ENDS PUBLIC ??_7SuperThief@@6B@ ; SuperThief::`vftable' ; COMDAT ??_7SuperThief@@6B@ ; File aigame.cpp CONST SEGMENT ??_7SuperThief@@6B@ DD FLAT:?CallEvent@SuperThief@@UAEFHPAUtOSIRISEventInfo@@@Z ; SuperThief::`vftable' CONST ENDS ; COMDAT ??0SuperThief@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0SuperThief@@QAE@XZ PROC NEAR ; SuperThief::SuperThief, COMDAT ; File aigame.cpp ; Line 451 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7SuperThief@@6B@ ; SuperThief::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0SuperThief@@QAE@XZ ENDP ; SuperThief::SuperThief _TEXT ENDS PUBLIC ?CallEvent@Humonculous@@UAEFHPAUtOSIRISEventInfo@@@Z ; Humonculous::CallEvent PUBLIC ??_7Humonculous@@6B@ ; Humonculous::`vftable' ; COMDAT ??_7Humonculous@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Humonculous@@6B@ DD FLAT:?CallEvent@Humonculous@@UAEFHPAUtOSIRISEventInfo@@@Z ; Humonculous::`vftable' CONST ENDS ; COMDAT ??0Humonculous@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Humonculous@@QAE@XZ PROC NEAR ; Humonculous::Humonculous, COMDAT ; File aigame.cpp ; Line 502 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Humonculous@@6B@ ; Humonculous::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Humonculous@@QAE@XZ ENDP ; Humonculous::Humonculous _TEXT ENDS PUBLIC ?CallEvent@Dragon@@UAEFHPAUtOSIRISEventInfo@@@Z ; Dragon::CallEvent PUBLIC ??_7Dragon@@6B@ ; Dragon::`vftable' ; COMDAT ??_7Dragon@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Dragon@@6B@ DD FLAT:?CallEvent@Dragon@@UAEFHPAUtOSIRISEventInfo@@@Z ; Dragon::`vftable' CONST ENDS ; COMDAT ??0Dragon@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Dragon@@QAE@XZ PROC NEAR ; Dragon::Dragon, COMDAT ; File aigame.cpp ; Line 529 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Dragon@@6B@ ; Dragon::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Dragon@@QAE@XZ ENDP ; Dragon::Dragon _TEXT ENDS PUBLIC ?CallEvent@Tracker@@UAEFHPAUtOSIRISEventInfo@@@Z ; Tracker::CallEvent PUBLIC ??_7Tracker@@6B@ ; Tracker::`vftable' ; COMDAT ??_7Tracker@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Tracker@@6B@ DD FLAT:?CallEvent@Tracker@@UAEFHPAUtOSIRISEventInfo@@@Z ; Tracker::`vftable' CONST ENDS ; COMDAT ??0Tracker@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Tracker@@QAE@XZ PROC NEAR ; Tracker::Tracker, COMDAT ; File aigame.cpp ; Line 550 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Tracker@@6B@ ; Tracker::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Tracker@@QAE@XZ ENDP ; Tracker::Tracker _TEXT ENDS PUBLIC ?CallEvent@Lance@@UAEFHPAUtOSIRISEventInfo@@@Z ; Lance::CallEvent PUBLIC ??_7Lance@@6B@ ; Lance::`vftable' ; COMDAT ??_7Lance@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Lance@@6B@ DD FLAT:?CallEvent@Lance@@UAEFHPAUtOSIRISEventInfo@@@Z ; Lance::`vftable' CONST ENDS ; COMDAT ??0Lance@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Lance@@QAE@XZ PROC NEAR ; Lance::Lance, COMDAT ; File aigame.cpp ; Line 573 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Lance@@6B@ ; Lance::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Lance@@QAE@XZ ENDP ; Lance::Lance _TEXT ENDS PUBLIC ?CallEvent@Flak@@UAEFHPAUtOSIRISEventInfo@@@Z ; Flak::CallEvent PUBLIC ??_7Flak@@6B@ ; Flak::`vftable' ; COMDAT ??_7Flak@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Flak@@6B@ DD FLAT:?CallEvent@Flak@@UAEFHPAUtOSIRISEventInfo@@@Z ; Flak::`vftable' CONST ENDS ; COMDAT ??0Flak@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Flak@@QAE@XZ PROC NEAR ; Flak::Flak, COMDAT ; File aigame.cpp ; Line 591 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Flak@@6B@ ; Flak::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Flak@@QAE@XZ ENDP ; Flak::Flak _TEXT ENDS PUBLIC ?CallEvent@Seeker@@UAEFHPAUtOSIRISEventInfo@@@Z ; Seeker::CallEvent PUBLIC ??_7Seeker@@6B@ ; Seeker::`vftable' ; COMDAT ??_7Seeker@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Seeker@@6B@ DD FLAT:?CallEvent@Seeker@@UAEFHPAUtOSIRISEventInfo@@@Z ; Seeker::`vftable' CONST ENDS ; COMDAT ??0Seeker@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Seeker@@QAE@XZ PROC NEAR ; Seeker::Seeker, COMDAT ; File aigame.cpp ; Line 605 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Seeker@@6B@ ; Seeker::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Seeker@@QAE@XZ ENDP ; Seeker::Seeker _TEXT ENDS PUBLIC ?CallEvent@SuperTrooper@@UAEFHPAUtOSIRISEventInfo@@@Z ; SuperTrooper::CallEvent PUBLIC ??_7SuperTrooper@@6B@ ; SuperTrooper::`vftable' ; COMDAT ??_7SuperTrooper@@6B@ ; File aigame.cpp CONST SEGMENT ??_7SuperTrooper@@6B@ DD FLAT:?CallEvent@SuperTrooper@@UAEFHPAUtOSIRISEventInfo@@@Z ; SuperTrooper::`vftable' CONST ENDS ; COMDAT ??0SuperTrooper@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0SuperTrooper@@QAE@XZ PROC NEAR ; SuperTrooper::SuperTrooper, COMDAT ; File aigame.cpp ; Line 624 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7SuperTrooper@@6B@ ; SuperTrooper::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0SuperTrooper@@QAE@XZ ENDP ; SuperTrooper::SuperTrooper _TEXT ENDS PUBLIC ?CallEvent@Sparky@@UAEFHPAUtOSIRISEventInfo@@@Z ; Sparky::CallEvent PUBLIC ??_7Sparky@@6B@ ; Sparky::`vftable' ; COMDAT ??_7Sparky@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Sparky@@6B@ DD FLAT:?CallEvent@Sparky@@UAEFHPAUtOSIRISEventInfo@@@Z ; Sparky::`vftable' CONST ENDS ; COMDAT ??0Sparky@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Sparky@@QAE@XZ PROC NEAR ; Sparky::Sparky, COMDAT ; File aigame.cpp ; Line 671 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Sparky@@6B@ ; Sparky::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Sparky@@QAE@XZ ENDP ; Sparky::Sparky _TEXT ENDS PUBLIC ?CallEvent@Hellion@@UAEFHPAUtOSIRISEventInfo@@@Z ; Hellion::CallEvent PUBLIC ??_7Hellion@@6B@ ; Hellion::`vftable' ; COMDAT ??_7Hellion@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Hellion@@6B@ DD FLAT:?CallEvent@Hellion@@UAEFHPAUtOSIRISEventInfo@@@Z ; Hellion::`vftable' CONST ENDS ; COMDAT ??0Hellion@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Hellion@@QAE@XZ PROC NEAR ; Hellion::Hellion, COMDAT ; File aigame.cpp ; Line 708 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Hellion@@6B@ ; Hellion::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Hellion@@QAE@XZ ENDP ; Hellion::Hellion _TEXT ENDS PUBLIC ?CallEvent@MantaRay@@UAEFHPAUtOSIRISEventInfo@@@Z ; MantaRay::CallEvent PUBLIC ??_7MantaRay@@6B@ ; MantaRay::`vftable' ; COMDAT ??_7MantaRay@@6B@ ; File aigame.cpp CONST SEGMENT ??_7MantaRay@@6B@ DD FLAT:?CallEvent@MantaRay@@UAEFHPAUtOSIRISEventInfo@@@Z ; MantaRay::`vftable' CONST ENDS ; COMDAT ??0MantaRay@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0MantaRay@@QAE@XZ PROC NEAR ; MantaRay::MantaRay, COMDAT ; File aigame.cpp ; Line 784 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7MantaRay@@6B@ ; MantaRay::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0MantaRay@@QAE@XZ ENDP ; MantaRay::MantaRay _TEXT ENDS PUBLIC ?CallEvent@Skiff@@UAEFHPAUtOSIRISEventInfo@@@Z ; Skiff::CallEvent PUBLIC ??_7Skiff@@6B@ ; Skiff::`vftable' ; COMDAT ??_7Skiff@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Skiff@@6B@ DD FLAT:?CallEvent@Skiff@@UAEFHPAUtOSIRISEventInfo@@@Z ; Skiff::`vftable' CONST ENDS ; COMDAT ??0Skiff@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Skiff@@QAE@XZ PROC NEAR ; Skiff::Skiff, COMDAT ; File aigame.cpp ; Line 833 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Skiff@@6B@ ; Skiff::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Skiff@@QAE@XZ ENDP ; Skiff::Skiff _TEXT ENDS PUBLIC ?CallEvent@SpyHunter@@UAEFHPAUtOSIRISEventInfo@@@Z ; SpyHunter::CallEvent PUBLIC ??_7SpyHunter@@6B@ ; SpyHunter::`vftable' ; COMDAT ??_7SpyHunter@@6B@ ; File aigame.cpp CONST SEGMENT ??_7SpyHunter@@6B@ DD FLAT:?CallEvent@SpyHunter@@UAEFHPAUtOSIRISEventInfo@@@Z ; SpyHunter::`vftable' CONST ENDS ; COMDAT ??0SpyHunter@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0SpyHunter@@QAE@XZ PROC NEAR ; SpyHunter::SpyHunter, COMDAT ; File aigame.cpp ; Line 877 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7SpyHunter@@6B@ ; SpyHunter::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0SpyHunter@@QAE@XZ ENDP ; SpyHunter::SpyHunter _TEXT ENDS PUBLIC ?CallEvent@Sniper@@UAEFHPAUtOSIRISEventInfo@@@Z ; Sniper::CallEvent PUBLIC ??_7Sniper@@6B@ ; Sniper::`vftable' ; COMDAT ??_7Sniper@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Sniper@@6B@ DD FLAT:?CallEvent@Sniper@@UAEFHPAUtOSIRISEventInfo@@@Z ; Sniper::`vftable' CONST ENDS ; COMDAT ??0Sniper@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Sniper@@QAE@XZ PROC NEAR ; Sniper::Sniper, COMDAT ; File aigame.cpp ; Line 906 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Sniper@@6B@ ; Sniper::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Sniper@@QAE@XZ ENDP ; Sniper::Sniper _TEXT ENDS PUBLIC ?CallEvent@SniperNoRun@@UAEFHPAUtOSIRISEventInfo@@@Z ; SniperNoRun::CallEvent PUBLIC ??_7SniperNoRun@@6B@ ; SniperNoRun::`vftable' ; COMDAT ??_7SniperNoRun@@6B@ ; File aigame.cpp CONST SEGMENT ??_7SniperNoRun@@6B@ DD FLAT:?CallEvent@SniperNoRun@@UAEFHPAUtOSIRISEventInfo@@@Z ; SniperNoRun::`vftable' CONST ENDS ; COMDAT ??0SniperNoRun@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0SniperNoRun@@QAE@XZ PROC NEAR ; SniperNoRun::SniperNoRun, COMDAT ; File aigame.cpp ; Line 935 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7SniperNoRun@@6B@ ; SniperNoRun::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0SniperNoRun@@QAE@XZ ENDP ; SniperNoRun::SniperNoRun _TEXT ENDS PUBLIC ?CallEvent@EvaderModA@@UAEFHPAUtOSIRISEventInfo@@@Z ; EvaderModA::CallEvent PUBLIC ??_7EvaderModA@@6B@ ; EvaderModA::`vftable' ; COMDAT ??_7EvaderModA@@6B@ ; File aigame.cpp CONST SEGMENT ??_7EvaderModA@@6B@ DD FLAT:?CallEvent@EvaderModA@@UAEFHPAUtOSIRISEventInfo@@@Z ; EvaderModA::`vftable' CONST ENDS ; COMDAT ??0EvaderModA@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0EvaderModA@@QAE@XZ PROC NEAR ; EvaderModA::EvaderModA, COMDAT ; File aigame.cpp ; Line 961 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7EvaderModA@@6B@ ; EvaderModA::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0EvaderModA@@QAE@XZ ENDP ; EvaderModA::EvaderModA _TEXT ENDS PUBLIC ?CallEvent@Jugg@@UAEFHPAUtOSIRISEventInfo@@@Z ; Jugg::CallEvent PUBLIC ??_7Jugg@@6B@ ; Jugg::`vftable' ; COMDAT ??_7Jugg@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Jugg@@6B@ DD FLAT:?CallEvent@Jugg@@UAEFHPAUtOSIRISEventInfo@@@Z ; Jugg::`vftable' CONST ENDS ; COMDAT ??0Jugg@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Jugg@@QAE@XZ PROC NEAR ; Jugg::Jugg, COMDAT ; File aigame.cpp ; Line 1000 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Jugg@@6B@ ; Jugg::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Jugg@@QAE@XZ ENDP ; Jugg::Jugg _TEXT ENDS PUBLIC ?CallEvent@DTower@@UAEFHPAUtOSIRISEventInfo@@@Z ; DTower::CallEvent PUBLIC ??_7DTower@@6B@ ; DTower::`vftable' ; COMDAT ??_7DTower@@6B@ ; File aigame.cpp CONST SEGMENT ??_7DTower@@6B@ DD FLAT:?CallEvent@DTower@@UAEFHPAUtOSIRISEventInfo@@@Z ; DTower::`vftable' CONST ENDS ; COMDAT ??0DTower@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0DTower@@QAE@XZ PROC NEAR ; DTower::DTower, COMDAT ; File aigame.cpp ; Line 1026 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7DTower@@6B@ ; DTower::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0DTower@@QAE@XZ ENDP ; DTower::DTower _TEXT ENDS PUBLIC ?CallEvent@DCollector@@UAEFHPAUtOSIRISEventInfo@@@Z ; DCollector::CallEvent PUBLIC ??_7DCollector@@6B@ ; DCollector::`vftable' ; COMDAT ??_7DCollector@@6B@ ; File aigame.cpp CONST SEGMENT ??_7DCollector@@6B@ DD FLAT:?CallEvent@DCollector@@UAEFHPAUtOSIRISEventInfo@@@Z ; DCollector::`vftable' CONST ENDS ; COMDAT ??0DCollector@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0DCollector@@QAE@XZ PROC NEAR ; DCollector::DCollector, COMDAT ; File aigame.cpp ; Line 1050 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7DCollector@@6B@ ; DCollector::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0DCollector@@QAE@XZ ENDP ; DCollector::DCollector _TEXT ENDS PUBLIC ?CallEvent@CBall@@UAEFHPAUtOSIRISEventInfo@@@Z ; CBall::CallEvent PUBLIC ??_7CBall@@6B@ ; CBall::`vftable' ; COMDAT ??_7CBall@@6B@ ; File aigame.cpp CONST SEGMENT ??_7CBall@@6B@ DD FLAT:?CallEvent@CBall@@UAEFHPAUtOSIRISEventInfo@@@Z ; CBall::`vftable' CONST ENDS ; COMDAT ??0CBall@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0CBall@@QAE@XZ PROC NEAR ; CBall::CBall, COMDAT ; File aigame.cpp ; Line 1071 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7CBall@@6B@ ; CBall::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0CBall@@QAE@XZ ENDP ; CBall::CBall _TEXT ENDS PUBLIC ?CallEvent@SixGun@@UAEFHPAUtOSIRISEventInfo@@@Z ; SixGun::CallEvent PUBLIC ??_7SixGun@@6B@ ; SixGun::`vftable' ; COMDAT ??_7SixGun@@6B@ ; File aigame.cpp CONST SEGMENT ??_7SixGun@@6B@ DD FLAT:?CallEvent@SixGun@@UAEFHPAUtOSIRISEventInfo@@@Z ; SixGun::`vftable' CONST ENDS ; COMDAT ??0SixGun@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0SixGun@@QAE@XZ PROC NEAR ; SixGun::SixGun, COMDAT ; File aigame.cpp ; Line 1093 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7SixGun@@6B@ ; SixGun::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0SixGun@@QAE@XZ ENDP ; SixGun::SixGun _TEXT ENDS PUBLIC ?CallEvent@Sickle@@UAEFHPAUtOSIRISEventInfo@@@Z ; Sickle::CallEvent PUBLIC ??_7Sickle@@6B@ ; Sickle::`vftable' ; COMDAT ??_7Sickle@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Sickle@@6B@ DD FLAT:?CallEvent@Sickle@@UAEFHPAUtOSIRISEventInfo@@@Z ; Sickle::`vftable' CONST ENDS ; COMDAT ??0Sickle@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Sickle@@QAE@XZ PROC NEAR ; Sickle::Sickle, COMDAT ; File aigame.cpp ; Line 1153 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Sickle@@6B@ ; Sickle::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Sickle@@QAE@XZ ENDP ; Sickle::Sickle _TEXT ENDS PUBLIC ?CallEvent@BettyBomb@@UAEFHPAUtOSIRISEventInfo@@@Z ; BettyBomb::CallEvent PUBLIC ??_7BettyBomb@@6B@ ; BettyBomb::`vftable' ; COMDAT ??_7BettyBomb@@6B@ ; File aigame.cpp CONST SEGMENT ??_7BettyBomb@@6B@ DD FLAT:?CallEvent@BettyBomb@@UAEFHPAUtOSIRISEventInfo@@@Z ; BettyBomb::`vftable' CONST ENDS ; COMDAT ??0BettyBomb@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0BettyBomb@@QAE@XZ PROC NEAR ; BettyBomb::BettyBomb, COMDAT ; File aigame.cpp ; Line 1168 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7BettyBomb@@6B@ ; BettyBomb::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0BettyBomb@@QAE@XZ ENDP ; BettyBomb::BettyBomb _TEXT ENDS PUBLIC ?CallEvent@BettyScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; BettyScript::CallEvent PUBLIC ??_7BettyScript@@6B@ ; BettyScript::`vftable' ; COMDAT ??_7BettyScript@@6B@ ; File aigame.cpp CONST SEGMENT ??_7BettyScript@@6B@ DD FLAT:?CallEvent@BettyScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; BettyScript::`vftable' CONST ENDS ; COMDAT ??0BettyScript@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0BettyScript@@QAE@XZ PROC NEAR ; BettyScript::BettyScript, COMDAT ; File aigame.cpp ; Line 1182 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7BettyScript@@6B@ ; BettyScript::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0BettyScript@@QAE@XZ ENDP ; BettyScript::BettyScript _TEXT ENDS PUBLIC ?CallEvent@ChaffScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; ChaffScript::CallEvent PUBLIC ??_7ChaffScript@@6B@ ; ChaffScript::`vftable' ; COMDAT ??_7ChaffScript@@6B@ ; File aigame.cpp CONST SEGMENT ??_7ChaffScript@@6B@ DD FLAT:?CallEvent@ChaffScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; ChaffScript::`vftable' CONST ENDS ; COMDAT ??0ChaffScript@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0ChaffScript@@QAE@XZ PROC NEAR ; ChaffScript::ChaffScript, COMDAT ; File aigame.cpp ; Line 1201 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7ChaffScript@@6B@ ; ChaffScript::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0ChaffScript@@QAE@XZ ENDP ; ChaffScript::ChaffScript _TEXT ENDS PUBLIC ?CallEvent@ChaffChunkScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; ChaffChunkScript::CallEvent PUBLIC ??_7ChaffChunkScript@@6B@ ; ChaffChunkScript::`vftable' ; COMDAT ??_7ChaffChunkScript@@6B@ ; File aigame.cpp CONST SEGMENT ??_7ChaffChunkScript@@6B@ DD FLAT:?CallEvent@ChaffChunkScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; ChaffChunkScript::`vftable' CONST ENDS ; COMDAT ??0ChaffChunkScript@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0ChaffChunkScript@@QAE@XZ PROC NEAR ; ChaffChunkScript::ChaffChunkScript, COMDAT ; File aigame.cpp ; Line 1217 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7ChaffChunkScript@@6B@ ; ChaffChunkScript::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0ChaffChunkScript@@QAE@XZ ENDP ; ChaffChunkScript::ChaffChunkScript _TEXT ENDS PUBLIC ?CallEvent@ProxMine@@UAEFHPAUtOSIRISEventInfo@@@Z ; ProxMine::CallEvent PUBLIC ??_7ProxMine@@6B@ ; ProxMine::`vftable' ; COMDAT ??_7ProxMine@@6B@ ; File aigame.cpp CONST SEGMENT ??_7ProxMine@@6B@ DD FLAT:?CallEvent@ProxMine@@UAEFHPAUtOSIRISEventInfo@@@Z ; ProxMine::`vftable' CONST ENDS ; COMDAT ??0ProxMine@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0ProxMine@@QAE@XZ PROC NEAR ; ProxMine::ProxMine, COMDAT ; File aigame.cpp ; Line 1237 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7ProxMine@@6B@ ; ProxMine::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0ProxMine@@QAE@XZ ENDP ; ProxMine::ProxMine _TEXT ENDS PUBLIC ?CallEvent@Gunboy@@UAEFHPAUtOSIRISEventInfo@@@Z ; Gunboy::CallEvent PUBLIC ??_7Gunboy@@6B@ ; Gunboy::`vftable' ; COMDAT ??_7Gunboy@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Gunboy@@6B@ DD FLAT:?CallEvent@Gunboy@@UAEFHPAUtOSIRISEventInfo@@@Z ; Gunboy::`vftable' CONST ENDS ; COMDAT ??0Gunboy@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Gunboy@@QAE@XZ PROC NEAR ; Gunboy::Gunboy, COMDAT ; File aigame.cpp ; Line 1248 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Gunboy@@6B@ ; Gunboy::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Gunboy@@QAE@XZ ENDP ; Gunboy::Gunboy _TEXT ENDS PUBLIC ?CallEvent@GBPowerup@@UAEFHPAUtOSIRISEventInfo@@@Z ; GBPowerup::CallEvent PUBLIC ??_7GBPowerup@@6B@ ; GBPowerup::`vftable' ; COMDAT ??_7GBPowerup@@6B@ ; File aigame.cpp CONST SEGMENT ??_7GBPowerup@@6B@ DD FLAT:?CallEvent@GBPowerup@@UAEFHPAUtOSIRISEventInfo@@@Z ; GBPowerup::`vftable' CONST ENDS ; COMDAT ??0GBPowerup@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0GBPowerup@@QAE@XZ PROC NEAR ; GBPowerup::GBPowerup, COMDAT ; File aigame.cpp ; Line 1270 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7GBPowerup@@6B@ ; GBPowerup::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0GBPowerup@@QAE@XZ ENDP ; GBPowerup::GBPowerup _TEXT ENDS PUBLIC ?CallEvent@JoshBell@@UAEFHPAUtOSIRISEventInfo@@@Z ; JoshBell::CallEvent PUBLIC ??_7JoshBell@@6B@ ; JoshBell::`vftable' ; COMDAT ??_7JoshBell@@6B@ ; File aigame.cpp CONST SEGMENT ??_7JoshBell@@6B@ DD FLAT:?CallEvent@JoshBell@@UAEFHPAUtOSIRISEventInfo@@@Z ; JoshBell::`vftable' CONST ENDS ; COMDAT ??0JoshBell@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0JoshBell@@QAE@XZ PROC NEAR ; JoshBell::JoshBell, COMDAT ; File aigame.cpp ; Line 1294 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7JoshBell@@6B@ ; JoshBell::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0JoshBell@@QAE@XZ ENDP ; JoshBell::JoshBell _TEXT ENDS PUBLIC ?CallEvent@ExplodeOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z ; ExplodeOnContact::CallEvent PUBLIC ??_7ExplodeOnContact@@6B@ ; ExplodeOnContact::`vftable' ; COMDAT ??_7ExplodeOnContact@@6B@ ; File aigame.cpp CONST SEGMENT ??_7ExplodeOnContact@@6B@ DD FLAT:?CallEvent@ExplodeOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z ; ExplodeOnContact::`vftable' CONST ENDS ; COMDAT ??0ExplodeOnContact@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0ExplodeOnContact@@QAE@XZ PROC NEAR ; ExplodeOnContact::ExplodeOnContact, COMDAT ; File aigame.cpp ; Line 1307 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7ExplodeOnContact@@6B@ ; ExplodeOnContact::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0ExplodeOnContact@@QAE@XZ ENDP ; ExplodeOnContact::ExplodeOnContact _TEXT ENDS PUBLIC ?CallEvent@DestroyOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z ; DestroyOnContact::CallEvent PUBLIC ??_7DestroyOnContact@@6B@ ; DestroyOnContact::`vftable' ; COMDAT ??_7DestroyOnContact@@6B@ ; File aigame.cpp CONST SEGMENT ??_7DestroyOnContact@@6B@ DD FLAT:?CallEvent@DestroyOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z ; DestroyOnContact::`vftable' CONST ENDS ; COMDAT ??0DestroyOnContact@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0DestroyOnContact@@QAE@XZ PROC NEAR ; DestroyOnContact::DestroyOnContact, COMDAT ; File aigame.cpp ; Line 1320 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7DestroyOnContact@@6B@ ; DestroyOnContact::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0DestroyOnContact@@QAE@XZ ENDP ; DestroyOnContact::DestroyOnContact _TEXT ENDS PUBLIC ?CallEvent@GuideBot@@UAEFHPAUtOSIRISEventInfo@@@Z ; GuideBot::CallEvent PUBLIC ??_7GuideBot@@6B@ ; GuideBot::`vftable' ; COMDAT ??_7GuideBot@@6B@ ; File aigame.cpp CONST SEGMENT ??_7GuideBot@@6B@ DD FLAT:?CallEvent@GuideBot@@UAEFHPAUtOSIRISEventInfo@@@Z ; GuideBot::`vftable' CONST ENDS ; COMDAT ??0GuideBot@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0GuideBot@@QAE@XZ PROC NEAR ; GuideBot::GuideBot, COMDAT ; File aigame.cpp ; Line 1585 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7GuideBot@@6B@ ; GuideBot::`vftable' mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], 0 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0GuideBot@@QAE@XZ ENDP ; GuideBot::GuideBot _TEXT ENDS PUBLIC ?CallEvent@Thief@@UAEFHPAUtOSIRISEventInfo@@@Z ; Thief::CallEvent PUBLIC ??_7Thief@@6B@ ; Thief::`vftable' ; COMDAT ??_7Thief@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Thief@@6B@ DD FLAT:?CallEvent@Thief@@UAEFHPAUtOSIRISEventInfo@@@Z ; Thief::`vftable' CONST ENDS ; COMDAT ??0Thief@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Thief@@QAE@XZ PROC NEAR ; Thief::Thief, COMDAT ; File aigame.cpp ; Line 1724 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Thief@@6B@ ; Thief::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Thief@@QAE@XZ ENDP ; Thief::Thief _TEXT ENDS PUBLIC ?CallEvent@FireAtDist@@UAEFHPAUtOSIRISEventInfo@@@Z ; FireAtDist::CallEvent PUBLIC ??_7FireAtDist@@6B@ ; FireAtDist::`vftable' ; COMDAT ??_7FireAtDist@@6B@ ; File aigame.cpp CONST SEGMENT ??_7FireAtDist@@6B@ DD FLAT:?CallEvent@FireAtDist@@UAEFHPAUtOSIRISEventInfo@@@Z ; FireAtDist::`vftable' CONST ENDS ; COMDAT ??0FireAtDist@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0FireAtDist@@QAE@XZ PROC NEAR ; FireAtDist::FireAtDist, COMDAT ; File aigame.cpp ; Line 2366 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7FireAtDist@@6B@ ; FireAtDist::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0FireAtDist@@QAE@XZ ENDP ; FireAtDist::FireAtDist _TEXT ENDS PUBLIC ?CallEvent@HatePTMC@@UAEFHPAUtOSIRISEventInfo@@@Z ; HatePTMC::CallEvent PUBLIC ??_7HatePTMC@@6B@ ; HatePTMC::`vftable' ; COMDAT ??_7HatePTMC@@6B@ ; File aigame.cpp CONST SEGMENT ??_7HatePTMC@@6B@ DD FLAT:?CallEvent@HatePTMC@@UAEFHPAUtOSIRISEventInfo@@@Z ; HatePTMC::`vftable' CONST ENDS ; COMDAT ??0HatePTMC@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0HatePTMC@@QAE@XZ PROC NEAR ; HatePTMC::HatePTMC, COMDAT ; File aigame.cpp ; Line 2387 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7HatePTMC@@6B@ ; HatePTMC::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0HatePTMC@@QAE@XZ ENDP ; HatePTMC::HatePTMC _TEXT ENDS PUBLIC ?CallEvent@Tubbs@@UAEFHPAUtOSIRISEventInfo@@@Z ; Tubbs::CallEvent PUBLIC ??_7Tubbs@@6B@ ; Tubbs::`vftable' ; COMDAT ??_7Tubbs@@6B@ ; File aigame.cpp CONST SEGMENT ??_7Tubbs@@6B@ DD FLAT:?CallEvent@Tubbs@@UAEFHPAUtOSIRISEventInfo@@@Z ; Tubbs::`vftable' CONST ENDS ; COMDAT ??0Tubbs@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0Tubbs@@QAE@XZ PROC NEAR ; Tubbs::Tubbs, COMDAT ; File aigame.cpp ; Line 2412 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7Tubbs@@6B@ ; Tubbs::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0Tubbs@@QAE@XZ ENDP ; Tubbs::Tubbs _TEXT ENDS PUBLIC ?CallEvent@BarnSwallow@@UAEFHPAUtOSIRISEventInfo@@@Z ; BarnSwallow::CallEvent PUBLIC ??_7BarnSwallow@@6B@ ; BarnSwallow::`vftable' ; COMDAT ??_7BarnSwallow@@6B@ ; File aigame.cpp CONST SEGMENT ??_7BarnSwallow@@6B@ DD FLAT:?CallEvent@BarnSwallow@@UAEFHPAUtOSIRISEventInfo@@@Z ; BarnSwallow::`vftable' CONST ENDS ; COMDAT ??0BarnSwallow@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0BarnSwallow@@QAE@XZ PROC NEAR ; BarnSwallow::BarnSwallow, COMDAT ; File aigame.cpp ; Line 2479 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7BarnSwallow@@6B@ ; BarnSwallow::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0BarnSwallow@@QAE@XZ ENDP ; BarnSwallow::BarnSwallow _TEXT ENDS PUBLIC ?CallEvent@ExplodeTimeOut@@UAEFHPAUtOSIRISEventInfo@@@Z ; ExplodeTimeOut::CallEvent PUBLIC ??_7ExplodeTimeOut@@6B@ ; ExplodeTimeOut::`vftable' ; COMDAT ??_7ExplodeTimeOut@@6B@ CONST SEGMENT ??_7ExplodeTimeOut@@6B@ DD FLAT:?CallEvent@ExplodeTimeOut@@UAEFHPAUtOSIRISEventInfo@@@Z ; ExplodeTimeOut::`vftable' CONST ENDS ; COMDAT ??0ExplodeTimeOut@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??0ExplodeTimeOut@@QAE@XZ PROC NEAR ; ExplodeTimeOut::ExplodeTimeOut, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??0BaseObjScript@@QAE@XZ ; BaseObjScript::BaseObjScript mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7ExplodeTimeOut@@6B@ ; ExplodeTimeOut::`vftable' mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0ExplodeTimeOut@@QAE@XZ ENDP ; ExplodeTimeOut::ExplodeTimeOut _TEXT ENDS PUBLIC ??_GChaffScript@@QAEPAXI@Z ; ChaffScript::`scalar deleting destructor' PUBLIC ??_GChaffChunkScript@@QAEPAXI@Z ; ChaffChunkScript::`scalar deleting destructor' PUBLIC ??_GHumonculous@@QAEPAXI@Z ; Humonculous::`scalar deleting destructor' PUBLIC ??_GProxMine@@QAEPAXI@Z ; ProxMine::`scalar deleting destructor' PUBLIC ??_GDragon@@QAEPAXI@Z ; Dragon::`scalar deleting destructor' PUBLIC ??_GGunboy@@QAEPAXI@Z ; Gunboy::`scalar deleting destructor' PUBLIC ??_GTracker@@QAEPAXI@Z ; Tracker::`scalar deleting destructor' PUBLIC ??_GGBPowerup@@QAEPAXI@Z ; GBPowerup::`scalar deleting destructor' PUBLIC ??_GLance@@QAEPAXI@Z ; Lance::`scalar deleting destructor' PUBLIC ??_GJoshBell@@QAEPAXI@Z ; JoshBell::`scalar deleting destructor' PUBLIC ??_GFlak@@QAEPAXI@Z ; Flak::`scalar deleting destructor' PUBLIC ??_GExplodeOnContact@@QAEPAXI@Z ; ExplodeOnContact::`scalar deleting destructor' PUBLIC ??_GDestroyOnContact@@QAEPAXI@Z ; DestroyOnContact::`scalar deleting destructor' PUBLIC ??_GSeeker@@QAEPAXI@Z ; Seeker::`scalar deleting destructor' PUBLIC ??_GSuperTrooper@@QAEPAXI@Z ; SuperTrooper::`scalar deleting destructor' PUBLIC ??_GSparky@@QAEPAXI@Z ; Sparky::`scalar deleting destructor' PUBLIC ??_GGuideBot@@QAEPAXI@Z ; GuideBot::`scalar deleting destructor' PUBLIC ??_GHellion@@QAEPAXI@Z ; Hellion::`scalar deleting destructor' PUBLIC ??_GMantaRay@@QAEPAXI@Z ; MantaRay::`scalar deleting destructor' PUBLIC ??_GThief@@QAEPAXI@Z ; Thief::`scalar deleting destructor' PUBLIC ??_GSkiff@@QAEPAXI@Z ; Skiff::`scalar deleting destructor' PUBLIC ??_GSpyHunter@@QAEPAXI@Z ; SpyHunter::`scalar deleting destructor' PUBLIC ??_GSniper@@QAEPAXI@Z ; Sniper::`scalar deleting destructor' PUBLIC ??_GSniperNoRun@@QAEPAXI@Z ; SniperNoRun::`scalar deleting destructor' PUBLIC ??_GEvaderModA@@QAEPAXI@Z ; EvaderModA::`scalar deleting destructor' PUBLIC ??_GJugg@@QAEPAXI@Z ; Jugg::`scalar deleting destructor' PUBLIC _DestroyInstance@8 PUBLIC ??_GDTower@@QAEPAXI@Z ; DTower::`scalar deleting destructor' PUBLIC ??_GFireAtDist@@QAEPAXI@Z ; FireAtDist::`scalar deleting destructor' PUBLIC ??_GDCollector@@QAEPAXI@Z ; DCollector::`scalar deleting destructor' PUBLIC ??_GHatePTMC@@QAEPAXI@Z ; HatePTMC::`scalar deleting destructor' PUBLIC ??_GCBall@@QAEPAXI@Z ; CBall::`scalar deleting destructor' PUBLIC ??_GTubbs@@QAEPAXI@Z ; Tubbs::`scalar deleting destructor' PUBLIC ??_GSixGun@@QAEPAXI@Z ; SixGun::`scalar deleting destructor' PUBLIC ??_GExplodeTimeOut@@QAEPAXI@Z ; ExplodeTimeOut::`scalar deleting destructor' PUBLIC ??_GPest@@QAEPAXI@Z ; Pest::`scalar deleting destructor' PUBLIC ??_GBarnSwallow@@QAEPAXI@Z ; BarnSwallow::`scalar deleting destructor' PUBLIC ??_GStinger@@QAEPAXI@Z ; Stinger::`scalar deleting destructor' PUBLIC ??_GSickle@@QAEPAXI@Z ; Sickle::`scalar deleting destructor' PUBLIC ??_GBettyBomb@@QAEPAXI@Z ; BettyBomb::`scalar deleting destructor' PUBLIC ??_GBettyScript@@QAEPAXI@Z ; BettyScript::`scalar deleting destructor' PUBLIC ??_GSuperThief@@QAEPAXI@Z ; SuperThief::`scalar deleting destructor' _DATA SEGMENT ORG $+3 $SG6368 DB 'SCRIPT: Illegal ID (%d)', 0aH, 00H _DATA ENDS _TEXT SEGMENT _id$ = 8 _ptr$ = 12 $T10885 = -4 $T10886 = -8 $T10889 = -12 $T10890 = -16 $T10893 = -20 $T10894 = -24 $T10897 = -28 $T10898 = -32 $T10901 = -36 $T10902 = -40 $T10905 = -44 $T10906 = -48 $T10909 = -52 $T10910 = -56 $T10913 = -60 $T10914 = -64 $T10917 = -68 $T10918 = -72 $T10921 = -76 $T10922 = -80 $T10925 = -84 $T10926 = -88 $T10929 = -92 $T10930 = -96 $T10933 = -100 $T10934 = -104 $T10937 = -108 $T10938 = -112 $T10941 = -116 $T10942 = -120 $T10945 = -124 $T10946 = -128 $T10949 = -132 $T10950 = -136 $T10953 = -140 $T10954 = -144 $T10957 = -148 $T10958 = -152 $T10961 = -156 $T10962 = -160 $T10965 = -164 $T10966 = -168 $T10969 = -172 $T10970 = -176 $T10973 = -180 $T10974 = -184 $T10977 = -188 $T10978 = -192 $T10981 = -196 $T10982 = -200 $T10985 = -204 $T10986 = -208 $T10989 = -212 $T10990 = -216 $T10993 = -220 $T10994 = -224 $T10997 = -228 $T10998 = -232 $T11001 = -236 $T11002 = -240 $T11005 = -244 $T11006 = -248 $T11009 = -252 $T11010 = -256 $T11013 = -260 $T11014 = -264 $T11017 = -268 $T11018 = -272 $T11021 = -276 $T11022 = -280 $T11025 = -284 $T11026 = -288 $T11029 = -292 $T11030 = -296 $T11033 = -300 $T11034 = -304 $T11037 = -308 $T11038 = -312 $T11041 = -316 $T11042 = -320 $T11045 = -324 $T11046 = -328 _DestroyInstance@8 PROC NEAR ; Line 2671 push ebp mov ebp, esp sub esp, 496 ; 000001f0H ; Line 2672 mov eax, DWORD PTR _id$[ebp] mov DWORD PTR -332+[ebp], eax cmp DWORD PTR -332+[ebp], 41 ; 00000029H ja $L6367 mov ecx, DWORD PTR -332+[ebp] jmp DWORD PTR $L11049[ecx*4] $L6203: ; Line 2674 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10886[ebp], edx mov eax, DWORD PTR $T10886[ebp] mov DWORD PTR $T10885[ebp], eax cmp DWORD PTR $T10885[ebp], 0 je SHORT $L10887 push 1 mov ecx, DWORD PTR $T10885[ebp] call ??_GPest@@QAEPAXI@Z ; Pest::`scalar deleting destructor' mov DWORD PTR -336+[ebp], eax jmp SHORT $L10888 $L10887: mov DWORD PTR -336+[ebp], 0 $L10888: ; Line 2675 jmp $L6200 $L6207: ; Line 2677 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10890[ebp], ecx mov edx, DWORD PTR $T10890[ebp] mov DWORD PTR $T10889[ebp], edx cmp DWORD PTR $T10889[ebp], 0 je SHORT $L10891 push 1 mov ecx, DWORD PTR $T10889[ebp] call ??_GStinger@@QAEPAXI@Z ; Stinger::`scalar deleting destructor' mov DWORD PTR -340+[ebp], eax jmp SHORT $L10892 $L10891: mov DWORD PTR -340+[ebp], 0 $L10892: ; Line 2678 jmp $L6200 $L6211: ; Line 2680 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10894[ebp], eax mov ecx, DWORD PTR $T10894[ebp] mov DWORD PTR $T10893[ebp], ecx cmp DWORD PTR $T10893[ebp], 0 je SHORT $L10895 push 1 mov ecx, DWORD PTR $T10893[ebp] call ??_GDragon@@QAEPAXI@Z ; Dragon::`scalar deleting destructor' mov DWORD PTR -344+[ebp], eax jmp SHORT $L10896 $L10895: mov DWORD PTR -344+[ebp], 0 $L10896: ; Line 2681 jmp $L6200 $L6215: ; Line 2683 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10898[ebp], edx mov eax, DWORD PTR $T10898[ebp] mov DWORD PTR $T10897[ebp], eax cmp DWORD PTR $T10897[ebp], 0 je SHORT $L10899 push 1 mov ecx, DWORD PTR $T10897[ebp] call ??_GTracker@@QAEPAXI@Z ; Tracker::`scalar deleting destructor' mov DWORD PTR -348+[ebp], eax jmp SHORT $L10900 $L10899: mov DWORD PTR -348+[ebp], 0 $L10900: ; Line 2684 jmp $L6200 $L6219: ; Line 2686 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10902[ebp], ecx mov edx, DWORD PTR $T10902[ebp] mov DWORD PTR $T10901[ebp], edx cmp DWORD PTR $T10901[ebp], 0 je SHORT $L10903 push 1 mov ecx, DWORD PTR $T10901[ebp] call ??_GLance@@QAEPAXI@Z ; Lance::`scalar deleting destructor' mov DWORD PTR -352+[ebp], eax jmp SHORT $L10904 $L10903: mov DWORD PTR -352+[ebp], 0 $L10904: ; Line 2687 jmp $L6200 $L6223: ; Line 2689 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10906[ebp], eax mov ecx, DWORD PTR $T10906[ebp] mov DWORD PTR $T10905[ebp], ecx cmp DWORD PTR $T10905[ebp], 0 je SHORT $L10907 push 1 mov ecx, DWORD PTR $T10905[ebp] call ??_GFlak@@QAEPAXI@Z ; Flak::`scalar deleting destructor' mov DWORD PTR -356+[ebp], eax jmp SHORT $L10908 $L10907: mov DWORD PTR -356+[ebp], 0 $L10908: ; Line 2690 jmp $L6200 $L6227: ; Line 2693 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10910[ebp], edx mov eax, DWORD PTR $T10910[ebp] mov DWORD PTR $T10909[ebp], eax cmp DWORD PTR $T10909[ebp], 0 je SHORT $L10911 push 1 mov ecx, DWORD PTR $T10909[ebp] call ??_GSuperTrooper@@QAEPAXI@Z ; SuperTrooper::`scalar deleting destructor' mov DWORD PTR -360+[ebp], eax jmp SHORT $L10912 $L10911: mov DWORD PTR -360+[ebp], 0 $L10912: ; Line 2694 jmp $L6200 $L6231: ; Line 2696 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10914[ebp], ecx mov edx, DWORD PTR $T10914[ebp] mov DWORD PTR $T10913[ebp], edx cmp DWORD PTR $T10913[ebp], 0 je SHORT $L10915 push 1 mov ecx, DWORD PTR $T10913[ebp] call ??_GJugg@@QAEPAXI@Z ; Jugg::`scalar deleting destructor' mov DWORD PTR -364+[ebp], eax jmp SHORT $L10916 $L10915: mov DWORD PTR -364+[ebp], 0 $L10916: ; Line 2697 jmp $L6200 $L6235: ; Line 2699 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10918[ebp], eax mov ecx, DWORD PTR $T10918[ebp] mov DWORD PTR $T10917[ebp], ecx cmp DWORD PTR $T10917[ebp], 0 je SHORT $L10919 push 1 mov ecx, DWORD PTR $T10917[ebp] call ??_GSixGun@@QAEPAXI@Z ; SixGun::`scalar deleting destructor' mov DWORD PTR -368+[ebp], eax jmp SHORT $L10920 $L10919: mov DWORD PTR -368+[ebp], 0 $L10920: ; Line 2700 jmp $L6200 $L6239: ; Line 2702 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10922[ebp], edx mov eax, DWORD PTR $T10922[ebp] mov DWORD PTR $T10921[ebp], eax cmp DWORD PTR $T10921[ebp], 0 je SHORT $L10923 push 1 mov ecx, DWORD PTR $T10921[ebp] call ??_GSickle@@QAEPAXI@Z ; Sickle::`scalar deleting destructor' mov DWORD PTR -372+[ebp], eax jmp SHORT $L10924 $L10923: mov DWORD PTR -372+[ebp], 0 $L10924: ; Line 2703 jmp $L6200 $L6243: ; Line 2705 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10926[ebp], ecx mov edx, DWORD PTR $T10926[ebp] mov DWORD PTR $T10925[ebp], edx cmp DWORD PTR $T10925[ebp], 0 je SHORT $L10927 push 1 mov ecx, DWORD PTR $T10925[ebp] call ??_GGuideBot@@QAEPAXI@Z ; GuideBot::`scalar deleting destructor' mov DWORD PTR -376+[ebp], eax jmp SHORT $L10928 $L10927: mov DWORD PTR -376+[ebp], 0 $L10928: ; Line 2706 jmp $L6200 $L6247: ; Line 2708 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10930[ebp], eax mov ecx, DWORD PTR $T10930[ebp] mov DWORD PTR $T10929[ebp], ecx cmp DWORD PTR $T10929[ebp], 0 je SHORT $L10931 push 1 mov ecx, DWORD PTR $T10929[ebp] call ??_GFireAtDist@@QAEPAXI@Z ; FireAtDist::`scalar deleting destructor' mov DWORD PTR -380+[ebp], eax jmp SHORT $L10932 $L10931: mov DWORD PTR -380+[ebp], 0 $L10932: ; Line 2709 jmp $L6200 $L6251: ; Line 2711 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10934[ebp], edx mov eax, DWORD PTR $T10934[ebp] mov DWORD PTR $T10933[ebp], eax cmp DWORD PTR $T10933[ebp], 0 je SHORT $L10935 push 1 mov ecx, DWORD PTR $T10933[ebp] call ??_GTubbs@@QAEPAXI@Z ; Tubbs::`scalar deleting destructor' mov DWORD PTR -384+[ebp], eax jmp SHORT $L10936 $L10935: mov DWORD PTR -384+[ebp], 0 $L10936: ; Line 2712 jmp $L6200 $L6255: ; Line 2714 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10938[ebp], ecx mov edx, DWORD PTR $T10938[ebp] mov DWORD PTR $T10937[ebp], edx cmp DWORD PTR $T10937[ebp], 0 je SHORT $L10939 push 1 mov ecx, DWORD PTR $T10937[ebp] call ??_GThief@@QAEPAXI@Z ; Thief::`scalar deleting destructor' mov DWORD PTR -388+[ebp], eax jmp SHORT $L10940 $L10939: mov DWORD PTR -388+[ebp], 0 $L10940: ; Line 2715 jmp $L6200 $L6259: ; Line 2717 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10942[ebp], eax mov ecx, DWORD PTR $T10942[ebp] mov DWORD PTR $T10941[ebp], ecx cmp DWORD PTR $T10941[ebp], 0 je SHORT $L10943 push 1 mov ecx, DWORD PTR $T10941[ebp] call ??_GGBPowerup@@QAEPAXI@Z ; GBPowerup::`scalar deleting destructor' mov DWORD PTR -392+[ebp], eax jmp SHORT $L10944 $L10943: mov DWORD PTR -392+[ebp], 0 $L10944: ; Line 2718 jmp $L6200 $L6263: ; Line 2720 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10946[ebp], edx mov eax, DWORD PTR $T10946[ebp] mov DWORD PTR $T10945[ebp], eax cmp DWORD PTR $T10945[ebp], 0 je SHORT $L10947 push 1 mov ecx, DWORD PTR $T10945[ebp] call ??_GBarnSwallow@@QAEPAXI@Z ; BarnSwallow::`scalar deleting destructor' mov DWORD PTR -396+[ebp], eax jmp SHORT $L10948 $L10947: mov DWORD PTR -396+[ebp], 0 $L10948: ; Line 2721 jmp $L6200 $L6267: ; Line 2723 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10950[ebp], ecx mov edx, DWORD PTR $T10950[ebp] mov DWORD PTR $T10949[ebp], edx cmp DWORD PTR $T10949[ebp], 0 je SHORT $L10951 push 1 mov ecx, DWORD PTR $T10949[ebp] call ??_GSparky@@QAEPAXI@Z ; Sparky::`scalar deleting destructor' mov DWORD PTR -400+[ebp], eax jmp SHORT $L10952 $L10951: mov DWORD PTR -400+[ebp], 0 $L10952: ; Line 2724 jmp $L6200 $L6271: ; Line 2726 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10954[ebp], eax mov ecx, DWORD PTR $T10954[ebp] mov DWORD PTR $T10953[ebp], ecx cmp DWORD PTR $T10953[ebp], 0 je SHORT $L10955 push 1 mov ecx, DWORD PTR $T10953[ebp] call ??_GMantaRay@@QAEPAXI@Z ; MantaRay::`scalar deleting destructor' mov DWORD PTR -404+[ebp], eax jmp SHORT $L10956 $L10955: mov DWORD PTR -404+[ebp], 0 $L10956: ; Line 2727 jmp $L6200 $L6275: ; Line 2729 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10958[ebp], edx mov eax, DWORD PTR $T10958[ebp] mov DWORD PTR $T10957[ebp], eax cmp DWORD PTR $T10957[ebp], 0 je SHORT $L10959 push 1 mov ecx, DWORD PTR $T10957[ebp] call ??_GSpyHunter@@QAEPAXI@Z ; SpyHunter::`scalar deleting destructor' mov DWORD PTR -408+[ebp], eax jmp SHORT $L10960 $L10959: mov DWORD PTR -408+[ebp], 0 $L10960: ; Line 2730 jmp $L6200 $L6279: ; Line 2732 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10962[ebp], ecx mov edx, DWORD PTR $T10962[ebp] mov DWORD PTR $T10961[ebp], edx cmp DWORD PTR $T10961[ebp], 0 je SHORT $L10963 push 1 mov ecx, DWORD PTR $T10961[ebp] call ??_GSniper@@QAEPAXI@Z ; Sniper::`scalar deleting destructor' mov DWORD PTR -412+[ebp], eax jmp SHORT $L10964 $L10963: mov DWORD PTR -412+[ebp], 0 $L10964: ; Line 2733 jmp $L6200 $L6283: ; Line 2735 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10966[ebp], eax mov ecx, DWORD PTR $T10966[ebp] mov DWORD PTR $T10965[ebp], ecx cmp DWORD PTR $T10965[ebp], 0 je SHORT $L10967 push 1 mov ecx, DWORD PTR $T10965[ebp] call ??_GHumonculous@@QAEPAXI@Z ; Humonculous::`scalar deleting destructor' mov DWORD PTR -416+[ebp], eax jmp SHORT $L10968 $L10967: mov DWORD PTR -416+[ebp], 0 $L10968: ; Line 2736 jmp $L6200 $L6287: ; Line 2738 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10970[ebp], edx mov eax, DWORD PTR $T10970[ebp] mov DWORD PTR $T10969[ebp], eax cmp DWORD PTR $T10969[ebp], 0 je SHORT $L10971 push 1 mov ecx, DWORD PTR $T10969[ebp] call ??_GSeeker@@QAEPAXI@Z ; Seeker::`scalar deleting destructor' mov DWORD PTR -420+[ebp], eax jmp SHORT $L10972 $L10971: mov DWORD PTR -420+[ebp], 0 $L10972: ; Line 2739 jmp $L6200 $L6291: ; Line 2741 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10974[ebp], ecx mov edx, DWORD PTR $T10974[ebp] mov DWORD PTR $T10973[ebp], edx cmp DWORD PTR $T10973[ebp], 0 je SHORT $L10975 push 1 mov ecx, DWORD PTR $T10973[ebp] call ??_GBettyScript@@QAEPAXI@Z ; BettyScript::`scalar deleting destructor' mov DWORD PTR -424+[ebp], eax jmp SHORT $L10976 $L10975: mov DWORD PTR -424+[ebp], 0 $L10976: ; Line 2742 jmp $L6200 $L6295: ; Line 2744 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10978[ebp], eax mov ecx, DWORD PTR $T10978[ebp] mov DWORD PTR $T10977[ebp], ecx cmp DWORD PTR $T10977[ebp], 0 je SHORT $L10979 push 1 mov ecx, DWORD PTR $T10977[ebp] call ??_GChaffScript@@QAEPAXI@Z ; ChaffScript::`scalar deleting destructor' mov DWORD PTR -428+[ebp], eax jmp SHORT $L10980 $L10979: mov DWORD PTR -428+[ebp], 0 $L10980: ; Line 2745 jmp $L6200 $L6299: ; Line 2747 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10982[ebp], edx mov eax, DWORD PTR $T10982[ebp] mov DWORD PTR $T10981[ebp], eax cmp DWORD PTR $T10981[ebp], 0 je SHORT $L10983 push 1 mov ecx, DWORD PTR $T10981[ebp] call ??_GChaffChunkScript@@QAEPAXI@Z ; ChaffChunkScript::`scalar deleting destructor' mov DWORD PTR -432+[ebp], eax jmp SHORT $L10984 $L10983: mov DWORD PTR -432+[ebp], 0 $L10984: ; Line 2748 jmp $L6200 $L6303: ; Line 2750 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10986[ebp], ecx mov edx, DWORD PTR $T10986[ebp] mov DWORD PTR $T10985[ebp], edx cmp DWORD PTR $T10985[ebp], 0 je SHORT $L10987 push 1 mov ecx, DWORD PTR $T10985[ebp] call ??_GProxMine@@QAEPAXI@Z ; ProxMine::`scalar deleting destructor' mov DWORD PTR -436+[ebp], eax jmp SHORT $L10988 $L10987: mov DWORD PTR -436+[ebp], 0 $L10988: ; Line 2751 jmp $L6200 $L6307: ; Line 2753 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10990[ebp], eax mov ecx, DWORD PTR $T10990[ebp] mov DWORD PTR $T10989[ebp], ecx cmp DWORD PTR $T10989[ebp], 0 je SHORT $L10991 push 1 mov ecx, DWORD PTR $T10989[ebp] call ??_GBettyBomb@@QAEPAXI@Z ; BettyBomb::`scalar deleting destructor' mov DWORD PTR -440+[ebp], eax jmp SHORT $L10992 $L10991: mov DWORD PTR -440+[ebp], 0 $L10992: ; Line 2754 jmp $L6200 $L6311: ; Line 2756 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10994[ebp], edx mov eax, DWORD PTR $T10994[ebp] mov DWORD PTR $T10993[ebp], eax cmp DWORD PTR $T10993[ebp], 0 je SHORT $L10995 push 1 mov ecx, DWORD PTR $T10993[ebp] call ??_GJoshBell@@QAEPAXI@Z ; JoshBell::`scalar deleting destructor' mov DWORD PTR -444+[ebp], eax jmp SHORT $L10996 $L10995: mov DWORD PTR -444+[ebp], 0 $L10996: ; Line 2757 jmp $L6200 $L6315: ; Line 2759 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T10998[ebp], ecx mov edx, DWORD PTR $T10998[ebp] mov DWORD PTR $T10997[ebp], edx cmp DWORD PTR $T10997[ebp], 0 je SHORT $L10999 push 1 mov ecx, DWORD PTR $T10997[ebp] call ??_GSkiff@@QAEPAXI@Z ; Skiff::`scalar deleting destructor' mov DWORD PTR -448+[ebp], eax jmp SHORT $L11000 $L10999: mov DWORD PTR -448+[ebp], 0 $L11000: ; Line 2760 jmp $L6200 $L6319: ; Line 2762 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11002[ebp], eax mov ecx, DWORD PTR $T11002[ebp] mov DWORD PTR $T11001[ebp], ecx cmp DWORD PTR $T11001[ebp], 0 je SHORT $L11003 push 1 mov ecx, DWORD PTR $T11001[ebp] call ??_GExplodeOnContact@@QAEPAXI@Z ; ExplodeOnContact::`scalar deleting destructor' mov DWORD PTR -452+[ebp], eax jmp SHORT $L11004 $L11003: mov DWORD PTR -452+[ebp], 0 $L11004: ; Line 2763 jmp $L6200 $L6323: ; Line 2765 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11006[ebp], edx mov eax, DWORD PTR $T11006[ebp] mov DWORD PTR $T11005[ebp], eax cmp DWORD PTR $T11005[ebp], 0 je SHORT $L11007 push 1 mov ecx, DWORD PTR $T11005[ebp] call ??_GExplodeTimeOut@@QAEPAXI@Z ; ExplodeTimeOut::`scalar deleting destructor' mov DWORD PTR -456+[ebp], eax jmp SHORT $L11008 $L11007: mov DWORD PTR -456+[ebp], 0 $L11008: ; Line 2766 jmp $L6200 $L6327: ; Line 2768 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11010[ebp], ecx mov edx, DWORD PTR $T11010[ebp] mov DWORD PTR $T11009[ebp], edx cmp DWORD PTR $T11009[ebp], 0 je SHORT $L11011 push 1 mov ecx, DWORD PTR $T11009[ebp] call ??_GGunboy@@QAEPAXI@Z ; Gunboy::`scalar deleting destructor' mov DWORD PTR -460+[ebp], eax jmp SHORT $L11012 $L11011: mov DWORD PTR -460+[ebp], 0 $L11012: ; Line 2769 jmp $L6200 $L6331: ; Line 2771 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11014[ebp], eax mov ecx, DWORD PTR $T11014[ebp] mov DWORD PTR $T11013[ebp], ecx cmp DWORD PTR $T11013[ebp], 0 je SHORT $L11015 push 1 mov ecx, DWORD PTR $T11013[ebp] call ??_GDTower@@QAEPAXI@Z ; DTower::`scalar deleting destructor' mov DWORD PTR -464+[ebp], eax jmp SHORT $L11016 $L11015: mov DWORD PTR -464+[ebp], 0 $L11016: ; Line 2772 jmp $L6200 $L6335: ; Line 2774 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11018[ebp], edx mov eax, DWORD PTR $T11018[ebp] mov DWORD PTR $T11017[ebp], eax cmp DWORD PTR $T11017[ebp], 0 je SHORT $L11019 push 1 mov ecx, DWORD PTR $T11017[ebp] call ??_GDCollector@@QAEPAXI@Z ; DCollector::`scalar deleting destructor' mov DWORD PTR -468+[ebp], eax jmp SHORT $L11020 $L11019: mov DWORD PTR -468+[ebp], 0 $L11020: ; Line 2775 jmp $L6200 $L6339: ; Line 2777 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11022[ebp], ecx mov edx, DWORD PTR $T11022[ebp] mov DWORD PTR $T11021[ebp], edx cmp DWORD PTR $T11021[ebp], 0 je SHORT $L11023 push 1 mov ecx, DWORD PTR $T11021[ebp] call ??_GCBall@@QAEPAXI@Z ; CBall::`scalar deleting destructor' mov DWORD PTR -472+[ebp], eax jmp SHORT $L11024 $L11023: mov DWORD PTR -472+[ebp], 0 $L11024: ; Line 2778 jmp $L6200 $L6343: ; Line 2780 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11026[ebp], eax mov ecx, DWORD PTR $T11026[ebp] mov DWORD PTR $T11025[ebp], ecx cmp DWORD PTR $T11025[ebp], 0 je SHORT $L11027 push 1 mov ecx, DWORD PTR $T11025[ebp] call ??_GHellion@@QAEPAXI@Z ; Hellion::`scalar deleting destructor' mov DWORD PTR -476+[ebp], eax jmp SHORT $L11028 $L11027: mov DWORD PTR -476+[ebp], 0 $L11028: ; Line 2781 jmp $L6200 $L6347: ; Line 2783 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11030[ebp], edx mov eax, DWORD PTR $T11030[ebp] mov DWORD PTR $T11029[ebp], eax cmp DWORD PTR $T11029[ebp], 0 je SHORT $L11031 push 1 mov ecx, DWORD PTR $T11029[ebp] call ??_GSuperThief@@QAEPAXI@Z ; SuperThief::`scalar deleting destructor' mov DWORD PTR -480+[ebp], eax jmp SHORT $L11032 $L11031: mov DWORD PTR -480+[ebp], 0 $L11032: ; Line 2784 jmp $L6200 $L6351: ; Line 2786 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11034[ebp], ecx mov edx, DWORD PTR $T11034[ebp] mov DWORD PTR $T11033[ebp], edx cmp DWORD PTR $T11033[ebp], 0 je SHORT $L11035 push 1 mov ecx, DWORD PTR $T11033[ebp] call ??_GEvaderModA@@QAEPAXI@Z ; EvaderModA::`scalar deleting destructor' mov DWORD PTR -484+[ebp], eax jmp SHORT $L11036 $L11035: mov DWORD PTR -484+[ebp], 0 $L11036: ; Line 2787 jmp $L6200 $L6355: ; Line 2789 mov eax, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11038[ebp], eax mov ecx, DWORD PTR $T11038[ebp] mov DWORD PTR $T11037[ebp], ecx cmp DWORD PTR $T11037[ebp], 0 je SHORT $L11039 push 1 mov ecx, DWORD PTR $T11037[ebp] call ??_GDestroyOnContact@@QAEPAXI@Z ; DestroyOnContact::`scalar deleting destructor' mov DWORD PTR -488+[ebp], eax jmp SHORT $L11040 $L11039: mov DWORD PTR -488+[ebp], 0 $L11040: ; Line 2790 jmp $L6200 $L6359: ; Line 2792 mov edx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11042[ebp], edx mov eax, DWORD PTR $T11042[ebp] mov DWORD PTR $T11041[ebp], eax cmp DWORD PTR $T11041[ebp], 0 je SHORT $L11043 push 1 mov ecx, DWORD PTR $T11041[ebp] call ??_GHatePTMC@@QAEPAXI@Z ; HatePTMC::`scalar deleting destructor' mov DWORD PTR -492+[ebp], eax jmp SHORT $L11044 $L11043: mov DWORD PTR -492+[ebp], 0 $L11044: ; Line 2793 jmp SHORT $L6200 $L6363: ; Line 2795 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR $T11046[ebp], ecx mov edx, DWORD PTR $T11046[ebp] mov DWORD PTR $T11045[ebp], edx cmp DWORD PTR $T11045[ebp], 0 je SHORT $L11047 push 1 mov ecx, DWORD PTR $T11045[ebp] call ??_GSniperNoRun@@QAEPAXI@Z ; SniperNoRun::`scalar deleting destructor' mov DWORD PTR -496+[ebp], eax jmp SHORT $L11048 $L11047: mov DWORD PTR -496+[ebp], 0 $L11048: ; Line 2796 jmp SHORT $L6200 $L6367: ; Line 2798 mov eax, DWORD PTR _id$[ebp] push eax push OFFSET FLAT:$SG6368 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH $L6200: ; Line 2801 mov esp, ebp pop ebp ret 8 $L11049: DD $L6203 DD $L6207 DD $L6211 DD $L6215 DD $L6219 DD $L6223 DD $L6227 DD $L6227 DD $L6231 DD $L6235 DD $L6239 DD $L6243 DD $L6247 DD $L6251 DD $L6255 DD $L6259 DD $L6263 DD $L6267 DD $L6271 DD $L6275 DD $L6279 DD $L6283 DD $L6287 DD $L6291 DD $L6295 DD $L6299 DD $L6303 DD $L6307 DD $L6311 DD $L6315 DD $L6319 DD $L6323 DD $L6327 DD $L6331 DD $L6335 DD $L6339 DD $L6343 DD $L6347 DD $L6351 DD $L6355 DD $L6359 DD $L6363 _DestroyInstance@8 ENDP _TEXT ENDS PUBLIC ??1Pest@@QAE@XZ ; Pest::~Pest EXTRN ??3@YAXPAX@Z:NEAR ; operator delete ; COMDAT ??_GPest@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GPest@@QAEPAXI@Z PROC NEAR ; Pest::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Pest@@QAE@XZ ; Pest::~Pest mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6412 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6412: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GPest@@QAEPAXI@Z ENDP ; Pest::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Stinger@@QAE@XZ ; Stinger::~Stinger ; COMDAT ??_GStinger@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GStinger@@QAEPAXI@Z PROC NEAR ; Stinger::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Stinger@@QAE@XZ ; Stinger::~Stinger mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6415 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6415: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GStinger@@QAEPAXI@Z ENDP ; Stinger::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Dragon@@QAE@XZ ; Dragon::~Dragon ; COMDAT ??_GDragon@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GDragon@@QAEPAXI@Z PROC NEAR ; Dragon::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Dragon@@QAE@XZ ; Dragon::~Dragon mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6418 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6418: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GDragon@@QAEPAXI@Z ENDP ; Dragon::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Tracker@@QAE@XZ ; Tracker::~Tracker ; COMDAT ??_GTracker@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GTracker@@QAEPAXI@Z PROC NEAR ; Tracker::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Tracker@@QAE@XZ ; Tracker::~Tracker mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6421 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6421: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GTracker@@QAEPAXI@Z ENDP ; Tracker::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Lance@@QAE@XZ ; Lance::~Lance ; COMDAT ??_GLance@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GLance@@QAEPAXI@Z PROC NEAR ; Lance::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Lance@@QAE@XZ ; Lance::~Lance mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6424 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6424: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GLance@@QAEPAXI@Z ENDP ; Lance::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Flak@@QAE@XZ ; Flak::~Flak ; COMDAT ??_GFlak@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GFlak@@QAEPAXI@Z PROC NEAR ; Flak::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Flak@@QAE@XZ ; Flak::~Flak mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6427 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6427: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GFlak@@QAEPAXI@Z ENDP ; Flak::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1SuperTrooper@@QAE@XZ ; SuperTrooper::~SuperTrooper ; COMDAT ??_GSuperTrooper@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSuperTrooper@@QAEPAXI@Z PROC NEAR ; SuperTrooper::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1SuperTrooper@@QAE@XZ ; SuperTrooper::~SuperTrooper mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6430 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6430: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSuperTrooper@@QAEPAXI@Z ENDP ; SuperTrooper::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Jugg@@QAE@XZ ; Jugg::~Jugg ; COMDAT ??_GJugg@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GJugg@@QAEPAXI@Z PROC NEAR ; Jugg::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Jugg@@QAE@XZ ; Jugg::~Jugg mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6433 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6433: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GJugg@@QAEPAXI@Z ENDP ; Jugg::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1SixGun@@QAE@XZ ; SixGun::~SixGun ; COMDAT ??_GSixGun@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSixGun@@QAEPAXI@Z PROC NEAR ; SixGun::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1SixGun@@QAE@XZ ; SixGun::~SixGun mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6436 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6436: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSixGun@@QAEPAXI@Z ENDP ; SixGun::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Sickle@@QAE@XZ ; Sickle::~Sickle ; COMDAT ??_GSickle@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSickle@@QAEPAXI@Z PROC NEAR ; Sickle::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Sickle@@QAE@XZ ; Sickle::~Sickle mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6439 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6439: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSickle@@QAEPAXI@Z ENDP ; Sickle::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1GuideBot@@QAE@XZ ; GuideBot::~GuideBot ; COMDAT ??_GGuideBot@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GGuideBot@@QAEPAXI@Z PROC NEAR ; GuideBot::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1GuideBot@@QAE@XZ ; GuideBot::~GuideBot mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6442 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6442: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GGuideBot@@QAEPAXI@Z ENDP ; GuideBot::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1FireAtDist@@QAE@XZ ; FireAtDist::~FireAtDist ; COMDAT ??_GFireAtDist@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GFireAtDist@@QAEPAXI@Z PROC NEAR ; FireAtDist::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1FireAtDist@@QAE@XZ ; FireAtDist::~FireAtDist mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6445 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6445: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GFireAtDist@@QAEPAXI@Z ENDP ; FireAtDist::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Tubbs@@QAE@XZ ; Tubbs::~Tubbs ; COMDAT ??_GTubbs@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GTubbs@@QAEPAXI@Z PROC NEAR ; Tubbs::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Tubbs@@QAE@XZ ; Tubbs::~Tubbs mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6448 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6448: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GTubbs@@QAEPAXI@Z ENDP ; Tubbs::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Thief@@QAE@XZ ; Thief::~Thief ; COMDAT ??_GThief@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GThief@@QAEPAXI@Z PROC NEAR ; Thief::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Thief@@QAE@XZ ; Thief::~Thief mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6451 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6451: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GThief@@QAEPAXI@Z ENDP ; Thief::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1GBPowerup@@QAE@XZ ; GBPowerup::~GBPowerup ; COMDAT ??_GGBPowerup@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GGBPowerup@@QAEPAXI@Z PROC NEAR ; GBPowerup::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1GBPowerup@@QAE@XZ ; GBPowerup::~GBPowerup mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6454 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6454: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GGBPowerup@@QAEPAXI@Z ENDP ; GBPowerup::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1BarnSwallow@@QAE@XZ ; BarnSwallow::~BarnSwallow ; COMDAT ??_GBarnSwallow@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GBarnSwallow@@QAEPAXI@Z PROC NEAR ; BarnSwallow::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BarnSwallow@@QAE@XZ ; BarnSwallow::~BarnSwallow mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6457 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6457: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GBarnSwallow@@QAEPAXI@Z ENDP ; BarnSwallow::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Sparky@@QAE@XZ ; Sparky::~Sparky ; COMDAT ??_GSparky@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSparky@@QAEPAXI@Z PROC NEAR ; Sparky::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Sparky@@QAE@XZ ; Sparky::~Sparky mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6460 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6460: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSparky@@QAEPAXI@Z ENDP ; Sparky::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1MantaRay@@QAE@XZ ; MantaRay::~MantaRay ; COMDAT ??_GMantaRay@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GMantaRay@@QAEPAXI@Z PROC NEAR ; MantaRay::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1MantaRay@@QAE@XZ ; MantaRay::~MantaRay mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6463 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6463: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GMantaRay@@QAEPAXI@Z ENDP ; MantaRay::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1SpyHunter@@QAE@XZ ; SpyHunter::~SpyHunter ; COMDAT ??_GSpyHunter@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSpyHunter@@QAEPAXI@Z PROC NEAR ; SpyHunter::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1SpyHunter@@QAE@XZ ; SpyHunter::~SpyHunter mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6466 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6466: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSpyHunter@@QAEPAXI@Z ENDP ; SpyHunter::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Sniper@@QAE@XZ ; Sniper::~Sniper ; COMDAT ??_GSniper@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSniper@@QAEPAXI@Z PROC NEAR ; Sniper::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Sniper@@QAE@XZ ; Sniper::~Sniper mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6469 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6469: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSniper@@QAEPAXI@Z ENDP ; Sniper::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Humonculous@@QAE@XZ ; Humonculous::~Humonculous ; COMDAT ??_GHumonculous@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GHumonculous@@QAEPAXI@Z PROC NEAR ; Humonculous::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Humonculous@@QAE@XZ ; Humonculous::~Humonculous mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6472 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6472: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GHumonculous@@QAEPAXI@Z ENDP ; Humonculous::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Seeker@@QAE@XZ ; Seeker::~Seeker ; COMDAT ??_GSeeker@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSeeker@@QAEPAXI@Z PROC NEAR ; Seeker::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Seeker@@QAE@XZ ; Seeker::~Seeker mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6475 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6475: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSeeker@@QAEPAXI@Z ENDP ; Seeker::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1BettyScript@@QAE@XZ ; BettyScript::~BettyScript ; COMDAT ??_GBettyScript@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GBettyScript@@QAEPAXI@Z PROC NEAR ; BettyScript::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BettyScript@@QAE@XZ ; BettyScript::~BettyScript mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6478 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6478: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GBettyScript@@QAEPAXI@Z ENDP ; BettyScript::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1ChaffScript@@QAE@XZ ; ChaffScript::~ChaffScript ; COMDAT ??_GChaffScript@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GChaffScript@@QAEPAXI@Z PROC NEAR ; ChaffScript::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1ChaffScript@@QAE@XZ ; ChaffScript::~ChaffScript mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6481 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6481: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GChaffScript@@QAEPAXI@Z ENDP ; ChaffScript::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1ChaffChunkScript@@QAE@XZ ; ChaffChunkScript::~ChaffChunkScript ; COMDAT ??_GChaffChunkScript@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GChaffChunkScript@@QAEPAXI@Z PROC NEAR ; ChaffChunkScript::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1ChaffChunkScript@@QAE@XZ ; ChaffChunkScript::~ChaffChunkScript mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6484 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6484: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GChaffChunkScript@@QAEPAXI@Z ENDP ; ChaffChunkScript::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1ProxMine@@QAE@XZ ; ProxMine::~ProxMine ; COMDAT ??_GProxMine@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GProxMine@@QAEPAXI@Z PROC NEAR ; ProxMine::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1ProxMine@@QAE@XZ ; ProxMine::~ProxMine mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6487 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6487: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GProxMine@@QAEPAXI@Z ENDP ; ProxMine::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1BettyBomb@@QAE@XZ ; BettyBomb::~BettyBomb ; COMDAT ??_GBettyBomb@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GBettyBomb@@QAEPAXI@Z PROC NEAR ; BettyBomb::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BettyBomb@@QAE@XZ ; BettyBomb::~BettyBomb mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6490 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6490: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GBettyBomb@@QAEPAXI@Z ENDP ; BettyBomb::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1JoshBell@@QAE@XZ ; JoshBell::~JoshBell ; COMDAT ??_GJoshBell@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GJoshBell@@QAEPAXI@Z PROC NEAR ; JoshBell::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1JoshBell@@QAE@XZ ; JoshBell::~JoshBell mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6493 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6493: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GJoshBell@@QAEPAXI@Z ENDP ; JoshBell::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Skiff@@QAE@XZ ; Skiff::~Skiff ; COMDAT ??_GSkiff@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSkiff@@QAEPAXI@Z PROC NEAR ; Skiff::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Skiff@@QAE@XZ ; Skiff::~Skiff mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6496 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6496: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSkiff@@QAEPAXI@Z ENDP ; Skiff::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1ExplodeOnContact@@QAE@XZ ; ExplodeOnContact::~ExplodeOnContact ; COMDAT ??_GExplodeOnContact@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GExplodeOnContact@@QAEPAXI@Z PROC NEAR ; ExplodeOnContact::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1ExplodeOnContact@@QAE@XZ ; ExplodeOnContact::~ExplodeOnContact mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6499 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6499: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GExplodeOnContact@@QAEPAXI@Z ENDP ; ExplodeOnContact::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1ExplodeTimeOut@@QAE@XZ ; ExplodeTimeOut::~ExplodeTimeOut ; COMDAT ??_GExplodeTimeOut@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GExplodeTimeOut@@QAEPAXI@Z PROC NEAR ; ExplodeTimeOut::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1ExplodeTimeOut@@QAE@XZ ; ExplodeTimeOut::~ExplodeTimeOut mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6502 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6502: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GExplodeTimeOut@@QAEPAXI@Z ENDP ; ExplodeTimeOut::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Gunboy@@QAE@XZ ; Gunboy::~Gunboy ; COMDAT ??_GGunboy@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GGunboy@@QAEPAXI@Z PROC NEAR ; Gunboy::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Gunboy@@QAE@XZ ; Gunboy::~Gunboy mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6505 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6505: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GGunboy@@QAEPAXI@Z ENDP ; Gunboy::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1DTower@@QAE@XZ ; DTower::~DTower ; COMDAT ??_GDTower@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GDTower@@QAEPAXI@Z PROC NEAR ; DTower::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1DTower@@QAE@XZ ; DTower::~DTower mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6508 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6508: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GDTower@@QAEPAXI@Z ENDP ; DTower::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1DCollector@@QAE@XZ ; DCollector::~DCollector ; COMDAT ??_GDCollector@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GDCollector@@QAEPAXI@Z PROC NEAR ; DCollector::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1DCollector@@QAE@XZ ; DCollector::~DCollector mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6511 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6511: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GDCollector@@QAEPAXI@Z ENDP ; DCollector::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1CBall@@QAE@XZ ; CBall::~CBall ; COMDAT ??_GCBall@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GCBall@@QAEPAXI@Z PROC NEAR ; CBall::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1CBall@@QAE@XZ ; CBall::~CBall mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6514 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6514: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GCBall@@QAEPAXI@Z ENDP ; CBall::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1Hellion@@QAE@XZ ; Hellion::~Hellion ; COMDAT ??_GHellion@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GHellion@@QAEPAXI@Z PROC NEAR ; Hellion::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1Hellion@@QAE@XZ ; Hellion::~Hellion mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6517 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6517: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GHellion@@QAEPAXI@Z ENDP ; Hellion::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1SuperThief@@QAE@XZ ; SuperThief::~SuperThief ; COMDAT ??_GSuperThief@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSuperThief@@QAEPAXI@Z PROC NEAR ; SuperThief::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1SuperThief@@QAE@XZ ; SuperThief::~SuperThief mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6520 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6520: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSuperThief@@QAEPAXI@Z ENDP ; SuperThief::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1EvaderModA@@QAE@XZ ; EvaderModA::~EvaderModA ; COMDAT ??_GEvaderModA@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GEvaderModA@@QAEPAXI@Z PROC NEAR ; EvaderModA::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1EvaderModA@@QAE@XZ ; EvaderModA::~EvaderModA mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6523 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6523: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GEvaderModA@@QAEPAXI@Z ENDP ; EvaderModA::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1DestroyOnContact@@QAE@XZ ; DestroyOnContact::~DestroyOnContact ; COMDAT ??_GDestroyOnContact@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GDestroyOnContact@@QAEPAXI@Z PROC NEAR ; DestroyOnContact::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1DestroyOnContact@@QAE@XZ ; DestroyOnContact::~DestroyOnContact mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6526 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6526: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GDestroyOnContact@@QAEPAXI@Z ENDP ; DestroyOnContact::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1HatePTMC@@QAE@XZ ; HatePTMC::~HatePTMC ; COMDAT ??_GHatePTMC@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GHatePTMC@@QAEPAXI@Z PROC NEAR ; HatePTMC::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1HatePTMC@@QAE@XZ ; HatePTMC::~HatePTMC mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6529 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6529: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GHatePTMC@@QAEPAXI@Z ENDP ; HatePTMC::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1SniperNoRun@@QAE@XZ ; SniperNoRun::~SniperNoRun ; COMDAT ??_GSniperNoRun@@QAEPAXI@Z _TEXT SEGMENT ___flags$ = 8 _this$ = -4 ??_GSniperNoRun@@QAEPAXI@Z PROC NEAR ; SniperNoRun::`scalar deleting destructor', COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1SniperNoRun@@QAE@XZ ; SniperNoRun::~SniperNoRun mov eax, DWORD PTR ___flags$[ebp] and eax, 1 test eax, eax je SHORT $L6532 mov ecx, DWORD PTR _this$[ebp] push ecx call ??3@YAXPAX@Z ; operator delete add esp, 4 $L6532: mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 4 ??_GSniperNoRun@@QAEPAXI@Z ENDP ; SniperNoRun::`scalar deleting destructor' _TEXT ENDS PUBLIC ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript ; COMDAT ??1Pest@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Pest@@QAE@XZ PROC NEAR ; Pest::~Pest, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Pest@@QAE@XZ ENDP ; Pest::~Pest _TEXT ENDS ; COMDAT ??1Stinger@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Stinger@@QAE@XZ PROC NEAR ; Stinger::~Stinger, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Stinger@@QAE@XZ ENDP ; Stinger::~Stinger _TEXT ENDS ; COMDAT ??1Dragon@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Dragon@@QAE@XZ PROC NEAR ; Dragon::~Dragon, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Dragon@@QAE@XZ ENDP ; Dragon::~Dragon _TEXT ENDS ; COMDAT ??1Tracker@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Tracker@@QAE@XZ PROC NEAR ; Tracker::~Tracker, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Tracker@@QAE@XZ ENDP ; Tracker::~Tracker _TEXT ENDS ; COMDAT ??1Lance@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Lance@@QAE@XZ PROC NEAR ; Lance::~Lance, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Lance@@QAE@XZ ENDP ; Lance::~Lance _TEXT ENDS ; COMDAT ??1Flak@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Flak@@QAE@XZ PROC NEAR ; Flak::~Flak, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Flak@@QAE@XZ ENDP ; Flak::~Flak _TEXT ENDS ; COMDAT ??1SuperTrooper@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1SuperTrooper@@QAE@XZ PROC NEAR ; SuperTrooper::~SuperTrooper, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1SuperTrooper@@QAE@XZ ENDP ; SuperTrooper::~SuperTrooper _TEXT ENDS ; COMDAT ??1Jugg@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Jugg@@QAE@XZ PROC NEAR ; Jugg::~Jugg, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Jugg@@QAE@XZ ENDP ; Jugg::~Jugg _TEXT ENDS ; COMDAT ??1SixGun@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1SixGun@@QAE@XZ PROC NEAR ; SixGun::~SixGun, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1SixGun@@QAE@XZ ENDP ; SixGun::~SixGun _TEXT ENDS ; COMDAT ??1Sickle@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Sickle@@QAE@XZ PROC NEAR ; Sickle::~Sickle, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Sickle@@QAE@XZ ENDP ; Sickle::~Sickle _TEXT ENDS ; COMDAT ??1GuideBot@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1GuideBot@@QAE@XZ PROC NEAR ; GuideBot::~GuideBot, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1GuideBot@@QAE@XZ ENDP ; GuideBot::~GuideBot _TEXT ENDS ; COMDAT ??1FireAtDist@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1FireAtDist@@QAE@XZ PROC NEAR ; FireAtDist::~FireAtDist, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1FireAtDist@@QAE@XZ ENDP ; FireAtDist::~FireAtDist _TEXT ENDS ; COMDAT ??1Tubbs@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Tubbs@@QAE@XZ PROC NEAR ; Tubbs::~Tubbs, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Tubbs@@QAE@XZ ENDP ; Tubbs::~Tubbs _TEXT ENDS ; COMDAT ??1Thief@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Thief@@QAE@XZ PROC NEAR ; Thief::~Thief, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Thief@@QAE@XZ ENDP ; Thief::~Thief _TEXT ENDS ; COMDAT ??1GBPowerup@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1GBPowerup@@QAE@XZ PROC NEAR ; GBPowerup::~GBPowerup, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1GBPowerup@@QAE@XZ ENDP ; GBPowerup::~GBPowerup _TEXT ENDS ; COMDAT ??1BarnSwallow@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1BarnSwallow@@QAE@XZ PROC NEAR ; BarnSwallow::~BarnSwallow, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1BarnSwallow@@QAE@XZ ENDP ; BarnSwallow::~BarnSwallow _TEXT ENDS ; COMDAT ??1Sparky@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Sparky@@QAE@XZ PROC NEAR ; Sparky::~Sparky, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Sparky@@QAE@XZ ENDP ; Sparky::~Sparky _TEXT ENDS ; COMDAT ??1MantaRay@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1MantaRay@@QAE@XZ PROC NEAR ; MantaRay::~MantaRay, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1MantaRay@@QAE@XZ ENDP ; MantaRay::~MantaRay _TEXT ENDS ; COMDAT ??1SpyHunter@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1SpyHunter@@QAE@XZ PROC NEAR ; SpyHunter::~SpyHunter, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1SpyHunter@@QAE@XZ ENDP ; SpyHunter::~SpyHunter _TEXT ENDS ; COMDAT ??1Sniper@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Sniper@@QAE@XZ PROC NEAR ; Sniper::~Sniper, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Sniper@@QAE@XZ ENDP ; Sniper::~Sniper _TEXT ENDS ; COMDAT ??1Humonculous@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Humonculous@@QAE@XZ PROC NEAR ; Humonculous::~Humonculous, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Humonculous@@QAE@XZ ENDP ; Humonculous::~Humonculous _TEXT ENDS ; COMDAT ??1Seeker@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Seeker@@QAE@XZ PROC NEAR ; Seeker::~Seeker, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Seeker@@QAE@XZ ENDP ; Seeker::~Seeker _TEXT ENDS ; COMDAT ??1BettyScript@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1BettyScript@@QAE@XZ PROC NEAR ; BettyScript::~BettyScript, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1BettyScript@@QAE@XZ ENDP ; BettyScript::~BettyScript _TEXT ENDS ; COMDAT ??1ChaffScript@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1ChaffScript@@QAE@XZ PROC NEAR ; ChaffScript::~ChaffScript, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1ChaffScript@@QAE@XZ ENDP ; ChaffScript::~ChaffScript _TEXT ENDS ; COMDAT ??1ChaffChunkScript@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1ChaffChunkScript@@QAE@XZ PROC NEAR ; ChaffChunkScript::~ChaffChunkScript, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1ChaffChunkScript@@QAE@XZ ENDP ; ChaffChunkScript::~ChaffChunkScript _TEXT ENDS ; COMDAT ??1ProxMine@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1ProxMine@@QAE@XZ PROC NEAR ; ProxMine::~ProxMine, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1ProxMine@@QAE@XZ ENDP ; ProxMine::~ProxMine _TEXT ENDS ; COMDAT ??1BettyBomb@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1BettyBomb@@QAE@XZ PROC NEAR ; BettyBomb::~BettyBomb, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1BettyBomb@@QAE@XZ ENDP ; BettyBomb::~BettyBomb _TEXT ENDS ; COMDAT ??1JoshBell@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1JoshBell@@QAE@XZ PROC NEAR ; JoshBell::~JoshBell, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1JoshBell@@QAE@XZ ENDP ; JoshBell::~JoshBell _TEXT ENDS ; COMDAT ??1Skiff@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Skiff@@QAE@XZ PROC NEAR ; Skiff::~Skiff, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Skiff@@QAE@XZ ENDP ; Skiff::~Skiff _TEXT ENDS ; COMDAT ??1ExplodeOnContact@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1ExplodeOnContact@@QAE@XZ PROC NEAR ; ExplodeOnContact::~ExplodeOnContact, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1ExplodeOnContact@@QAE@XZ ENDP ; ExplodeOnContact::~ExplodeOnContact _TEXT ENDS ; COMDAT ??1ExplodeTimeOut@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1ExplodeTimeOut@@QAE@XZ PROC NEAR ; ExplodeTimeOut::~ExplodeTimeOut, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1ExplodeTimeOut@@QAE@XZ ENDP ; ExplodeTimeOut::~ExplodeTimeOut _TEXT ENDS ; COMDAT ??1Gunboy@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Gunboy@@QAE@XZ PROC NEAR ; Gunboy::~Gunboy, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Gunboy@@QAE@XZ ENDP ; Gunboy::~Gunboy _TEXT ENDS ; COMDAT ??1DTower@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1DTower@@QAE@XZ PROC NEAR ; DTower::~DTower, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1DTower@@QAE@XZ ENDP ; DTower::~DTower _TEXT ENDS ; COMDAT ??1DCollector@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1DCollector@@QAE@XZ PROC NEAR ; DCollector::~DCollector, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1DCollector@@QAE@XZ ENDP ; DCollector::~DCollector _TEXT ENDS ; COMDAT ??1CBall@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1CBall@@QAE@XZ PROC NEAR ; CBall::~CBall, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1CBall@@QAE@XZ ENDP ; CBall::~CBall _TEXT ENDS ; COMDAT ??1Hellion@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1Hellion@@QAE@XZ PROC NEAR ; Hellion::~Hellion, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1Hellion@@QAE@XZ ENDP ; Hellion::~Hellion _TEXT ENDS ; COMDAT ??1SuperThief@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1SuperThief@@QAE@XZ PROC NEAR ; SuperThief::~SuperThief, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1SuperThief@@QAE@XZ ENDP ; SuperThief::~SuperThief _TEXT ENDS ; COMDAT ??1EvaderModA@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1EvaderModA@@QAE@XZ PROC NEAR ; EvaderModA::~EvaderModA, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1EvaderModA@@QAE@XZ ENDP ; EvaderModA::~EvaderModA _TEXT ENDS ; COMDAT ??1DestroyOnContact@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1DestroyOnContact@@QAE@XZ PROC NEAR ; DestroyOnContact::~DestroyOnContact, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1DestroyOnContact@@QAE@XZ ENDP ; DestroyOnContact::~DestroyOnContact _TEXT ENDS ; COMDAT ??1HatePTMC@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1HatePTMC@@QAE@XZ PROC NEAR ; HatePTMC::~HatePTMC, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1HatePTMC@@QAE@XZ ENDP ; HatePTMC::~HatePTMC _TEXT ENDS ; COMDAT ??1SniperNoRun@@QAE@XZ _TEXT SEGMENT _this$ = -4 ??1SniperNoRun@@QAE@XZ PROC NEAR ; SniperNoRun::~SniperNoRun, COMDAT push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov ecx, DWORD PTR _this$[ebp] call ??1BaseObjScript@@QAE@XZ ; BaseObjScript::~BaseObjScript mov esp, ebp pop ebp ret 0 ??1SniperNoRun@@QAE@XZ ENDP ; SniperNoRun::~SniperNoRun _TEXT ENDS PUBLIC _CallInstanceEvent@16 _TEXT SEGMENT _ptr$ = 12 _event$ = 16 _data$ = 20 _CallInstanceEvent@16 PROC NEAR ; Line 2804 push ebp mov ebp, esp ; Line 2805 mov eax, DWORD PTR _data$[ebp] push eax mov ecx, DWORD PTR _event$[ebp] push ecx mov edx, DWORD PTR _ptr$[ebp] mov eax, DWORD PTR [edx] mov ecx, DWORD PTR _ptr$[ebp] call DWORD PTR [eax] ; Line 2806 pop ebp ret 16 ; 00000010H _CallInstanceEvent@16 ENDP _TEXT ENDS PUBLIC ?Obj_GetObjDist@@YAMHH_N@Z ; Obj_GetObjDist _TEXT SEGMENT _me$ = 8 _it$ = 12 _f_sub_rads$ = 16 _me_pos$ = -28 _it_pos$ = -16 _dist$ = -4 _size$6631 = -32 ?Obj_GetObjDist@@YAMHH_N@Z PROC NEAR ; Obj_GetObjDist ; Line 2813 push ebp mov ebp, esp sub esp, 32 ; 00000020H ; Line 2818 push 0 lea eax, DWORD PTR _me_pos$[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2819 push 0 lea edx, DWORD PTR _it_pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _it$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2821 lea ecx, DWORD PTR _it_pos$[ebp] push ecx lea edx, DWORD PTR _me_pos$[ebp] push edx call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dist$[ebp] ; Line 2823 mov eax, DWORD PTR _f_sub_rads$[ebp] and eax, 255 ; 000000ffH test eax, eax je SHORT $L6630 ; Line 2827 push 0 lea ecx, DWORD PTR _size$6631[ebp] push ecx push 11 ; 0000000bH push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2828 fld DWORD PTR _dist$[ebp] fsub DWORD PTR _size$6631[ebp] fstp DWORD PTR _dist$[ebp] ; Line 2829 push 0 lea eax, DWORD PTR _size$6631[ebp] push eax push 11 ; 0000000bH push 1 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2830 fld DWORD PTR _dist$[ebp] fsub DWORD PTR _size$6631[ebp] fstp DWORD PTR _dist$[ebp] $L6630: ; Line 2833 fld DWORD PTR _dist$[ebp] ; Line 2834 mov esp, ebp pop ebp ret 0 ?Obj_GetObjDist@@YAMHH_N@Z ENDP ; Obj_GetObjDist _TEXT ENDS PUBLIC ?CallEvent@BaseObjScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; BaseObjScript::CallEvent PUBLIC ??_7BaseObjScript@@6B@ ; BaseObjScript::`vftable' ; COMDAT ??_7BaseObjScript@@6B@ ; File aigame.cpp CONST SEGMENT ??_7BaseObjScript@@6B@ DD FLAT:?CallEvent@BaseObjScript@@UAEFHPAUtOSIRISEventInfo@@@Z ; BaseObjScript::`vftable' CONST ENDS _TEXT SEGMENT _this$ = -4 ??0BaseObjScript@@QAE@XZ PROC NEAR ; BaseObjScript::BaseObjScript ; File aigame.cpp ; Line 2856 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7BaseObjScript@@6B@ ; BaseObjScript::`vftable' ; Line 2857 mov eax, DWORD PTR _this$[ebp] mov esp, ebp pop ebp ret 0 ??0BaseObjScript@@QAE@XZ ENDP ; BaseObjScript::BaseObjScript _this$ = -4 ??1BaseObjScript@@QAE@XZ PROC NEAR ; BaseObjScript::~BaseObjScript ; Line 2860 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx mov eax, DWORD PTR _this$[ebp] mov DWORD PTR [eax], OFFSET FLAT:??_7BaseObjScript@@6B@ ; BaseObjScript::`vftable' ; Line 2861 mov esp, ebp pop ebp ret 0 ??1BaseObjScript@@QAE@XZ ENDP ; BaseObjScript::~BaseObjScript _this$ = -4 ?CallEvent@BaseObjScript@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; BaseObjScript::CallEvent ; Line 2864 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 2865 mov ax, 257 ; 00000101H ; Line 2866 mov esp, ebp pop ebp ret 8 ?CallEvent@BaseObjScript@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; BaseObjScript::CallEvent _TEXT ENDS PUBLIC ?DoInit@JoshBell@@AAEXH@Z ; JoshBell::DoInit _DATA SEGMENT ORG $+3 $SG6661 DB 'Bellbars', 00H ORG $+3 $SG6662 DB 'Bell', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@JoshBell@@AAEXH@Z PROC NEAR ; JoshBell::DoInit ; Line 2873 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 2875 mov WORD PTR _ch$[ebp+8], 4 ; Line 2876 mov DWORD PTR _ch$[ebp+12], 16 ; 00000010H ; Line 2877 mov DWORD PTR _ch$[ebp], 0 ; Line 2878 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 2880 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 2882 push 0 push 1 push 0 push 0 push 11 ; 0000000bH push OFFSET FLAT:$SG6661 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax ; Line 2883 push OFFSET FLAT:$SG6662 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+12], eax ; Line 2884 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+8] ; Line 2885 mov esp, ebp pop ebp ret 4 ?DoInit@JoshBell@@AAEXH@Z ENDP ; JoshBell::DoInit _TEXT ENDS PUBLIC ?DoCollide@JoshBell@@AAEXH@Z ; JoshBell::DoCollide _TEXT SEGMENT _me$ = 8 _this$ = -8 _child_handle$ = -4 ?DoCollide@JoshBell@@AAEXH@Z PROC NEAR ; JoshBell::DoCollide ; Line 2888 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 2889 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_GetAttachChildHandle@@3P6AHHD@ZA ; Obj_GetAttachChildHandle add esp, 8 mov DWORD PTR _child_handle$[ebp], eax ; Line 2891 cmp DWORD PTR _child_handle$[ebp], -1 jne SHORT $L6668 ; Line 2893 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] ; Line 2894 push 1065353216 ; 3f800000H mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+12] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L6668: ; Line 2896 mov esp, ebp pop ebp ret 4 ?DoCollide@JoshBell@@AAEXH@Z ENDP ; JoshBell::DoCollide _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@JoshBell@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; JoshBell::CallEvent ; Line 2899 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 2901 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 259 ; 00000103H je SHORT $L6679 cmp DWORD PTR -8+[ebp], 260 ; 00000104H je SHORT $L6678 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L6680 jmp SHORT $L6675 $L6678: ; Line 2903 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@JoshBell@@AAEXH@Z ; JoshBell::DoInit ; Line 2904 jmp SHORT $L6675 $L6679: ; Line 2906 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@JoshBell@@AAEXH@Z ; JoshBell::DoCollide ; Line 2907 jmp SHORT $L6675 $L6680: ; Line 2910 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L6675: ; Line 2915 mov ax, 257 ; 00000101H ; Line 2916 mov esp, ebp pop ebp ret 8 ?CallEvent@JoshBell@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; JoshBell::CallEvent _TEXT ENDS PUBLIC ?DoCollide@ExplodeOnContact@@AAEXHH@Z ; ExplodeOnContact::DoCollide _TEXT SEGMENT _me$ = 8 _it$ = 12 _this$ = -928 _type$ = -4 _mstruct$6689 = -924 ?DoCollide@ExplodeOnContact@@AAEXHH@Z PROC NEAR ; ExplodeOnContact::DoCollide ; Line 2923 push ebp mov ebp, esp sub esp, 928 ; 000003a0H mov DWORD PTR _this$[ebp], ecx ; Line 2925 push 0 lea eax, DWORD PTR _type$[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2927 cmp DWORD PTR _type$[ebp], 4 jne SHORT $L6688 ; Line 2931 mov edx, DWORD PTR _me$[ebp] mov DWORD PTR _mstruct$6689[ebp+44], edx ; Line 2932 mov DWORD PTR _mstruct$6689[ebp+100], -1 ; Line 2933 mov BYTE PTR _mstruct$6689[ebp+96], 0 ; Line 2934 mov DWORD PTR _mstruct$6689[ebp+92], 1148846080 ; 447a0000H ; Line 2936 lea eax, DWORD PTR _mstruct$6689[ebp] push eax push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L6688: ; Line 2938 mov esp, ebp pop ebp ret 8 ?DoCollide@ExplodeOnContact@@AAEXHH@Z ENDP ; ExplodeOnContact::DoCollide _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@ExplodeOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; ExplodeOnContact::CallEvent ; Line 2941 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 2943 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 259 ; 00000103H je SHORT $L6699 jmp SHORT $L6696 $L6699: ; Line 2945 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@ExplodeOnContact@@AAEXHH@Z ; ExplodeOnContact::DoCollide $L6696: ; Line 2948 mov ax, 257 ; 00000101H ; Line 2949 mov esp, ebp pop ebp ret 8 ?CallEvent@ExplodeOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; ExplodeOnContact::CallEvent _TEXT ENDS PUBLIC ?DoCollide@DestroyOnContact@@AAEXHH@Z ; DestroyOnContact::DoCollide _TEXT SEGMENT _it$ = 12 _this$ = -8 _type$ = -4 ?DoCollide@DestroyOnContact@@AAEXHH@Z PROC NEAR ; DestroyOnContact::DoCollide ; Line 2957 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 2959 push 0 lea eax, DWORD PTR _type$[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 2961 cmp DWORD PTR _type$[ebp], 16 ; 00000010H je SHORT $L6707 cmp DWORD PTR _type$[ebp], 2 je SHORT $L6707 cmp DWORD PTR _type$[ebp], 11 ; 0000000bH je SHORT $L6707 cmp DWORD PTR _type$[ebp], 4 jne SHORT $L6706 $L6707: ; Line 2963 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov edx, DWORD PTR _it$[ebp] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H $L6706: ; Line 2965 mov esp, ebp pop ebp ret 8 ?DoCollide@DestroyOnContact@@AAEXHH@Z ENDP ; DestroyOnContact::DoCollide _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@DestroyOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; DestroyOnContact::CallEvent ; Line 2968 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 2970 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 259 ; 00000103H je SHORT $L6717 jmp SHORT $L6714 $L6717: ; Line 2972 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@DestroyOnContact@@AAEXHH@Z ; DestroyOnContact::DoCollide $L6714: ; Line 2975 mov ax, 257 ; 00000101H ; Line 2976 mov esp, ebp pop ebp ret 8 ?CallEvent@DestroyOnContact@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; DestroyOnContact::CallEvent _TEXT ENDS PUBLIC ?DoInit@Pest@@AAEXH@Z ; Pest::DoInit _DATA SEGMENT ORG $+3 $SG6725 DB 'Pesttail', 00H ORG $+3 $SG6726 DB 'RbtPestFoot1', 00H ORG $+3 $SG6727 DB 'RbtPestFoot2', 00H ORG $+3 $SG6728 DB 'RbtPestFoot3', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@Pest@@AAEXH@Z PROC NEAR ; Pest::DoInit ; Line 2984 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 2986 mov WORD PTR _ch$[ebp+8], 4 ; Line 2987 mov DWORD PTR _ch$[ebp+12], 20 ; 00000014H ; Line 2988 mov DWORD PTR _ch$[ebp], 0 ; Line 2989 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 2991 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 2993 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG6725 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx], eax ; Line 2994 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 2996 push OFFSET FLAT:$SG6726 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+8], eax ; Line 2997 push OFFSET FLAT:$SG6727 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+12], eax ; Line 2998 push OFFSET FLAT:$SG6728 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+16], eax ; Line 3000 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3001 mov esp, ebp pop ebp ret 4 ?DoInit@Pest@@AAEXH@Z ENDP ; Pest::DoInit _TEXT ENDS PUBLIC __real@4@40029000000000000000 PUBLIC __real@4@4002d000000000000000 ; COMDAT __real@4@40029000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@40029000000000000000 DD 041100000r ; 9 CONST ENDS ; COMDAT __real@4@4002d000000000000000 CONST SEGMENT __real@4@4002d000000000000000 DD 041500000r ; 13 CONST ENDS _TEXT SEGMENT _event$ = 8 _data$ = 12 _this$ = -932 _frame$6740 = -4 _index$6745 = -8 _mstruct$6747 = -928 ?CallEvent@Pest@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Pest::CallEvent ; File aigame.cpp ; Line 3004 push ebp mov ebp, esp sub esp, 936 ; 000003a8H mov DWORD PTR _this$[ebp], ecx ; Line 3006 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -936+[ebp], eax mov ecx, DWORD PTR -936+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -936+[ebp], ecx cmp DWORD PTR -936+[ebp], 24 ; 00000018H ja $L6735 mov eax, DWORD PTR -936+[ebp] xor edx, edx mov dl, BYTE PTR $L11150[eax] jmp DWORD PTR $L11151[edx*4] $L6738: ; Line 3008 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Pest@@AAEXH@Z ; Pest::DoInit ; Line 3009 jmp $L6735 $L6739: ; Line 3013 push 0 lea eax, DWORD PTR _frame$6740[ebp] push eax push 18 ; 00000012H push 1 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3016 fld DWORD PTR _frame$6740[ebp] fcomp DWORD PTR __real@4@40029000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6743 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@40029000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6742 $L6743: fld DWORD PTR _frame$6740[ebp] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6744 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+4] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6742 $L6744: fld DWORD PTR _frame$6740[ebp] fcomp DWORD PTR __real@4@4002d000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6741 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+4] fcomp DWORD PTR __real@4@4002d000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L6741 $L6742: ; Line 3018 call _rand cdq mov ecx, 3 idiv ecx mov DWORD PTR _index$6745[ebp], edx ; Line 3020 push 1065353216 ; 3f800000H mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _index$6745[ebp] mov edx, DWORD PTR [eax+ecx*4+8] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L6741: ; Line 3023 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _frame$6740[ebp] mov DWORD PTR [eax+4], ecx ; Line 3025 jmp SHORT $L6735 $L6746: ; Line 3030 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] mov DWORD PTR _mstruct$6747[ebp+44], ecx ; Line 3031 mov DWORD PTR _mstruct$6747[ebp+100], -1 ; Line 3032 mov BYTE PTR _mstruct$6747[ebp+96], 0 ; Line 3033 mov DWORD PTR _mstruct$6747[ebp+92], 1148846080 ; 447a0000H ; Line 3035 lea edx, DWORD PTR _mstruct$6747[ebp] push edx push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 3037 jmp SHORT $L6735 $L6748: ; Line 3041 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx $L6735: ; Line 3045 mov ax, 257 ; 00000101H ; Line 3046 mov esp, ebp pop ebp ret 8 $L11151: DD $L6739 DD $L6746 DD $L6738 DD $L6748 DD $L6735 $L11150: DB 0 DB 4 DB 4 DB 4 DB 1 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Pest@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Pest::CallEvent _TEXT ENDS PUBLIC ?DoInit@Stinger@@AAEXH@Z ; Stinger::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -940 _ch$ = -16 _m$ = -936 ?DoInit@Stinger@@AAEXH@Z PROC NEAR ; Stinger::DoInit ; Line 3055 push ebp mov ebp, esp sub esp, 956 ; 000003bcH mov DWORD PTR _this$[ebp], ecx ; Line 3057 mov WORD PTR _ch$[ebp+8], 4 ; Line 3058 mov DWORD PTR _ch$[ebp+12], 12 ; 0000000cH ; Line 3059 mov DWORD PTR _ch$[ebp], 0 ; Line 3060 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 3062 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 3065 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 3066 lea ecx, DWORD PTR _m$[ebp] push ecx push 20 ; 00000014H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 3068 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -944+[ebp] call _rand mov DWORD PTR -948+[ebp], eax fild DWORD PTR -948+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -944+[ebp] fadd DWORD PTR __real@4@4000c000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax] ; Line 3069 fld DWORD PTR _m$[ebp+52] fdiv DWORD PTR __real@4@4000c000000000000000 fstp DWORD PTR -952+[ebp] call _rand mov DWORD PTR -956+[ebp], eax fild DWORD PTR -956+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR _m$[ebp+52] fdiv DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR -952+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] ; Line 3070 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+8], 0 ; Line 3071 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+9], 0 ; Line 3073 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3074 mov esp, ebp pop ebp ret 4 ?DoInit@Stinger@@AAEXH@Z ENDP ; Stinger::DoInit _TEXT ENDS PUBLIC __real@4@4004c800000000000000 PUBLIC ?DoInterval@Stinger@@AAEXH@Z ; Stinger::DoInterval ; COMDAT __real@4@4004c800000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4004c800000000000000 DD 042480000r ; 50 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -936 _f_force_melee$ = -8 _target_handle$ = -4 _m$ = -928 _dist$6771 = -932 ?DoInterval@Stinger@@AAEXH@Z PROC NEAR ; Stinger::DoInterval ; File aigame.cpp ; Line 3077 push ebp mov ebp, esp sub esp, 948 ; 000003b4H push esi mov DWORD PTR _this$[ebp], ecx ; Line 3078 mov BYTE PTR _f_force_melee$[ebp], 0 ; Line 3082 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 3083 lea ecx, DWORD PTR _m$[ebp] push ecx push 20 ; 00000014H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 3085 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR _m$[ebp+52] fcomp DWORD PTR [eax+4] fnstsw ax test ah, 1 je SHORT $L11154 mov DWORD PTR -940+[ebp], 1 jmp SHORT $L11155 $L11154: mov DWORD PTR -940+[ebp], 0 $L11155: xor ecx, ecx cmp DWORD PTR -940+[ebp], 0 setne cl mov BYTE PTR _f_force_melee$[ebp], cl mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _f_force_melee$[ebp] mov BYTE PTR [eax+9], cl ; Line 3087 mov edx, DWORD PTR _f_force_melee$[ebp] and edx, 255 ; 000000ffH test edx, edx jne SHORT $L6772 ; Line 3089 lea eax, DWORD PTR _target_handle$[ebp] push eax push 19 ; 00000013H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3091 cmp DWORD PTR _target_handle$[ebp], -1 je SHORT $L6772 ; Line 3094 lea edx, DWORD PTR _dist$6771[ebp] push edx push 21 ; 00000015H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3096 fld DWORD PTR _dist$6771[ebp] fcomp DWORD PTR __real@4@4004c800000000000000 fnstsw ax test ah, 1 je SHORT $L6772 ; Line 3098 mov BYTE PTR _f_force_melee$[ebp], 1 $L6772: ; Line 3103 mov ecx, DWORD PTR _f_force_melee$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx jne $L6773 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi] fnstsw ax test ah, 65 ; 00000041H jne $L6773 ; Line 3105 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001e000000000000000 fstp DWORD PTR -944+[ebp] call _rand mov DWORD PTR -948+[ebp], eax fild DWORD PTR -948+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -944+[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx] ; Line 3107 call _rand cdq mov ecx, 150 ; 00000096H idiv ecx cmp edx, 10 ; 0000000aH jle SHORT $L6776 ; Line 3109 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+8] cmp ecx, 1 jne SHORT $L6777 ; Line 3111 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3112 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+8], 0 $L6777: ; Line 3115 jmp SHORT $L6779 $L6776: ; Line 3117 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+8] test ecx, ecx jne SHORT $L6779 ; Line 3119 push 6 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3120 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+8], 1 $L6779: ; Line 3124 jmp SHORT $L6781 $L6773: mov edx, DWORD PTR _f_force_melee$[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L6781 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+8] cmp edx, 1 je SHORT $L6781 ; Line 3127 push 6 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3128 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+8], 1 $L6781: ; Line 3130 pop esi mov esp, ebp pop ebp ret 4 ?DoInterval@Stinger@@AAEXH@Z ENDP ; Stinger::DoInterval _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Stinger@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Stinger::CallEvent ; Line 3133 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 3135 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 257 ; 00000101H je SHORT $L6792 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L6791 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L6793 jmp SHORT $L6788 $L6791: ; Line 3137 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Stinger@@AAEXH@Z ; Stinger::DoInit ; Line 3138 jmp SHORT $L6788 $L6792: ; Line 3140 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoInterval@Stinger@@AAEXH@Z ; Stinger::DoInterval ; Line 3141 jmp SHORT $L6788 $L6793: ; Line 3144 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L6788: ; Line 3149 mov ax, 257 ; 00000101H ; Line 3150 mov esp, ebp pop ebp ret 8 ?CallEvent@Stinger@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Stinger::CallEvent _TEXT ENDS PUBLIC ?DetermineDeathPos@Humonculous@@AAEXHPAUvector@@PAH@Z ; Humonculous::DetermineDeathPos _DATA SEGMENT ORG $+3 $SG6808 DB 'SafeDeath01', 00H $SG6809 DB 'SafeDeath01', 00H $SG6810 DB 'SafeDeath02', 00H $SG6811 DB 'SafeDeath02', 00H $SG6812 DB 'SafeDeath03', 00H $SG6813 DB 'SafeDeath03', 00H $SG6814 DB 'SafeDeath04', 00H $SG6815 DB 'SafeDeath04', 00H $SG6816 DB 'SafeDeath05', 00H $SG6817 DB 'SafeDeath05', 00H $SG6818 DB 'SafeDeath06', 00H $SG6819 DB 'SafeDeath06', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _dpos$ = 12 _droom$ = 16 _this$ = -128 _best_dist$ = -4 _dp$ = -76 _dr$ = -100 _i$ = -104 _mpos$ = -116 _cur_dist$6823 = -124 ?DetermineDeathPos@Humonculous@@AAEXHPAUvector@@PAH@Z PROC NEAR ; Humonculous::DetermineDeathPos ; Line 3213 push ebp mov ebp, esp sub esp, 128 ; 00000080H mov DWORD PTR _this$[ebp], ecx ; Line 3214 mov DWORD PTR _best_dist$[ebp], 1287568416 ; 4cbebc20H ; Line 3221 push 0 lea eax, DWORD PTR _mpos$[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3223 push 0 lea edx, DWORD PTR _dp$[ebp] push edx push 3 push 1 push OFFSET FLAT:$SG6808 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3224 push 0 lea eax, DWORD PTR _dr$[ebp] push eax push 5 push 1 push OFFSET FLAT:$SG6809 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3225 push 0 lea ecx, DWORD PTR _dp$[ebp+12] push ecx push 3 push 1 push OFFSET FLAT:$SG6810 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3226 push 0 lea edx, DWORD PTR _dr$[ebp+4] push edx push 5 push 1 push OFFSET FLAT:$SG6811 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3227 push 0 lea eax, DWORD PTR _dp$[ebp+24] push eax push 3 push 1 push OFFSET FLAT:$SG6812 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3228 push 0 lea ecx, DWORD PTR _dr$[ebp+8] push ecx push 5 push 1 push OFFSET FLAT:$SG6813 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3229 push 0 lea edx, DWORD PTR _dp$[ebp+36] push edx push 3 push 1 push OFFSET FLAT:$SG6814 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3230 push 0 lea eax, DWORD PTR _dr$[ebp+12] push eax push 5 push 1 push OFFSET FLAT:$SG6815 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3231 push 0 lea ecx, DWORD PTR _dp$[ebp+48] push ecx push 3 push 1 push OFFSET FLAT:$SG6816 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3232 push 0 lea edx, DWORD PTR _dr$[ebp+16] push edx push 5 push 1 push OFFSET FLAT:$SG6817 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3233 push 0 lea eax, DWORD PTR _dp$[ebp+60] push eax push 3 push 1 push OFFSET FLAT:$SG6818 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3234 push 0 lea ecx, DWORD PTR _dr$[ebp+20] push ecx push 5 push 1 push OFFSET FLAT:$SG6819 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3236 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L6820 $L6821: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L6820: cmp DWORD PTR _i$[ebp], 6 jge SHORT $L6822 ; Line 3238 mov eax, DWORD PTR _i$[ebp] imul eax, 12 ; 0000000cH mov DWORD PTR _dp$[ebp+eax+4], -1008992256 ; c3dc0000H ; Line 3240 mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH lea edx, DWORD PTR _dp$[ebp+ecx] push edx lea eax, DWORD PTR _mpos$[ebp] push eax call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _cur_dist$6823[ebp] ; Line 3242 fld DWORD PTR _cur_dist$6823[ebp] fcomp DWORD PTR _best_dist$[ebp] fnstsw ax test ah, 1 je SHORT $L6824 ; Line 3244 mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH lea edx, DWORD PTR _dp$[ebp+ecx] mov eax, DWORD PTR _dpos$[ebp] mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx ; Line 3245 mov eax, DWORD PTR _droom$[ebp] mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _dr$[ebp+ecx*4] mov DWORD PTR [eax], edx ; Line 3246 mov eax, DWORD PTR _cur_dist$6823[ebp] mov DWORD PTR _best_dist$[ebp], eax $L6824: ; Line 3248 jmp SHORT $L6821 $L6822: ; Line 3249 mov esp, ebp pop ebp ret 12 ; 0000000cH ?DetermineDeathPos@Humonculous@@AAEXHPAUvector@@PAH@Z ENDP ; Humonculous::DetermineDeathPos _TEXT ENDS PUBLIC ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode PUBLIC ?DoNotify@Humonculous@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Humonculous::DoNotify _DATA SEGMENT $SG6840 DB 'RbtHmclIWallHit', 00H $SG6849 DB 'RbtHmclFakeDeath', 00H ORG $+3 $SG6852 DB 'RbtHmclDeath', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _data$ = 12 _this$ = -40 _uvec$6843 = -12 _vel$6848 = -24 _vel$6851 = -36 ?DoNotify@Humonculous@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Humonculous::DoNotify ; Line 3252 push ebp mov ebp, esp sub esp, 44 ; 0000002cH mov DWORD PTR _this$[ebp], ecx ; Line 3254 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dx, WORD PTR [ecx+24] mov DWORD PTR -44+[ebp], edx cmp DWORD PTR -44+[ebp], 16 ; 00000010H jg SHORT $L11161 cmp DWORD PTR -44+[ebp], 16 ; 00000010H je SHORT $L6838 cmp DWORD PTR -44+[ebp], 1 je SHORT $L6834 cmp DWORD PTR -44+[ebp], 2 je SHORT $L6836 jmp $L6831 $L11161: cmp DWORD PTR -44+[ebp], 64 ; 00000040H je $L6841 cmp DWORD PTR -44+[ebp], 512 ; 00000200H je $L6841 jmp $L6831 $L6834: ; Line 3257 mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax], 27 ; 0000001bH jne SHORT $L6835 ; Line 3259 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6835: ; Line 3262 jmp $L6831 $L6836: ; Line 3266 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx], 28 ; 0000001cH jne SHORT $L6837 ; Line 3268 push 8 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6837: ; Line 3271 jmp $L6831 $L6838: ; Line 3275 mov ecx, DWORD PTR _data$[ebp] cmp DWORD PTR [ecx], 9 jne SHORT $L6839 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx+12], 43 ; 0000002bH jne SHORT $L6839 ; Line 3277 push 0 push OFFSET FLAT:$SG6840 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 2 push 1082130432 ; 40800000H push 1123680256 ; 42fa0000H push 1120534528 ; 42ca0000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L6839: ; Line 3281 jmp $L6831 $L6841: ; Line 3286 mov ecx, DWORD PTR _data$[ebp] cmp DWORD PTR [ecx], 26 ; 0000001aH jne SHORT $L6845 ; Line 3288 mov edx, DWORD PTR _Zero_vector mov DWORD PTR _uvec$6843[ebp], edx mov eax, DWORD PTR _Zero_vector+4 mov DWORD PTR _uvec$6843[ebp+4], eax mov ecx, DWORD PTR _Zero_vector+8 mov DWORD PTR _uvec$6843[ebp+8], ecx ; Line 3289 mov DWORD PTR _uvec$6843[ebp+4], 1065353216 ; 3f800000H ; Line 3291 lea edx, DWORD PTR _uvec$6843[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 40 ; 00000028H push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_TurnTowardsVectors@@3P6AEHPAUvector@@0@ZA ; AI_TurnTowardsVectors add esp, 12 ; 0000000cH and eax, 255 ; 000000ffH test eax, eax je SHORT $L6844 ; Line 3292 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dx, WORD PTR [ecx+96] or dl, 16 ; 00000010H mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov WORD PTR [ecx+96], dx ; Line 3293 jmp SHORT $L6845 $L6844: ; Line 3294 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cx, WORD PTR [eax+96] and cl, -17 ; ffffffefH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov WORD PTR [eax+96], cx $L6845: ; Line 3297 mov ecx, DWORD PTR _data$[ebp] cmp DWORD PTR [ecx], 9 jne SHORT $L6846 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx+12], 43 ; 0000002bH jne SHORT $L6846 ; Line 3299 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dx, WORD PTR [ecx+96] or dl, 8 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov WORD PTR [ecx+96], dx $L6846: ; Line 3302 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx], 9 jne $L6847 mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax+12], 190 ; 000000beH jne SHORT $L6847 ; Line 3304 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ax, WORD PTR [edx+96] or ah, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+96], ax ; Line 3305 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 3307 mov DWORD PTR _vel$6848[ebp], 0 mov DWORD PTR _vel$6848[ebp+4], 0 mov DWORD PTR _vel$6848[ebp+8], 0 ; Line 3308 push 0 lea edx, DWORD PTR _vel$6848[ebp] push edx push 6 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3310 push -1 push OFFSET FLAT:$SG6849 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 0 push 1086324736 ; 40c00000H push 1129447424 ; 43520000H push 1126629376 ; 43270000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L6847: ; Line 3313 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx], 9 jne $L6850 mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax+12], 34 ; 00000022H jne SHORT $L6850 ; Line 3315 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ax, WORD PTR [edx+96] or ah, 8 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+96], ax ; Line 3316 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 3318 mov DWORD PTR _vel$6851[ebp], 0 mov DWORD PTR _vel$6851[ebp+4], 0 mov DWORD PTR _vel$6851[ebp+8], 0 ; Line 3319 push 0 lea edx, DWORD PTR _vel$6851[ebp] push edx push 6 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3321 push -1 push OFFSET FLAT:$SG6852 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 0 push 1097859072 ; 41700000H push 1135542272 ; 43af0000H push 1131544576 ; 43720000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L6850: $L6831: ; Line 3327 mov al, 1 ; Line 3328 mov esp, ebp pop ebp ret 8 ?DoNotify@Humonculous@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; Humonculous::DoNotify _TEXT ENDS PUBLIC ??D@YA?AUvector@@MU0@@Z ; operator* PUBLIC __real@8@bffef333333333333000 _DATA SEGMENT ORG $+3 $SG6903 DB 'RbtHmclMidTaunt', 00H $SG6909 DB 'RbtHmclFakeGetUp', 00H ORG $+3 $SG6920 DB 'WHAT ARE YOU DOING!!!!!!!!!!!!!', 00H _DATA ENDS ; COMDAT __real@8@bffef333333333333000 ; File aigame.cpp CONST SEGMENT __real@8@bffef333333333333000 DQ 0bfee666666666666r ; -0.95 CONST ENDS _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -1372 _new_mode_index$ = -12 _old_mode_index$ = -4 _temp$ = -8 _flags$6868 = -16 _flags$6871 = -20 _flags$6882 = -36 _start_pos$6883 = -156 _start_room$6884 = -84 _end_pos$6885 = -32 _ray$6886 = -144 _orient$6887 = -80 _fate$6892 = -44 _dist$6900 = -40 _flags$6902 = -160 _flags$6905 = -164 _dpos$6906 = -176 _droom$6907 = -180 _flags$6911 = -184 _m$6912 = -1104 _flags$6914 = -1108 _circle_dist$6915 = -1112 _dpos$6916 = -1124 _droom$6917 = -1128 $T11163 = -1140 $T11164 = -1152 $T11165 = -1164 $T11166 = -1176 $T11167 = -1188 $T11168 = -1200 $T11169 = -1212 $T11170 = -1224 $T11171 = -1236 $T11172 = -1248 $T11173 = -1260 $T11174 = -1272 $T11175 = -1284 $T11176 = -1296 $T11177 = -1308 $T11178 = -1320 $T11179 = -1332 $T11180 = -1344 $T11181 = -1356 $T11182 = -1368 ?SetMode@Humonculous@@AAE_NHG@Z PROC NEAR ; Humonculous::SetMode ; File aigame.cpp ; Line 3331 push ebp mov ebp, esp sub esp, 1376 ; 00000560H mov DWORD PTR _this$[ebp], ecx ; Line 3332 mov DWORD PTR _new_mode_index$[ebp], -1 ; Line 3333 mov DWORD PTR _old_mode_index$[ebp], -1 ; Line 3335 mov eax, DWORD PTR _mode$[ebp] and eax, 65535 ; 0000ffffH mov DWORD PTR _temp$[ebp], eax $L6861: ; Line 3340 mov ecx, DWORD PTR _temp$[ebp] sar ecx, 1 mov DWORD PTR _temp$[ebp], ecx ; Line 3341 mov edx, DWORD PTR _new_mode_index$[ebp] add edx, 1 mov DWORD PTR _new_mode_index$[ebp], edx ; Line 3343 cmp DWORD PTR _temp$[ebp], 0 jne SHORT $L6861 ; Line 3345 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dx, WORD PTR [ecx+24] mov DWORD PTR _temp$[ebp], edx $L6864: ; Line 3348 mov eax, DWORD PTR _temp$[ebp] sar eax, 1 mov DWORD PTR _temp$[ebp], eax ; Line 3349 mov ecx, DWORD PTR _old_mode_index$[ebp] add ecx, 1 mov DWORD PTR _old_mode_index$[ebp], ecx ; Line 3351 cmp DWORD PTR _temp$[ebp], 0 jne SHORT $L6864 ; Line 3354 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cx, WORD PTR [eax+24] cmp ecx, 16 ; 00000010H jne $L6867 ; Line 3356 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4002f000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax] ; Line 3357 mov DWORD PTR _flags$6868[ebp], 25165824 ; 01800000H ; Line 3358 lea ecx, DWORD PTR _flags$6868[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3359 mov DWORD PTR _flags$6868[ebp], 256 ; 00000100H ; Line 3360 lea eax, DWORD PTR _flags$6868[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3362 mov DWORD PTR _flags$6868[ebp], 262144 ; 00040000H ; Line 3363 push 0 lea edx, DWORD PTR _flags$6868[ebp] push edx push 16 ; 00000010H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3365 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ax, WORD PTR [edx+96] and al, 95 ; 0000005fH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+96], ax ; Line 3367 jmp SHORT $L6870 $L6867: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dx, WORD PTR [ecx+24] cmp edx, 32 ; 00000020H jne SHORT $L6870 ; Line 3369 mov DWORD PTR _flags$6871[ebp], 25165824 ; 01800000H ; Line 3370 lea eax, DWORD PTR _flags$6871[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3371 mov DWORD PTR _flags$6871[ebp], 256 ; 00000100H ; Line 3372 lea edx, DWORD PTR _flags$6871[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L6870: ; Line 3376 mov ecx, DWORD PTR _old_mode_index$[ebp] movsx edx, WORD PTR _hm_valid_next_modes[ecx*2] mov eax, DWORD PTR _mode$[ebp] and eax, 65535 ; 0000ffffH and edx, eax test edx, edx jne SHORT $L6872 ; Line 3377 xor al, al jmp $L6857 $L6872: ; Line 3380 push 5 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3383 mov edx, DWORD PTR _mode$[ebp] and edx, 65535 ; 0000ffffH mov DWORD PTR -1376+[ebp], edx cmp DWORD PTR -1376+[ebp], 32 ; 00000020H jg SHORT $L11183 cmp DWORD PTR -1376+[ebp], 32 ; 00000020H je $L6901 mov eax, DWORD PTR -1376+[ebp] sub eax, 1 mov DWORD PTR -1376+[ebp], eax cmp DWORD PTR -1376+[ebp], 15 ; 0000000fH ja $L6919 mov edx, DWORD PTR -1376+[ebp] xor ecx, ecx mov cl, BYTE PTR $L11187[edx] jmp DWORD PTR $L11188[ecx*4] $L11183: cmp DWORD PTR -1376+[ebp], 256 ; 00000100H jg SHORT $L11184 cmp DWORD PTR -1376+[ebp], 256 ; 00000100H je $L6910 cmp DWORD PTR -1376+[ebp], 64 ; 00000040H je $L6904 cmp DWORD PTR -1376+[ebp], 128 ; 00000080H je $L6908 jmp $L6919 $L11184: cmp DWORD PTR -1376+[ebp], 512 ; 00000200H je $L6913 cmp DWORD PTR -1376+[ebp], 1024 ; 00000400H je $L6918 jmp $L6919 $L6877: ; Line 3387 jmp $L6874 $L6878: ; Line 3391 jmp $L6874 $L6879: ; Line 3394 push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3396 jmp $L6874 $L6880: ; Line 3399 push 6 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3401 jmp $L6874 $L6881: ; Line 3404 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cx, WORD PTR [eax+96] or ch, 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov WORD PTR [eax+96], cx ; Line 3406 mov DWORD PTR _flags$6882[ebp], 25165824 ; 01800000H ; Line 3407 lea ecx, DWORD PTR _flags$6882[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3408 mov DWORD PTR _flags$6882[ebp], 256 ; 00000100H ; Line 3409 lea eax, DWORD PTR _flags$6882[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3418 push 0 lea edx, DWORD PTR _orient$6887[ebp] push edx push 4 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3420 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 40 ; 00000028H mov eax, DWORD PTR _orient$6887[ebp+24] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _orient$6887[ebp+28] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _orient$6887[ebp+32] mov DWORD PTR [edx+8], eax ; Line 3421 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+44], 0 ; Line 3422 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 40 ; 00000028H push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 3423 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 40 ; 00000028H mov ecx, DWORD PTR [eax] mov DWORD PTR _orient$6887[ebp+24], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR _orient$6887[ebp+28], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR _orient$6887[ebp+32], eax ; Line 3425 lea ecx, DWORD PTR _orient$6887[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 3427 push 0 lea edx, DWORD PTR _start_pos$6883[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3428 push 0 lea ecx, DWORD PTR _start_room$6884[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3431 mov eax, DWORD PTR _start_pos$6883[ebp] mov DWORD PTR _end_pos$6885[ebp], eax mov ecx, DWORD PTR _start_pos$6883[ebp+4] mov DWORD PTR _end_pos$6885[ebp+4], ecx mov edx, DWORD PTR _start_pos$6883[ebp+8] mov DWORD PTR _end_pos$6885[ebp+8], edx ; Line 3432 push 1105723392 ; 41e80000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$6887[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$6887[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$6887[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11165[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11164[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11164[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11164[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11164[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11164[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11164[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _end_pos$6885[ebp] push eax lea ecx, DWORD PTR $T11166[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11163[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11163[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11163[ebp+8], edx ; Line 3433 push 1107614761 ; 4204dc29H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$6887[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$6887[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$6887[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11169[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11168[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11168[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11168[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11168[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11168[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11168[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _end_pos$6885[ebp] push eax lea ecx, DWORD PTR $T11170[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11167[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11167[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11167[ebp+8], edx ; Line 3435 mov DWORD PTR _flags$6882[ebp], 1049353 ; 00100309H ; Line 3436 lea eax, DWORD PTR _ray$6886[ebp] push eax mov ecx, DWORD PTR _flags$6882[ebp] push ecx push 0 mov edx, DWORD PTR _start_room$6884[ebp] push edx lea eax, DWORD PTR _end_pos$6885[ebp] push eax lea ecx, DWORD PTR _start_pos$6883[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast add esp, 28 ; 0000001cH mov DWORD PTR _fate$6892[ebp], eax ; Line 3438 mov eax, DWORD PTR _ray$6886[ebp+8] mov DWORD PTR _end_pos$6885[ebp], eax mov ecx, DWORD PTR _ray$6886[ebp+12] mov DWORD PTR _end_pos$6885[ebp+4], ecx mov edx, DWORD PTR _ray$6886[ebp+16] mov DWORD PTR _end_pos$6885[ebp+8], edx mov eax, DWORD PTR _end_pos$6885[ebp] mov DWORD PTR _start_pos$6883[ebp], eax mov ecx, DWORD PTR _end_pos$6885[ebp+4] mov DWORD PTR _start_pos$6883[ebp+4], ecx mov edx, DWORD PTR _end_pos$6885[ebp+8] mov DWORD PTR _start_pos$6883[ebp+8], edx ; Line 3439 mov eax, DWORD PTR _ray$6886[ebp+4] mov DWORD PTR _start_room$6884[ebp], eax ; Line 3441 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$6887[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$6887[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$6887[ebp+8] mov DWORD PTR [ecx+8], edx push 1167867904 ; 459c4000H lea eax, DWORD PTR $T11173[ebp] push eax call ??D@YA?AUvector@@MU0@@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11172[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11172[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11172[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11172[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11172[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11172[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _end_pos$6885[ebp] push eax lea ecx, DWORD PTR $T11174[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11171[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11171[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11171[ebp+8], edx ; Line 3443 mov DWORD PTR _flags$6882[ebp], 1049353 ; 00100309H ; Line 3444 lea eax, DWORD PTR _ray$6886[ebp] push eax mov ecx, DWORD PTR _flags$6882[ebp] push ecx push 0 mov edx, DWORD PTR _start_room$6884[ebp] push edx lea eax, DWORD PTR _end_pos$6885[ebp] push eax lea ecx, DWORD PTR _start_pos$6883[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast add esp, 28 ; 0000001cH mov DWORD PTR _fate$6892[ebp], eax ; Line 3446 sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$6887[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$6887[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$6887[ebp+8] mov DWORD PTR [eax+8], ecx sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR _ray$6886[ebp+48] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _ray$6886[ebp+52] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _ray$6886[ebp+56] mov DWORD PTR [edx+8], eax call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H fcomp QWORD PTR __real@8@bffef333333333333000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6895 ; Line 3448 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+24], 16 ; 00000010H ; Line 3449 push 8 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode ; Line 3450 xor al, al jmp $L6857 $L6895: ; Line 3453 push 1105723392 ; 41e80000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$6887[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$6887[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$6887[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11177[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11176[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11176[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11176[ebp+8], eax push 1107614761 ; 4204dc29H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$6887[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$6887[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$6887[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11180[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11179[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11179[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11179[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11179[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11179[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11179[ebp+8] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _ray$6886[ebp+8] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _ray$6886[ebp+12] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _ray$6886[ebp+16] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11181[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11178[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11178[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11178[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11176[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11176[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11176[ebp+8] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR $T11178[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11178[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11178[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11182[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11175[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11175[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11175[ebp+8], eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 28 ; 0000001cH mov eax, DWORD PTR $T11175[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR $T11175[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR $T11175[ebp+8] mov DWORD PTR [edx+8], eax ; Line 3455 mov ecx, DWORD PTR _ray$6886[ebp+4] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 28 ; 0000001cH push eax push 131208 ; 00020088H push 43 ; 0000002bH push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 3457 mov DWORD PTR _dist$6900[ebp], 0 ; Line 3458 push 0 lea edx, DWORD PTR _dist$6900[ebp] push edx push 26 ; 0000001aH push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 3460 mov DWORD PTR _flags$6882[ebp], 262144 ; 00040000H ; Line 3461 push 0 lea ecx, DWORD PTR _flags$6882[ebp] push ecx push 16 ; 00000010H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3463 jmp $L6874 $L6901: ; Line 3466 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dx, WORD PTR [ecx+96] or dh, 2 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov WORD PTR [ecx+96], dx ; Line 3468 mov DWORD PTR _flags$6902[ebp], 25165824 ; 01800000H ; Line 3469 lea edx, DWORD PTR _flags$6902[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3470 mov DWORD PTR _flags$6902[ebp], 256 ; 00000100H ; Line 3471 lea ecx, DWORD PTR _flags$6902[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3473 push 0 push OFFSET FLAT:$SG6903 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 2 push 1090519040 ; 41000000H push 1137836032 ; 43d20000H push 1135869952 ; 43b40000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 3475 jmp $L6874 $L6904: ; Line 3478 mov DWORD PTR _flags$6905[ebp], 25165824 ; 01800000H ; Line 3479 lea ecx, DWORD PTR _flags$6905[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3480 mov DWORD PTR _flags$6905[ebp], 256 ; 00000100H ; Line 3481 lea eax, DWORD PTR _flags$6905[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3484 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cx, WORD PTR [eax+96] or ch, 3 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov WORD PTR [eax+96], cx ; Line 3488 lea ecx, DWORD PTR _droom$6907[ebp] push ecx lea edx, DWORD PTR _dpos$6906[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DetermineDeathPos@Humonculous@@AAEXHPAUvector@@PAH@Z ; Humonculous::DetermineDeathPos ; Line 3490 mov ecx, DWORD PTR _droom$6907[ebp] push ecx lea edx, DWORD PTR _dpos$6906[ebp] push edx push 136 ; 00000088H push 190 ; 000000beH push 1065353216 ; 3f800000H push 3 push 1048576 ; 00100000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 3491 push 0 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 3493 jmp $L6874 $L6908: ; Line 3496 push 0 push OFFSET FLAT:$SG6909 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 2 push 1084227584 ; 40a00000H push 1131544576 ; 43720000H push 1129447424 ; 43520000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 3498 jmp $L6874 $L6910: ; Line 3501 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dx, WORD PTR [ecx+96] and dl, -25 ; ffffffe7H mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov WORD PTR [ecx+96], dx ; Line 3503 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 56 ; 00000038H push eax push 0 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3504 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 60 ; 0000003cH push eax push 1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3506 mov DWORD PTR _flags$6911[ebp], 262144 ; 00040000H ; Line 3507 push 0 lea edx, DWORD PTR _flags$6911[ebp] push edx push 16 ; 00000010H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3508 mov DWORD PTR _flags$6911[ebp], 2 ; Line 3509 push 0 lea ecx, DWORD PTR _flags$6911[ebp] push ecx push 16 ; 00000010H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3511 mov DWORD PTR _flags$6911[ebp], 16777216 ; 01000000H ; Line 3512 lea eax, DWORD PTR _flags$6911[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3513 mov DWORD PTR _flags$6911[ebp], 256 ; 00000100H ; Line 3514 lea edx, DWORD PTR _flags$6911[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3516 mov DWORD PTR _flags$6911[ebp], 8388608 ; 00800000H ; Line 3517 push 0 lea ecx, DWORD PTR _flags$6911[ebp] push ecx push 10 ; 0000000aH push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3520 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$6912[ebp+44], eax ; Line 3521 mov DWORD PTR _m$6912[ebp+52], 1101004800 ; 41a00000H ; Line 3522 lea ecx, DWORD PTR _m$6912[ebp] push ecx push 20 ; 00000014H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 3524 push 6 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 3526 jmp $L6874 $L6913: ; Line 3529 mov DWORD PTR _flags$6914[ebp], 25165824 ; 01800000H ; Line 3530 lea eax, DWORD PTR _flags$6914[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3531 mov DWORD PTR _flags$6914[ebp], 256 ; 00000100H ; Line 3532 lea edx, DWORD PTR _flags$6914[ebp] push edx push 51 ; 00000033H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3534 mov DWORD PTR _circle_dist$6915[ebp], -1082130432 ; bf800000H ; Line 3535 lea ecx, DWORD PTR _circle_dist$6915[ebp] push ecx push 7 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3539 lea eax, DWORD PTR _droom$6917[ebp] push eax lea ecx, DWORD PTR _dpos$6916[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DetermineDeathPos@Humonculous@@AAEXHPAUvector@@PAH@Z ; Humonculous::DetermineDeathPos ; Line 3541 mov eax, DWORD PTR _droom$6917[ebp] push eax lea ecx, DWORD PTR _dpos$6916[ebp] push ecx push 136 ; 00000088H push 34 ; 00000022H push 1065353216 ; 3f800000H push 3 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 3542 push 0 push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 3544 jmp SHORT $L6874 $L6918: ; Line 3548 jmp SHORT $L6874 $L6919: ; Line 3550 push OFFSET FLAT:$SG6920 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 $L6874: ; Line 3554 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ax, WORD PTR _mode$[ebp] mov WORD PTR [edx+24], ax ; Line 3555 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], 0 ; Line 3557 mov al, 1 $L6857: ; Line 3558 mov esp, ebp pop ebp ret 8 $L11188: DD $L6877 DD $L6878 DD $L6879 DD $L6880 DD $L6881 DD $L6919 $L11187: DB 0 DB 1 DB 5 DB 2 DB 5 DB 5 DB 5 DB 3 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 4 ?SetMode@Humonculous@@AAE_NHG@Z ENDP ; Humonculous::SetMode _TEXT ENDS ; COMDAT ??D@YA?AUvector@@MU0@@Z _TEXT SEGMENT _s$ = 12 _v$ = 16 $T11190 = 8 $T11191 = -12 $T11192 = -24 ??D@YA?AUvector@@MU0@@Z PROC NEAR ; operator*, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 197 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 198 mov eax, DWORD PTR _s$[ebp] push eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _v$[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _v$[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _v$[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11192[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11191[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11191[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11191[ebp+8], eax mov ecx, DWORD PTR $T11190[ebp] mov edx, DWORD PTR $T11191[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11191[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11191[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR $T11190[ebp] ; Line 199 mov esp, ebp pop ebp ret 0 ??D@YA?AUvector@@MU0@@Z ENDP ; operator* _TEXT ENDS PUBLIC ?DoInit@Humonculous@@AAEXH@Z ; Humonculous::DoInit PUBLIC __real@4@3ffeb333330000000000 PUBLIC __real@4@3ffe99999a0000000000 PUBLIC __real@4@3ffed9999a0000000000 PUBLIC __real@4@3ffecccccd0000000000 PUBLIC __real@4@4003c800000000000000 _DATA SEGMENT $SG6945 DB 'Joshbot', 00H $SG6946 DB 'Joshbot', 00H $SG6947 DB 'BossRock01', 00H ORG $+1 $SG6948 DB 'BossRock02', 00H ORG $+1 $SG6949 DB 'BossRock03', 00H ORG $+1 $SG6950 DB 'BossRock04', 00H ORG $+1 $SG6951 DB 'BossRock05', 00H ORG $+1 $SG6952 DB 'Humonbodyarmor', 00H ORG $+1 $SG6953 DB 'Humonwristarmor', 00H _DATA ENDS ; COMDAT __real@4@3ffeb333330000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ffeb333330000000000 DD 03f333333r ; 0.7 CONST ENDS ; COMDAT __real@4@3ffe99999a0000000000 CONST SEGMENT __real@4@3ffe99999a0000000000 DD 03f19999ar ; 0.6 CONST ENDS ; COMDAT __real@4@3ffed9999a0000000000 CONST SEGMENT __real@4@3ffed9999a0000000000 DD 03f59999ar ; 0.85 CONST ENDS ; COMDAT __real@4@3ffecccccd0000000000 CONST SEGMENT __real@4@3ffecccccd0000000000 DD 03f4ccccdr ; 0.8 CONST ENDS ; COMDAT __real@4@4003c800000000000000 CONST SEGMENT __real@4@4003c800000000000000 DD 041c80000r ; 25 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -144 _ch$ = -80 _diff$ = -12 _shields$ = -16 _speed$ = -8 _flags$ = -4 _orient$ = -64 _pos$ = -116 _g_pos$ = -28 _g_norm$ = -104 _from_ground$ = -92 $T11194 = -128 $T11195 = -140 ?DoInit@Humonculous@@AAEXH@Z PROC NEAR ; Humonculous::DoInit ; File aigame.cpp ; Line 3561 push ebp mov ebp, esp sub esp, 164 ; 000000a4H mov DWORD PTR _this$[ebp], ecx ; Line 3563 mov WORD PTR _ch$[ebp+8], 4 ; Line 3564 mov DWORD PTR _ch$[ebp+12], 100 ; 00000064H ; Line 3565 mov DWORD PTR _ch$[ebp], 0 ; Line 3566 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 3568 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 3570 call DWORD PTR ?Game_GetDiffLevel@@3P6ADXZA ; Game_GetDiffLevel mov BYTE PTR _diff$[ebp], al ; Line 3575 push 0 lea eax, DWORD PTR _shields$[ebp] push eax push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3576 lea edx, DWORD PTR _speed$[ebp] push edx push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3578 movsx ecx, BYTE PTR _diff$[ebp] test ecx, ecx jne SHORT $L6932 ; Line 3580 fld DWORD PTR _shields$[ebp] fmul DWORD PTR __real@4@3ffeb333330000000000 fstp DWORD PTR _shields$[ebp] ; Line 3581 fld DWORD PTR _speed$[ebp] fmul DWORD PTR __real@4@3ffe99999a0000000000 fstp DWORD PTR _speed$[ebp] ; Line 3583 jmp SHORT $L6934 $L6932: movsx edx, BYTE PTR _diff$[ebp] cmp edx, 1 jne SHORT $L6934 ; Line 3585 fld DWORD PTR _shields$[ebp] fmul DWORD PTR __real@4@3ffed9999a0000000000 fstp DWORD PTR _shields$[ebp] ; Line 3586 fld DWORD PTR _speed$[ebp] fmul DWORD PTR __real@4@3ffeb333330000000000 fstp DWORD PTR _speed$[ebp] $L6934: ; Line 3589 push 0 lea eax, DWORD PTR _shields$[ebp] push eax push 0 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3590 lea edx, DWORD PTR _speed$[ebp] push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3592 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _shields$[ebp] mov DWORD PTR [edx+20], eax ; Line 3593 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -148+[ebp] call _rand mov DWORD PTR -152+[ebp], eax fild DWORD PTR -152+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -148+[ebp] fadd DWORD PTR __real@4@4000c000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+64] ; Line 3594 fld DWORD PTR _shields$[ebp] fdiv DWORD PTR __real@4@4000c000000000000000 fstp DWORD PTR -156+[ebp] call _rand mov DWORD PTR -160+[ebp], eax fild DWORD PTR -160+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR _shields$[ebp] fdiv DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR -156+[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+16] ; Line 3595 fld DWORD PTR _shields$[ebp] fmul DWORD PTR __real@4@3ffe8000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] ; Line 3596 fld DWORD PTR _shields$[ebp] fmul DWORD PTR __real@4@3ffecccccd0000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+12] ; Line 3597 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov WORD PTR [ecx+24], 1 ; Line 3598 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov WORD PTR [eax+96], 0 ; Line 3599 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4003c800000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx] ; Line 3606 push 0 lea eax, DWORD PTR _orient$[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3607 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3608 lea ecx, DWORD PTR _g_norm$[ebp] push ecx lea edx, DWORD PTR _g_pos$[ebp] push edx push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_GetGroundPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGroundPos add esp, 16 ; 00000010H ; Line 3610 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _g_pos$[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _g_pos$[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _g_pos$[ebp+8] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _pos$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _pos$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _pos$[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11195[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11194[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11194[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11194[ebp+8], eax mov ecx, DWORD PTR $T11194[ebp] mov DWORD PTR _from_ground$[ebp], ecx mov edx, DWORD PTR $T11194[ebp+4] mov DWORD PTR _from_ground$[ebp+4], edx mov eax, DWORD PTR $T11194[ebp+8] mov DWORD PTR _from_ground$[ebp+8], eax ; Line 3611 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$[ebp+12] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$[ebp+16] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$[ebp+20] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _from_ground$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _from_ground$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _from_ground$[ebp+8] mov DWORD PTR [eax+8], ecx call ??D@YAMUvector@@0@Z ; operator* add esp, 16 ; 00000010H fstp QWORD PTR [esp] call _fabs add esp, 8 fst DWORD PTR -164+[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+52] ; Line 3613 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 56 ; 00000038H push edx push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3614 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 60 ; 0000003cH push edx push 1 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3616 push 1 push 1 push 0 push 2 push 2 push OFFSET FLAT:$SG6945 mov ecx, DWORD PTR _me$[ebp] push ecx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+68], eax ; Line 3617 mov DWORD PTR _flags$[ebp], 8192 ; 00002000H ; Line 3618 push 0 lea edx, DWORD PTR _flags$[ebp] push edx push 16 ; 00000010H push 2 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+68] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3619 mov DWORD PTR _flags$[ebp], 1024 ; 00000400H ; Line 3620 push 0 lea eax, DWORD PTR _flags$[ebp] push eax push 10 ; 0000000aH push 3 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+68] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3623 push 1 push 1 push 0 push 4 push 2 push OFFSET FLAT:$SG6946 mov ecx, DWORD PTR _me$[ebp] push ecx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+72], eax ; Line 3624 mov DWORD PTR _flags$[ebp], 8192 ; 00002000H ; Line 3625 push 0 lea edx, DWORD PTR _flags$[ebp] push edx push 16 ; 00000010H push 2 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+72] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3626 mov DWORD PTR _flags$[ebp], 1024 ; 00000400H ; Line 3627 push 0 lea eax, DWORD PTR _flags$[ebp] push eax push 10 ; 0000000aH push 3 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+72] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3629 push OFFSET FLAT:$SG6947 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+76], eax ; Line 3630 push OFFSET FLAT:$SG6948 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+80], eax ; Line 3631 push OFFSET FLAT:$SG6949 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+84], eax ; Line 3632 push OFFSET FLAT:$SG6950 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+88], eax ; Line 3633 push OFFSET FLAT:$SG6951 call DWORD PTR ?Scrpt_FindObjectName@@3P6AHPAD@ZA ; Scrpt_FindObjectName add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+92], eax ; Line 3635 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG6952 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH ; Line 3636 push 0 push 1 push 0 push 1 push 2 push OFFSET FLAT:$SG6953 mov ecx, DWORD PTR _me$[ebp] push ecx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH ; Line 3638 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode ; Line 3639 mov esp, ebp pop ebp ret 4 ?DoInit@Humonculous@@AAEXH@Z ENDP ; Humonculous::DoInit _TEXT ENDS PUBLIC ?DoInterval@Humonculous@@AAEXH@Z ; Humonculous::DoInterval PUBLIC __real@4@4007b400000000000000 PUBLIC __real@4@4007d200000000000000 PUBLIC __real@4@400190f5c30000000000 PUBLIC __real@4@4005ca00000000000000 PUBLIC __real@4@4005fa00000000000000 PUBLIC __real@4@4005dc00000000000000 PUBLIC __real@4@4009fa00000000000000 PUBLIC __real@4@4002c800000000000000 _DATA SEGMENT $SG6966 DB 'HEHRE HERHERHERHERHEHREHRHERHEHREHR', 0aH, 00H _DATA ENDS ; COMDAT __real@4@4007b400000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4007b400000000000000 DD 043b40000r ; 360 CONST ENDS ; COMDAT __real@4@4007d200000000000000 CONST SEGMENT __real@4@4007d200000000000000 DD 043d20000r ; 420 CONST ENDS ; COMDAT __real@4@400190f5c30000000000 CONST SEGMENT __real@4@400190f5c30000000000 DD 04090f5c3r ; 4.53 CONST ENDS ; COMDAT __real@4@4005ca00000000000000 CONST SEGMENT __real@4@4005ca00000000000000 DD 042ca0000r ; 101 CONST ENDS ; COMDAT __real@4@4005fa00000000000000 CONST SEGMENT __real@4@4005fa00000000000000 DD 042fa0000r ; 125 CONST ENDS ; COMDAT __real@4@4005dc00000000000000 CONST SEGMENT __real@4@4005dc00000000000000 DD 042dc0000r ; 110 CONST ENDS ; COMDAT __real@4@4009fa00000000000000 CONST SEGMENT __real@4@4009fa00000000000000 DD 044fa0000r ; 2000 CONST ENDS ; COMDAT __real@4@4002c800000000000000 CONST SEGMENT __real@4@4002c800000000000000 DD 041480000r ; 12.5 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -2304 _flags$ = -4 _shields$ = -8 _anim_type$6961 = -12 _anim_type$6964 = -16 _anim_type$6968 = -20 _anim_type$6971 = -24 _velocity$6979 = -44 _flags$6980 = -28 _awareness$6981 = -32 _f_force_melee$6983 = -52 _target_handle$6984 = -48 _m$6985 = -972 _dist$6990 = -976 _frame$7000 = -980 _xxx$7003 = -1020 _orient$7004 = -1016 _flags$7008 = -1036 _vel$7009 = -1032 _anim_type$7014 = -1040 _next_anim_type$7015 = -1048 _frame$7016 = -1044 _mstruct$7021 = -1976 _i$7022 = -1052 _mtype$7023 = -1056 _start_pos$7033 = -2120 _start_room$7034 = -2048 _end_pos$7035 = -1996 _ray$7036 = -2108 _flags$7037 = -1984 _fate$7038 = -2044 _max_speed$7039 = -2000 _max_delta_speed$7040 = -1980 _dist$7041 = -2004 _orient$7042 = -2040 _velocity$7046 = -2132 _start_pos$7051 = -2276 _start_room$7052 = -2204 _end_pos$7053 = -2152 _ray$7054 = -2264 _flags$7055 = -2140 _fate$7056 = -2200 _max_speed$7057 = -2156 _max_delta_speed$7058 = -2136 _dist$7059 = -2160 _orient$7060 = -2196 $T11209 = -2288 $T11210 = -2300 ?DoInterval@Humonculous@@AAEXH@Z PROC NEAR ; Humonculous::DoInterval ; File aigame.cpp ; Line 3642 push ebp mov ebp, esp sub esp, 2320 ; 00000910H push esi mov DWORD PTR _this$[ebp], ecx ; Line 3644 push 0 lea eax, DWORD PTR _flags$[ebp] push eax push 10 ; 0000000aH push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3650 push 0 lea edx, DWORD PTR _shields$[ebp] push edx push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3652 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR _shields$[ebp] fcomp DWORD PTR [edx+8] fnstsw ax test ah, 1 je SHORT $L6962 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, WORD PTR [ecx+96] and edx, 512 ; 00000200H test edx, edx jne SHORT $L6962 ; Line 3655 lea eax, DWORD PTR _anim_type$6961[ebp] push eax push 15 ; 0000000fH push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3657 movsx edx, BYTE PTR _anim_type$6961[ebp] cmp edx, 27 ; 0000001bH je SHORT $L6962 movsx eax, BYTE PTR _anim_type$6961[ebp] cmp eax, 6 je SHORT $L6962 movsx ecx, BYTE PTR _anim_type$6961[ebp] cmp ecx, 8 je SHORT $L6962 ; Line 3658 push 32 ; 00000020H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6962: ; Line 3661 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR _shields$[ebp] fcomp DWORD PTR [ecx+12] fnstsw ax test ah, 1 je SHORT $L6965 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, WORD PTR [eax+96] and ecx, 256 ; 00000100H test ecx, ecx jne SHORT $L6965 ; Line 3664 lea edx, DWORD PTR _anim_type$6964[ebp] push edx push 15 ; 0000000fH push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3666 movsx ecx, BYTE PTR _anim_type$6964[ebp] cmp ecx, 27 ; 0000001bH je SHORT $L6965 movsx edx, BYTE PTR _anim_type$6964[ebp] cmp edx, 6 je SHORT $L6965 movsx eax, BYTE PTR _anim_type$6964[ebp] cmp eax, 8 je SHORT $L6965 ; Line 3668 push OFFSET FLAT:$SG6966 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 3669 push 16 ; 00000010H mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6965: ; Line 3673 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cx, WORD PTR [eax+24] cmp ecx, 64 ; 00000040H jge SHORT $L6969 mov edx, DWORD PTR _flags$[ebp] and edx, 8388608 ; 00800000H test edx, edx je SHORT $L6969 ; Line 3676 lea eax, DWORD PTR _anim_type$6968[ebp] push eax push 15 ; 0000000fH push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3678 movsx edx, BYTE PTR _anim_type$6968[ebp] cmp edx, 27 ; 0000001bH je SHORT $L6969 movsx eax, BYTE PTR _anim_type$6968[ebp] cmp eax, 6 je SHORT $L6969 movsx ecx, BYTE PTR _anim_type$6968[ebp] cmp ecx, 8 je SHORT $L6969 ; Line 3679 push 64 ; 00000040H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6969: ; Line 3682 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dx, WORD PTR [ecx+24] cmp edx, 256 ; 00000100H jne SHORT $L6972 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6972 mov edx, DWORD PTR _flags$[ebp] and edx, 8388608 ; 00800000H test edx, edx je SHORT $L6972 ; Line 3685 lea eax, DWORD PTR _anim_type$6971[ebp] push eax push 15 ; 0000000fH push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3687 movsx edx, BYTE PTR _anim_type$6971[ebp] cmp edx, 27 ; 0000001bH je SHORT $L6972 movsx eax, BYTE PTR _anim_type$6971[ebp] cmp eax, 6 je SHORT $L6972 movsx ecx, BYTE PTR _anim_type$6971[ebp] cmp ecx, 8 je SHORT $L6972 ; Line 3688 push 512 ; 00000200H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6972: ; Line 3692 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dx, WORD PTR [ecx+24] mov DWORD PTR -2308+[ebp], edx cmp DWORD PTR -2308+[ebp], 32 ; 00000020H jg SHORT $L11211 cmp DWORD PTR -2308+[ebp], 32 ; 00000020H je $L6999 mov eax, DWORD PTR -2308+[ebp] sub eax, 2 mov DWORD PTR -2308+[ebp], eax cmp DWORD PTR -2308+[ebp], 14 ; 0000000eH ja $L6974 mov edx, DWORD PTR -2308+[ebp] xor ecx, ecx mov cl, BYTE PTR $L11228[edx] jmp DWORD PTR $L11229[ecx*4] $L11211: cmp DWORD PTR -2308+[ebp], 64 ; 00000040H je $L7030 cmp DWORD PTR -2308+[ebp], 128 ; 00000080H je $L7044 cmp DWORD PTR -2308+[ebp], 512 ; 00000200H je $L7047 jmp $L6974 $L6977: ; Line 3695 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@40028000000000000000 fnstsw ax test ah, 1 je $L6978 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] fcomp DWORD PTR __real@4@40028000000000000000 fnstsw ax test ah, 1 jne SHORT $L6978 ; Line 3697 mov eax, DWORD PTR _Zero_vector mov DWORD PTR _velocity$6979[ebp], eax mov ecx, DWORD PTR _Zero_vector+4 mov DWORD PTR _velocity$6979[ebp+4], ecx mov edx, DWORD PTR _Zero_vector+8 mov DWORD PTR _velocity$6979[ebp+8], edx ; Line 3698 mov DWORD PTR _velocity$6979[ebp+4], 1115815936 ; 42820000H ; Line 3700 push 0 lea eax, DWORD PTR _velocity$6979[ebp] push eax push 6 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3702 mov DWORD PTR _flags$6980[ebp], 536871936 ; 20000400H ; Line 3703 lea edx, DWORD PTR _flags$6980[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3705 mov DWORD PTR _awareness$6981[ebp], 1120403456 ; 42c80000H ; Line 3706 lea ecx, DWORD PTR _awareness$6981[ebp] push ecx push 50 ; 00000032H push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L6978: ; Line 3709 jmp $L6974 $L6982: ; Line 3717 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$6985[ebp+44], eax ; Line 3718 lea ecx, DWORD PTR _m$6985[ebp] push ecx push 20 ; 00000014H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 3720 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR _m$6985[ebp+52] fcomp DWORD PTR [eax+16] fnstsw ax test ah, 1 je SHORT $L11207 mov DWORD PTR -2312+[ebp], 1 jmp SHORT $L11208 $L11207: mov DWORD PTR -2312+[ebp], 0 $L11208: mov cl, BYTE PTR -2312+[ebp] mov BYTE PTR _f_force_melee$6983[ebp], cl ; Line 3722 mov edx, DWORD PTR _f_force_melee$6983[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L6986 ; Line 3723 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dx, WORD PTR [ecx+96] or dl, 2 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov WORD PTR [ecx+96], dx ; Line 3724 jmp SHORT $L6987 $L6986: ; Line 3725 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cx, WORD PTR [eax+96] and cl, -3 ; fffffffdH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov WORD PTR [eax+96], cx $L6987: ; Line 3727 mov ecx, DWORD PTR _f_force_melee$6983[ebp] and ecx, 255 ; 000000ffH test ecx, ecx jne SHORT $L6991 ; Line 3729 lea edx, DWORD PTR _target_handle$6984[ebp] push edx push 19 ; 00000013H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3731 cmp DWORD PTR _target_handle$6984[ebp], -1 je SHORT $L6991 ; Line 3734 lea ecx, DWORD PTR _dist$6990[ebp] push ecx push 21 ; 00000015H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3736 fld DWORD PTR _dist$6990[ebp] fcomp DWORD PTR __real@4@4004c800000000000000 fnstsw ax test ah, 1 je SHORT $L6991 ; Line 3738 mov BYTE PTR _f_force_melee$6983[ebp], 1 $L6991: ; Line 3743 mov eax, DWORD PTR _f_force_melee$6983[ebp] and eax, 255 ; 000000ffH test eax, eax jne $L6992 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+64] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L6992 ; Line 3745 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4000c000000000000000 fstp DWORD PTR -2316+[ebp] call _rand mov DWORD PTR -2320+[ebp], eax fild DWORD PTR -2320+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd ST(0), ST(0) fadd DWORD PTR -2316+[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+64] ; Line 3747 call _rand cdq mov ecx, 150 ; 00000096H idiv ecx cmp edx, 10 ; 0000000aH jle SHORT $L6995 ; Line 3749 push 4 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode ; Line 3751 jmp SHORT $L6996 $L6995: ; Line 3753 push 8 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6996: ; Line 3756 jmp SHORT $L6998 $L6992: mov ecx, DWORD PTR _f_force_melee$6983[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L6998 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cx, WORD PTR [eax+24] cmp ecx, 8 je SHORT $L6998 ; Line 3759 push 8 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L6998: ; Line 3762 jmp $L6974 $L6999: ; Line 3767 push 0 lea eax, DWORD PTR _frame$7000[ebp] push eax push 18 ; 00000012H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3769 fld DWORD PTR _frame$7000[ebp] fcomp DWORD PTR __real@4@4007b400000000000000 fnstsw ax test ah, 1 jne $L7007 fld DWORD PTR _frame$7000[ebp] fcomp DWORD PTR __real@4@4007d200000000000000 fnstsw ax test ah, 65 ; 00000041H je $L7007 ; Line 3771 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cx, WORD PTR [eax+96] or cl, 64 ; 00000040H mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov WORD PTR [eax+96], cx ; Line 3773 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+4] fcomp DWORD PTR __real@4@400190f5c30000000000 fnstsw ax test ah, 1 je $L7007 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] fcomp DWORD PTR __real@4@400190f5c30000000000 fnstsw ax test ah, 1 jne $L7007 ; Line 3777 push 0 lea ecx, DWORD PTR _orient$7004[ebp] push ecx push 4 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3780 mov DWORD PTR _xxx$7003[ebp], 0 jmp SHORT $L7005 $L7006: mov eax, DWORD PTR _xxx$7003[ebp] add eax, 1 mov DWORD PTR _xxx$7003[ebp], eax $L7005: cmp DWORD PTR _xxx$7003[ebp], 2 jge $L7007 ; Line 3782 mov DWORD PTR _flags$7008[ebp], 1024 ; 00000400H ; Line 3783 push 1117782016 ; 42a00000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$7004[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$7004[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$7004[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11210[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11209[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11209[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11209[ebp+8], eax mov ecx, DWORD PTR $T11209[ebp] mov DWORD PTR _vel$7009[ebp], ecx mov edx, DWORD PTR $T11209[ebp+4] mov DWORD PTR _vel$7009[ebp+4], edx mov eax, DWORD PTR $T11209[ebp+8] mov DWORD PTR _vel$7009[ebp+8], eax ; Line 3785 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _xxx$7003[ebp] mov ecx, DWORD PTR [edx+eax*4+68] push ecx call DWORD PTR ?Obj_UnattachFromParent@@3P6AXH@ZA ; Obj_UnattachFromParent add esp, 4 ; Line 3786 push 0 lea edx, DWORD PTR _vel$7009[ebp] push edx push 6 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _xxx$7003[ebp] mov eax, DWORD PTR [ecx+edx*4+68] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3788 push 0 lea ecx, DWORD PTR _flags$7008[ebp] push ecx push 10 ; 0000000aH push 2 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _xxx$7003[ebp] mov edx, DWORD PTR [eax+ecx*4+68] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3790 jmp $L7006 $L7007: ; Line 3794 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, WORD PTR [ecx+96] and edx, 64 ; 00000040H test edx, edx je SHORT $L7011 fld DWORD PTR _frame$7000[ebp] fcomp DWORD PTR __real@4@4007b400000000000000 fnstsw ax test ah, 1 jne SHORT $L7012 fld DWORD PTR _frame$7000[ebp] fcomp DWORD PTR __real@4@4007d200000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7011 $L7012: ; Line 3796 push 4 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L7011: ; Line 3799 jmp $L6974 $L7013: ; Line 3805 lea ecx, DWORD PTR _anim_type$7014[ebp] push ecx push 15 ; 0000000fH push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3806 lea eax, DWORD PTR _next_anim_type$7015[ebp] push eax push 16 ; 00000010H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3809 push 0 lea edx, DWORD PTR _frame$7016[ebp] push edx push 18 ; 00000012H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3811 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, WORD PTR [edx+96] and eax, 32 ; 00000020H test eax, eax jne SHORT $L7017 ; Line 3814 fld DWORD PTR _frame$7016[ebp] fcomp DWORD PTR __real@4@4005ca00000000000000 fnstsw ax test ah, 1 jne SHORT $L7018 fld DWORD PTR _frame$7016[ebp] fcomp DWORD PTR __real@4@4005fa00000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L7018 ; Line 3816 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ax, WORD PTR [edx+96] or al, 32 ; 00000020H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+96], ax $L7018: ; Line 3819 jmp $L7026 $L7017: fld DWORD PTR _frame$7016[ebp] fcomp DWORD PTR __real@4@4005dc00000000000000 fnstsw ax test ah, 1 jne $L7026 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, WORD PTR [ecx+96] and edx, 128 ; 00000080H test edx, edx jne $L7026 ; Line 3821 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dx, WORD PTR [ecx+96] or dl, -128 ; ffffff80H mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov WORD PTR [ecx+96], dx ; Line 3825 mov DWORD PTR _mstruct$7021[ebp+92], 1115815936 ; 42820000H ; Line 3826 lea edx, DWORD PTR _mstruct$7021[ebp] push edx push 61 ; 0000003dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 3829 mov BYTE PTR _mtype$7023[ebp], 1 ; Line 3830 mov DWORD PTR _i$7022[ebp], 0 jmp SHORT $L7024 $L7025: mov eax, DWORD PTR _i$7022[ebp] add eax, 1 mov DWORD PTR _i$7022[ebp], eax $L7024: cmp DWORD PTR _i$7022[ebp], 5 jge SHORT $L7026 ; Line 3832 push 0 lea ecx, DWORD PTR _mtype$7023[ebp] push ecx push 13 ; 0000000dH push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$7022[ebp] mov edx, DWORD PTR [eax+ecx*4+76] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3833 jmp SHORT $L7025 $L7026: ; Line 3836 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7027 movsx edx, BYTE PTR _anim_type$7014[ebp] cmp edx, 29 ; 0000001dH je SHORT $L7027 movsx eax, BYTE PTR _next_anim_type$7015[ebp] cmp eax, 29 ; 0000001dH je SHORT $L7027 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, WORD PTR [edx+96] and eax, 32 ; 00000020H test eax, eax je SHORT $L7027 ; Line 3838 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode ; Line 3840 jmp SHORT $L7029 $L7027: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+4] fcomp DWORD PTR __real@4@4002f000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7029 movsx ecx, BYTE PTR _anim_type$7014[ebp] cmp ecx, 29 ; 0000001dH je SHORT $L7029 ; Line 3842 push 4 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L7029: ; Line 3845 jmp $L6974 $L7030: ; Line 3849 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, WORD PTR [ecx+96] and edx, 1024 ; 00000400H test edx, edx je $L7043 ; Line 3851 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 1 je $L7032 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 1 jne $L7032 ; Line 3859 push 0 lea eax, DWORD PTR _start_pos$7033[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3860 push 0 lea edx, DWORD PTR _start_room$7034[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3861 mov ecx, DWORD PTR _start_pos$7033[ebp] mov DWORD PTR _end_pos$7035[ebp], ecx mov edx, DWORD PTR _start_pos$7033[ebp+4] mov DWORD PTR _end_pos$7035[ebp+4], edx mov eax, DWORD PTR _start_pos$7033[ebp+8] mov DWORD PTR _end_pos$7035[ebp+8], eax ; Line 3862 fld DWORD PTR _end_pos$7035[ebp+4] fsub DWORD PTR __real@4@4009fa00000000000000 fstp DWORD PTR _end_pos$7035[ebp+4] ; Line 3864 mov DWORD PTR _flags$7037[ebp], 1049353 ; 00100309H ; Line 3865 lea ecx, DWORD PTR _ray$7036[ebp] push ecx mov edx, DWORD PTR _flags$7037[ebp] push edx push 0 mov eax, DWORD PTR _start_room$7034[ebp] push eax lea ecx, DWORD PTR _end_pos$7035[ebp] push ecx lea edx, DWORD PTR _start_pos$7033[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast add esp, 28 ; 0000001cH mov DWORD PTR _fate$7038[ebp], eax ; Line 3867 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 28 ; 0000001cH mov eax, DWORD PTR _ray$7036[ebp+8] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _ray$7036[ebp+12] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _ray$7036[ebp+16] mov DWORD PTR [edx+8], eax ; Line 3868 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [edx+32] fadd DWORD PTR [ecx+52] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+32] ; Line 3870 mov DWORD PTR _max_speed$7039[ebp], 1101004800 ; 41a00000H ; Line 3871 mov DWORD PTR _max_delta_speed$7040[ebp], 1112014848 ; 42480000H ; Line 3873 lea ecx, DWORD PTR _max_speed$7039[ebp] push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3874 lea eax, DWORD PTR _max_delta_speed$7040[ebp] push eax push 1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3876 mov edx, DWORD PTR _ray$7036[ebp+4] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 28 ; 0000001cH push ecx push 131208 ; 00020088H push 43 ; 0000002bH push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 3878 mov DWORD PTR _dist$7041[ebp], 0 ; Line 3879 push 0 lea eax, DWORD PTR _dist$7041[ebp] push eax push 26 ; 0000001aH push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 3881 mov DWORD PTR _flags$7037[ebp], 262144 ; 00040000H ; Line 3882 push 0 lea edx, DWORD PTR _flags$7037[ebp] push edx push 16 ; 00000010H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3883 mov DWORD PTR _flags$7037[ebp], 2 ; Line 3884 push 0 lea ecx, DWORD PTR _flags$7037[ebp] push ecx push 16 ; 00000010H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3887 push 0 lea eax, DWORD PTR _orient$7042[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3889 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 40 ; 00000028H mov ecx, DWORD PTR _orient$7042[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$7042[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$7042[ebp+32] mov DWORD PTR [eax+8], ecx ; Line 3890 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+44], 0 ; Line 3891 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 40 ; 00000028H push edx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 $L7032: ; Line 3894 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@4002f000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7043 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, WORD PTR [eax+96] and ecx, 8 test ecx, ecx je SHORT $L7043 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, WORD PTR [eax+96] and ecx, 16 ; 00000010H test ecx, ecx je SHORT $L7043 ; Line 3896 push 128 ; 00000080H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L7043: ; Line 3900 jmp $L6974 $L7044: ; Line 3904 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7045 ; Line 3906 mov edx, DWORD PTR _Zero_vector mov DWORD PTR _velocity$7046[ebp], edx mov eax, DWORD PTR _Zero_vector+4 mov DWORD PTR _velocity$7046[ebp+4], eax mov ecx, DWORD PTR _Zero_vector+8 mov DWORD PTR _velocity$7046[ebp+8], ecx ; Line 3907 mov DWORD PTR _velocity$7046[ebp+4], 1109393408 ; 42200000H ; Line 3909 push 0 lea edx, DWORD PTR _velocity$7046[ebp] push edx push 6 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3910 push 256 ; 00000100H mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Humonculous@@AAE_NHG@Z ; Humonculous::SetMode $L7045: ; Line 3913 jmp $L6974 $L7047: ; Line 3917 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, WORD PTR [eax+96] and ecx, 2048 ; 00000800H test ecx, ecx je $L7050 ; Line 3919 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+4] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 1 je SHORT $L7049 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 1 jne SHORT $L7049 ; Line 3921 push 1065353216 ; 3f800000H push 1232348160 ; 49742400H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH $L7049: ; Line 3924 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@4002c800000000000000 fnstsw ax test ah, 1 je $L7050 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] fcomp DWORD PTR __real@4@4002c800000000000000 fnstsw ax test ah, 1 jne $L7050 ; Line 3932 push 0 lea eax, DWORD PTR _start_pos$7051[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3933 push 0 lea edx, DWORD PTR _start_room$7052[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3934 mov ecx, DWORD PTR _start_pos$7051[ebp] mov DWORD PTR _end_pos$7053[ebp], ecx mov edx, DWORD PTR _start_pos$7051[ebp+4] mov DWORD PTR _end_pos$7053[ebp+4], edx mov eax, DWORD PTR _start_pos$7051[ebp+8] mov DWORD PTR _end_pos$7053[ebp+8], eax ; Line 3935 fld DWORD PTR _end_pos$7053[ebp+4] fsub DWORD PTR __real@4@4009fa00000000000000 fstp DWORD PTR _end_pos$7053[ebp+4] ; Line 3937 mov DWORD PTR _flags$7055[ebp], 1049353 ; 00100309H ; Line 3938 lea ecx, DWORD PTR _ray$7054[ebp] push ecx mov edx, DWORD PTR _flags$7055[ebp] push edx push 0 mov eax, DWORD PTR _start_room$7052[ebp] push eax lea ecx, DWORD PTR _end_pos$7053[ebp] push ecx lea edx, DWORD PTR _start_pos$7051[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast add esp, 28 ; 0000001cH mov DWORD PTR _fate$7056[ebp], eax ; Line 3940 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 28 ; 0000001cH mov eax, DWORD PTR _ray$7054[ebp+8] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _ray$7054[ebp+12] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _ray$7054[ebp+16] mov DWORD PTR [edx+8], eax ; Line 3941 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [edx+32] fadd DWORD PTR [ecx+52] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+32] ; Line 3943 mov DWORD PTR _max_speed$7057[ebp], 1101004800 ; 41a00000H ; Line 3944 mov DWORD PTR _max_delta_speed$7058[ebp], 1112014848 ; 42480000H ; Line 3946 lea ecx, DWORD PTR _max_speed$7057[ebp] push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3947 lea eax, DWORD PTR _max_delta_speed$7058[ebp] push eax push 1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 3949 mov edx, DWORD PTR _ray$7054[ebp+4] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 28 ; 0000001cH push ecx push 131208 ; 00020088H push 43 ; 0000002bH push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 3951 mov DWORD PTR _dist$7059[ebp], 0 ; Line 3952 push 0 lea eax, DWORD PTR _dist$7059[ebp] push eax push 26 ; 0000001aH push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 3954 mov DWORD PTR _flags$7055[ebp], 262144 ; 00040000H ; Line 3955 push 0 lea edx, DWORD PTR _flags$7055[ebp] push edx push 16 ; 00000010H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3956 mov DWORD PTR _flags$7055[ebp], 2 ; Line 3957 push 0 lea ecx, DWORD PTR _flags$7055[ebp] push ecx push 16 ; 00000010H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3960 push 0 lea eax, DWORD PTR _orient$7060[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 3962 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 40 ; 00000028H mov ecx, DWORD PTR _orient$7060[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$7060[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$7060[ebp+32] mov DWORD PTR [eax+8], ecx ; Line 3963 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+44], 0 ; Line 3964 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 40 ; 00000028H push edx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 $L7050: $L6974: ; Line 3971 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _shields$[ebp] mov DWORD PTR [ecx+20], edx ; Line 3972 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] ; Line 3973 pop esi mov esp, ebp pop ebp ret 4 $L11229: DD $L6977 DD $L6982 DD $L7013 DD $L6974 $L11228: DB 0 DB 3 DB 1 DB 3 DB 3 DB 3 DB 1 DB 3 DB 3 DB 3 DB 3 DB 3 DB 3 DB 3 DB 2 ?DoInterval@Humonculous@@AAEXH@Z ENDP ; Humonculous::DoInterval _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Humonculous@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Humonculous::CallEvent ; Line 3976 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 3978 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L7067 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11231[eax] jmp DWORD PTR $L11232[edx*4] $L7070: ; Line 3980 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Humonculous@@AAEXH@Z ; Humonculous::DoInit ; Line 3981 jmp SHORT $L7067 $L7071: ; Line 3983 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoInterval@Humonculous@@AAEXH@Z ; Humonculous::DoInterval ; Line 3984 jmp SHORT $L7067 $L7072: ; Line 3986 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Humonculous@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Humonculous::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L7065 $L7073: ; Line 3990 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L7067: ; Line 3994 mov ax, 257 ; 00000101H $L7065: ; Line 3995 mov esp, ebp pop ebp ret 8 $L11232: DD $L7071 DD $L7072 DD $L7070 DD $L7073 DD $L7067 $L11231: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Humonculous@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Humonculous::CallEvent _TEXT ENDS PUBLIC ?DoInit@Dragon@@AAEXH@Z ; Dragon::DoInit _DATA SEGMENT ORG $+2 $SG7083 DB 'Dragonhead', 00H ORG $+1 $SG7084 DB 'Dragontail', 00H ORG $+1 $SG7085 DB 'Dragonturret', 00H ORG $+3 $SG7089 DB 'Dragontailturret', 00H ORG $+3 $SG7090 DB 'Dragontentacle', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -24 _i$ = -4 _ch$ = -20 ?DoInit@Dragon@@AAEXH@Z PROC NEAR ; Dragon::DoInit ; Line 4002 push ebp mov ebp, esp sub esp, 24 ; 00000018H mov DWORD PTR _this$[ebp], ecx ; Line 4006 mov WORD PTR _ch$[ebp+8], 4 ; Line 4007 mov DWORD PTR _ch$[ebp+12], 64 ; 00000040H ; Line 4008 mov DWORD PTR _ch$[ebp], 0 ; Line 4009 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4011 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4013 push 0 push 1 push 0 push 1 push 2 push OFFSET FLAT:$SG7083 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax ; Line 4014 push 0 push 1 push 6 push 0 push 2 push OFFSET FLAT:$SG7084 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+8], eax ; Line 4015 push 0 push 1 push 0 push 2 push 2 push OFFSET FLAT:$SG7085 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+12], eax ; Line 4017 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L7086 $L7087: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L7086: cmp DWORD PTR _i$[ebp], 6 jge SHORT $L7088 ; Line 4019 push 0 push 1 push 1 mov cl, BYTE PTR _i$[ebp] push ecx push 2 push OFFSET FLAT:$SG7089 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+8] push ecx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov edx, DWORD PTR _i$[ebp] mov DWORD PTR [ecx+edx*4+16], eax ; Line 4020 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG7090 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR [ecx+edx*4+16] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _i$[ebp] mov DWORD PTR [edx+ecx*4+40], eax ; Line 4021 jmp SHORT $L7087 $L7088: ; Line 4023 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax], 0 ; Line 4025 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 4026 mov esp, ebp pop ebp ret 4 ?DoInit@Dragon@@AAEXH@Z ENDP ; Dragon::DoInit _event$ = 8 _data$ = 12 _this$ = -8 _i$7104 = -4 ?CallEvent@Dragon@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Dragon::CallEvent ; Line 4029 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 4031 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -12+[ebp], eax cmp DWORD PTR -12+[ebp], 261 ; 00000105H je SHORT $L7103 cmp DWORD PTR -12+[ebp], 273 ; 00000111H je SHORT $L7100 cmp DWORD PTR -12+[ebp], 281 ; 00000119H je SHORT $L7101 jmp $L7097 $L7100: ; Line 4033 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Dragon@@AAEXH@Z ; Dragon::DoInit ; Line 4034 jmp $L7097 $L7101: ; Line 4037 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx ; Line 4039 jmp $L7097 $L7103: ; Line 4044 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+4] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4045 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+8] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4046 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+12] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4047 mov DWORD PTR _i$7104[ebp], 0 jmp SHORT $L7105 $L7106: mov eax, DWORD PTR _i$7104[ebp] add eax, 1 mov DWORD PTR _i$7104[ebp], eax $L7105: cmp DWORD PTR _i$7104[ebp], 6 jge SHORT $L7107 ; Line 4049 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$7104[ebp] mov ecx, DWORD PTR [edx+eax*4+16] push ecx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4050 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$7104[ebp] mov edx, DWORD PTR [eax+ecx*4+40] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4051 jmp SHORT $L7106 $L7107: $L7097: ; Line 4055 mov ax, 257 ; 00000101H ; Line 4056 mov esp, ebp pop ebp ret 8 ?CallEvent@Dragon@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Dragon::CallEvent _TEXT ENDS PUBLIC ?DoInit@Tracker@@AAEXH@Z ; Tracker::DoInit _DATA SEGMENT ORG $+1 $SG7115 DB 'Trackerturret', 00H ORG $+2 $SG7116 DB 'Trackerhatch', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@Tracker@@AAEXH@Z PROC NEAR ; Tracker::DoInit ; Line 4064 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 4066 mov WORD PTR _ch$[ebp+8], 4 ; Line 4067 mov DWORD PTR _ch$[ebp+12], 8 ; Line 4068 mov DWORD PTR _ch$[ebp], 0 ; Line 4069 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4071 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4073 push 0 push 1 push 0 push 1 push 2 push OFFSET FLAT:$SG7115 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx], eax ; Line 4074 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG7116 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax ; Line 4076 push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 4077 mov esp, ebp pop ebp ret 4 ?DoInit@Tracker@@AAEXH@Z ENDP ; Tracker::DoInit _event$ = 8 _data$ = 12 _this$ = -924 _mstruct$7130 = -920 ?CallEvent@Tracker@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Tracker::CallEvent ; Line 4080 push ebp mov ebp, esp sub esp, 928 ; 000003a0H mov DWORD PTR _this$[ebp], ecx ; Line 4082 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -928+[ebp], eax cmp DWORD PTR -928+[ebp], 261 ; 00000105H je SHORT $L7129 cmp DWORD PTR -928+[ebp], 273 ; 00000111H je SHORT $L7126 cmp DWORD PTR -928+[ebp], 281 ; 00000119H je SHORT $L7127 jmp $L7123 $L7126: ; Line 4084 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Tracker@@AAEXH@Z ; Tracker::DoInit ; Line 4085 jmp $L7123 $L7127: ; Line 4088 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx ; Line 4090 jmp SHORT $L7123 $L7129: ; Line 4095 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+4] mov DWORD PTR _mstruct$7130[ebp+44], edx ; Line 4096 mov DWORD PTR _mstruct$7130[ebp+100], -1 ; Line 4097 mov BYTE PTR _mstruct$7130[ebp+96], 0 ; Line 4098 mov DWORD PTR _mstruct$7130[ebp+92], 1148846080 ; 447a0000H ; Line 4100 lea eax, DWORD PTR _mstruct$7130[ebp] push eax push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 4102 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx] mov DWORD PTR _mstruct$7130[ebp+44], eax ; Line 4103 mov DWORD PTR _mstruct$7130[ebp+100], -1 ; Line 4104 mov BYTE PTR _mstruct$7130[ebp+96], 0 ; Line 4105 mov DWORD PTR _mstruct$7130[ebp+92], 1148846080 ; 447a0000H ; Line 4107 lea ecx, DWORD PTR _mstruct$7130[ebp] push ecx push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L7123: ; Line 4112 mov ax, 257 ; 00000101H ; Line 4113 mov esp, ebp pop ebp ret 8 ?CallEvent@Tracker@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Tracker::CallEvent _TEXT ENDS PUBLIC ?DoInit@Lance@@AAEXH@Z ; Lance::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@Lance@@AAEXH@Z PROC NEAR ; Lance::DoInit ; Line 4120 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 4122 mov WORD PTR _ch$[ebp+8], 4 ; Line 4123 mov DWORD PTR _ch$[ebp+12], 4 ; Line 4124 mov DWORD PTR _ch$[ebp], 0 ; Line 4125 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4127 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4129 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx], 1 ; Line 4130 mov esp, ebp pop ebp ret 4 ?DoInit@Lance@@AAEXH@Z ENDP ; Lance::DoInit _TEXT ENDS PUBLIC ?DoFrame@Lance@@AAEXH@Z ; Lance::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -16 _frame$ = -4 _flags$7145 = -8 _flags$7148 = -12 ?DoFrame@Lance@@AAEXH@Z PROC NEAR ; Lance::DoFrame ; Line 4133 push ebp mov ebp, esp sub esp, 16 ; 00000010H mov DWORD PTR _this$[ebp], ecx ; Line 4136 push 0 lea eax, DWORD PTR _frame$[ebp] push eax push 0 push 1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 4138 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@40008000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7143 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 1 je SHORT $L7143 ; Line 4140 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax], 1 jne SHORT $L7144 ; Line 4142 mov DWORD PTR _flags$7145[ebp], 8388608 ; 00800000H ; Line 4143 lea ecx, DWORD PTR _flags$7145[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4144 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx], 0 $L7144: ; Line 4147 jmp SHORT $L7147 $L7143: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax], 0 jne SHORT $L7147 ; Line 4149 mov DWORD PTR _flags$7148[ebp], 8388608 ; 00800000H ; Line 4150 lea ecx, DWORD PTR _flags$7148[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4151 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx], 1 $L7147: ; Line 4153 mov esp, ebp pop ebp ret 4 ?DoFrame@Lance@@AAEXH@Z ENDP ; Lance::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Lance@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Lance::CallEvent ; Line 4156 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 4158 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 257 ; 00000101H je SHORT $L7159 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L7158 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L7160 jmp SHORT $L7155 $L7158: ; Line 4160 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Lance@@AAEXH@Z ; Lance::DoInit ; Line 4161 jmp SHORT $L7155 $L7159: ; Line 4163 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Lance@@AAEXH@Z ; Lance::DoFrame ; Line 4164 jmp SHORT $L7155 $L7160: ; Line 4167 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L7155: ; Line 4171 mov ax, 257 ; 00000101H ; Line 4172 mov esp, ebp pop ebp ret 8 ?CallEvent@Lance@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Lance::CallEvent _TEXT ENDS PUBLIC ?DoInit@Flak@@AAEXH@Z ; Flak::DoInit _DATA SEGMENT ORG $+3 $SG7169 DB 'Flakcanopy', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@Flak@@AAEXH@Z PROC NEAR ; Flak::DoInit ; Line 4179 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 4181 mov WORD PTR _ch$[ebp+8], 4 ; Line 4182 mov DWORD PTR _ch$[ebp+12], 4 ; Line 4183 mov DWORD PTR _ch$[ebp], 0 ; Line 4184 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4186 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4188 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG7169 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx], eax ; Line 4190 push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 4191 mov esp, ebp pop ebp ret 4 ?DoInit@Flak@@AAEXH@Z ENDP ; Flak::DoInit _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Flak@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Flak::CallEvent ; Line 4194 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 4196 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 261 ; 00000105H je SHORT $L7180 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L7179 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L7181 jmp SHORT $L7176 $L7179: ; Line 4198 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Flak@@AAEXH@Z ; Flak::DoInit ; Line 4199 jmp SHORT $L7176 $L7180: ; Line 4201 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4202 jmp SHORT $L7176 $L7181: ; Line 4205 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx $L7176: ; Line 4209 mov ax, 257 ; 00000101H ; Line 4210 mov esp, ebp pop ebp ret 8 ?CallEvent@Flak@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Flak::CallEvent _TEXT ENDS PUBLIC ?DoInit@SuperTrooper@@AAEXH@Z ; SuperTrooper::DoInit _DATA SEGMENT ORG $+1 $SG7189 DB 'supertrooper', 00H ORG $+3 $SG7194 DB 'supertorso', 00H ORG $+1 $SG7196 DB 'red supertorso', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -944 _m$ = -940 _st_id$ = -4 _ch$ = -20 ?DoInit@SuperTrooper@@AAEXH@Z PROC NEAR ; SuperTrooper::DoInit ; Line 4217 push ebp mov ebp, esp sub esp, 944 ; 000003b0H mov DWORD PTR _this$[ebp], ecx ; Line 4219 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 4220 lea ecx, DWORD PTR _m$[ebp] push ecx push 31 ; 0000001fH call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 4221 push OFFSET FLAT:$SG7189 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _st_id$[ebp], eax ; Line 4224 mov WORD PTR _ch$[ebp+8], 4 ; Line 4225 mov DWORD PTR _ch$[ebp+12], 4 ; Line 4226 mov DWORD PTR _ch$[ebp], 0 ; Line 4227 mov edx, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], edx ; Line 4229 lea eax, DWORD PTR _ch$[ebp] push eax call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 4231 mov edx, DWORD PTR _m$[ebp+72] cmp edx, DWORD PTR _st_id$[ebp] jne SHORT $L7193 ; Line 4233 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG7194 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx], eax ; Line 4235 jmp SHORT $L7195 $L7193: ; Line 4237 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG7196 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx], eax $L7195: ; Line 4240 push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 4241 mov esp, ebp pop ebp ret 4 ?DoInit@SuperTrooper@@AAEXH@Z ENDP ; SuperTrooper::DoInit _event$ = 8 _data$ = 12 _this$ = -1848 _body_handle$7207 = -4 _mstruct$7209 = -924 _mstruct$7212 = -1844 ?CallEvent@SuperTrooper@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; SuperTrooper::CallEvent ; Line 4244 push ebp mov ebp, esp sub esp, 1852 ; 0000073cH mov DWORD PTR _this$[ebp], ecx ; Line 4246 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -1852+[ebp], eax mov ecx, DWORD PTR -1852+[ebp] sub ecx, 256 ; 00000100H mov DWORD PTR -1852+[ebp], ecx cmp DWORD PTR -1852+[ebp], 25 ; 00000019H ja $L7203 mov eax, DWORD PTR -1852+[ebp] xor edx, edx mov dl, BYTE PTR $L11244[eax] jmp DWORD PTR $L11245[edx*4] $L7206: ; Line 4249 push 0 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call DWORD PTR ?Obj_GetAttachChildHandle@@3P6AHHD@ZA ; Obj_GetAttachChildHandle add esp, 8 mov DWORD PTR _body_handle$7207[ebp], eax ; Line 4250 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _body_handle$7207[ebp] cmp edx, DWORD PTR [ecx] je SHORT $L7208 ; Line 4254 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] mov DWORD PTR _mstruct$7209[ebp+44], ecx ; Line 4255 mov DWORD PTR _mstruct$7209[ebp+100], -1 ; Line 4256 mov BYTE PTR _mstruct$7209[ebp+96], 0 ; Line 4257 mov DWORD PTR _mstruct$7209[ebp+92], 1148846080 ; 447a0000H ; Line 4259 lea edx, DWORD PTR _mstruct$7209[ebp] push edx push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L7208: ; Line 4262 jmp SHORT $L7203 $L7210: ; Line 4264 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@SuperTrooper@@AAEXH@Z ; SuperTrooper::DoInit ; Line 4265 jmp SHORT $L7203 $L7211: ; Line 4270 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] mov DWORD PTR _mstruct$7212[ebp+44], ecx ; Line 4271 mov DWORD PTR _mstruct$7212[ebp+100], -1 ; Line 4272 mov BYTE PTR _mstruct$7212[ebp+96], 0 ; Line 4273 mov DWORD PTR _mstruct$7212[ebp+92], 1148846080 ; 447a0000H ; Line 4275 lea edx, DWORD PTR _mstruct$7212[ebp] push edx push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 4277 jmp SHORT $L7203 $L7213: ; Line 4280 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx $L7203: ; Line 4284 mov ax, 257 ; 00000101H ; Line 4285 mov esp, ebp pop ebp ret 8 $L11245: DD $L7206 DD $L7211 DD $L7210 DD $L7213 DD $L7203 $L11244: DB 0 DB 4 DB 4 DB 4 DB 4 DB 1 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@SuperTrooper@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; SuperTrooper::CallEvent _TEXT ENDS PUBLIC ?SetMode@Jugg@@AAEXHD@Z ; Jugg::SetMode _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -12 _type$7226 = -8 _aimtype$7227 = -4 ?SetMode@Jugg@@AAEXHD@Z PROC NEAR ; Jugg::SetMode ; Line 4292 push ebp mov ebp, esp sub esp, 16 ; 00000010H mov DWORD PTR _this$[ebp], ecx ; Line 4294 mov al, BYTE PTR _mode$[ebp] mov BYTE PTR -16+[ebp], al cmp BYTE PTR -16+[ebp], 1 je SHORT $L7225 jmp SHORT $L7221 $L7225: ; Line 4299 mov BYTE PTR _type$7226[ebp], 0 ; Line 4300 mov BYTE PTR _aimtype$7227[ebp], 0 ; Line 4301 push 0 lea ecx, DWORD PTR _type$7226[ebp] push ecx push 13 ; 0000000dH push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4302 lea eax, DWORD PTR _aimtype$7227[ebp] push eax push 13 ; 0000000dH push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4304 push -1 push -1 push 0 push 1082130432 ; 40800000H push 1101004800 ; 41a00000H push 1090519040 ; 41000000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L7221: ; Line 4309 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _mode$[ebp] mov BYTE PTR [ecx+64], dl ; Line 4310 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+60], 0 ; Line 4311 mov esp, ebp pop ebp ret 8 ?SetMode@Jugg@@AAEXHD@Z ENDP ; Jugg::SetMode _TEXT ENDS PUBLIC ?DoInit@Jugg@@AAEXH@Z ; Jugg::DoInit _DATA SEGMENT ORG $+1 $SG7240 DB 'Jugghead', 00H ORG $+3 $SG7241 DB 'Juggheadturretright', 00H $SG7242 DB 'Juggheadturretleft', 00H ORG $+1 $SG7243 DB 'Juggbelly', 00H ORG $+2 $SG7247 DB 'Jugg main turret', 00H ORG $+3 $SG7248 DB 'Jugg flame turret', 00H ORG $+2 $SG7249 DB 'Jugg flame turret', 00H ORG $+2 $SG7250 DB 'Jugg flame turret', 00H ORG $+2 $SG7251 DB 'JugFootHit', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -40 _i$ = -16 _ch$ = -32 ?DoInit@Jugg@@AAEXH@Z PROC NEAR ; Jugg::DoInit ; Line 4314 push ebp mov ebp, esp sub esp, 40 ; 00000028H mov DWORD PTR _this$[ebp], ecx ; Line 4322 mov WORD PTR _ch$[ebp+8], 4 ; Line 4323 mov DWORD PTR _ch$[ebp+12], 68 ; 00000044H ; Line 4324 mov DWORD PTR _ch$[ebp], 0 ; Line 4325 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4327 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4329 push 0 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG7240 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+8], eax ; Line 4332 push 0 push 1 push 0 push 1 push 2 push OFFSET FLAT:$SG7241 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+8] push edx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+40], eax ; Line 4334 push 0 push 1 push 0 push 2 push 2 push OFFSET FLAT:$SG7242 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+8] push edx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+44], eax ; Line 4336 push 0 push 1 push 0 push 1 push 2 push OFFSET FLAT:$SG7243 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+12], eax ; Line 4338 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L7244 $L7245: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L7244: cmp DWORD PTR _i$[ebp], 6 jge SHORT $L7246 ; Line 4340 push 0 push 1 push 0 mov ecx, DWORD PTR _i$[ebp] add ecx, 2 push ecx push 2 push OFFSET FLAT:$SG7247 mov edx, DWORD PTR _me$[ebp] push edx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _i$[ebp] mov DWORD PTR [edx+ecx*4+16], eax ; Line 4341 jmp SHORT $L7245 $L7246: ; Line 4343 push 0 push 1 push 0 push 1 push 2 push OFFSET FLAT:$SG7248 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+12] push ecx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+48], eax ; Line 4344 push 0 push 1 push 0 push 2 push 2 push OFFSET FLAT:$SG7249 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+12] push ecx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+52], eax ; Line 4345 push 0 push 1 push 0 push 8 push 2 push OFFSET FLAT:$SG7250 mov edx, DWORD PTR _me$[ebp] push edx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+56], eax ; Line 4347 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+65], 0 ; Line 4349 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Jugg@@AAEXHD@Z ; Jugg::SetMode ; Line 4351 push OFFSET FLAT:$SG7251 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax ; Line 4352 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] push ecx push 18 ; 00000012H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4353 mov esp, ebp pop ebp ret 4 ?DoInit@Jugg@@AAEXH@Z ENDP ; Jugg::DoInit _TEXT ENDS PUBLIC ?DoFrame@Jugg@@AAEXH@Z ; Jugg::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -52 _current_anim_frame$ = -8 _flags$ = -4 _h_flags$7260 = -48 ?DoFrame@Jugg@@AAEXH@Z PROC NEAR ; Jugg::DoFrame ; Line 4356 push ebp mov ebp, esp sub esp, 52 ; 00000034H push esi mov DWORD PTR _this$[ebp], ecx ; Line 4361 push 0 lea eax, DWORD PTR _current_anim_frame$[ebp] push eax push 18 ; 00000012H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4362 push 0 lea edx, DWORD PTR _flags$[ebp] push edx push 10 ; 0000000aH push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4364 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+65] and eax, 2 test eax, eax jne SHORT $L7261 ; Line 4367 push 0 lea ecx, DWORD PTR _h_flags$7260[ebp] push ecx push 10 ; 0000000aH push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+8] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4369 mov edx, DWORD PTR _h_flags$7260[ebp] and edx, 8388608 ; 00800000H test edx, edx je SHORT $L7261 ; Line 4371 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx+65] or dl, 2 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+65], dl ; Line 4372 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+8] push ecx call DWORD PTR ?AI_PowerSwitch@@3P6AHHE@ZA ; AI_PowerSwitch add esp, 8 ; Line 4373 push 1077936128 ; 40400000H push 1092616192 ; 41200000H mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+8] push ecx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH $L7261: ; Line 4377 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+65] and ecx, 4 test ecx, ecx jne SHORT $L7263 ; Line 4379 mov edx, DWORD PTR _flags$[ebp] and edx, 8388608 ; 00800000H test edx, edx je SHORT $L7263 ; Line 4381 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx+65] or dl, 4 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+65], dl ; Line 4382 push 1077936128 ; 40400000H push 1092616192 ; 41200000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH $L7263: ; Line 4387 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+64] test edx, edx jne SHORT $L7264 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+65] and edx, 4 test edx, edx je SHORT $L7264 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+65] and edx, 2 test edx, edx je SHORT $L7264 ; Line 4389 push 1 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Jugg@@AAEXHD@Z ; Jugg::SetMode $L7264: ; Line 4392 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+64] cmp eax, 1 jne SHORT $L7265 cmp DWORD PTR _current_anim_frame$[ebp], 1101004800 ; 41a00000H jne SHORT $L7265 ; Line 4394 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_PowerSwitch@@3P6AHHE@ZA ; AI_PowerSwitch add esp, 8 $L7265: ; Line 4397 fld DWORD PTR _current_anim_frame$[ebp] fcomp DWORD PTR __real@4@3fff8000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7266 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax] fcomp DWORD PTR __real@4@3fff8000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L7266 ; Line 4399 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+4] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L7266: ; Line 4402 fld DWORD PTR _current_anim_frame$[ebp] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7267 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L7267 ; Line 4404 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+4] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L7267: ; Line 4407 fld DWORD PTR _current_anim_frame$[ebp] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7268 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L7268 ; Line 4409 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+4] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L7268: ; Line 4412 fld DWORD PTR _current_anim_frame$[ebp] fcomp DWORD PTR __real@4@4001e000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7269 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax] fcomp DWORD PTR __real@4@4001e000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L7269 ; Line 4414 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+4] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L7269: ; Line 4417 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+60] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+60] ; Line 4418 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _current_anim_frame$[ebp] mov DWORD PTR [eax], ecx ; Line 4419 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@Jugg@@AAEXH@Z ENDP ; Jugg::DoFrame _event$ = 8 _data$ = 12 _this$ = -12 _type$7283 = -4 _i$7284 = -8 ?CallEvent@Jugg@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Jugg::CallEvent ; Line 4422 push ebp mov ebp, esp sub esp, 16 ; 00000010H mov DWORD PTR _this$[ebp], ecx ; Line 4424 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -16+[ebp], eax mov ecx, DWORD PTR -16+[ebp] sub ecx, 256 ; 00000100H mov DWORD PTR -16+[ebp], ecx cmp DWORD PTR -16+[ebp], 25 ; 00000019H ja $L7276 mov eax, DWORD PTR -16+[ebp] xor edx, edx mov dl, BYTE PTR $L11250[eax] jmp DWORD PTR $L11251[edx*4] $L7279: ; Line 4426 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Jugg@@AAEXH@Z ; Jugg::DoInit ; Line 4427 jmp $L7276 $L7280: ; Line 4429 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Jugg@@AAEXH@Z ; Jugg::DoFrame ; Line 4430 jmp $L7276 $L7281: ; Line 4433 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+65] and ecx, 1 test ecx, ecx jne SHORT $L7288 ; Line 4438 push 0 lea edx, DWORD PTR _type$7283[ebp] push edx push 1 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+12] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4440 cmp DWORD PTR _type$7283[ebp], 255 ; 000000ffH jne SHORT $L7288 ; Line 4442 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx+65] or dl, 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+65], dl ; Line 4444 mov DWORD PTR _i$7284[ebp], 0 jmp SHORT $L7286 $L7287: mov edx, DWORD PTR _i$7284[ebp] add edx, 1 mov DWORD PTR _i$7284[ebp], edx $L7286: cmp DWORD PTR _i$7284[ebp], 3 jge SHORT $L7288 ; Line 4446 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$7284[ebp] mov eax, DWORD PTR [ecx+edx*4+48] push eax call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4447 jmp SHORT $L7287 $L7288: ; Line 4453 jmp SHORT $L7276 $L7290: ; Line 4456 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [ecx+4], eax $L7276: ; Line 4460 mov ax, 257 ; 00000101H ; Line 4461 mov esp, ebp pop ebp ret 8 $L11251: DD $L7281 DD $L7280 DD $L7279 DD $L7290 DD $L7276 $L11250: DB 0 DB 1 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Jugg@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Jugg::CallEvent _TEXT ENDS PUBLIC ?DoInit@DTower@@AAEXH@Z ; DTower::DoInit _DATA SEGMENT ORG $+1 $SG7304 DB 'Ltowergun', 00H ORG $+2 $SG7305 DB 'Ltowerball', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -40 _ch$ = -32 ?DoInit@DTower@@AAEXH@Z PROC NEAR ; DTower::DoInit ; Line 4468 push ebp mov ebp, esp sub esp, 40 ; 00000028H mov DWORD PTR _this$[ebp], ecx ; Line 4476 mov WORD PTR _ch$[ebp+8], 4 ; Line 4477 mov DWORD PTR _ch$[ebp+12], 20 ; 00000014H ; Line 4478 mov DWORD PTR _ch$[ebp], 0 ; Line 4479 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4481 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4483 push 0 push 1 push 0 push 0 push 11 ; 0000000bH push OFFSET FLAT:$SG7304 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx], eax ; Line 4484 push 0 push 1 push 0 push 1 push 11 ; 0000000bH push OFFSET FLAT:$SG7305 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax ; Line 4486 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 16 ; 00000010H push ecx push 18 ; 00000012H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4487 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+12], 0 ; Line 4488 mov esp, ebp pop ebp ret 4 ?DoInit@DTower@@AAEXH@Z ENDP ; DTower::DoInit _TEXT ENDS PUBLIC ?DoFrame@DTower@@AAEXH@Z ; DTower::DoFrame PUBLIC __real@4@4003f000000000000000 PUBLIC __real@4@4005b400000000000000 PUBLIC __real@4@40038000000000000000 _DATA SEGMENT ORG $+1 $SG7319 DB 'TubbsHitBlast', 00H _DATA ENDS ; COMDAT __real@4@4003f000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4003f000000000000000 DD 041f00000r ; 30 CONST ENDS ; COMDAT __real@4@4005b400000000000000 CONST SEGMENT __real@4@4005b400000000000000 DD 042b40000r ; 90 CONST ENDS ; COMDAT __real@4@40038000000000000000 CONST SEGMENT __real@4@40038000000000000000 DD 041800000r ; 16 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -44 _current_anim_frame$ = -4 _flags$7312 = -8 _room$7316 = -28 _pos$7317 = -40 _weapon_id$7318 = -24 _vel$7320 = -20 ?DoFrame@DTower@@AAEXH@Z PROC NEAR ; DTower::DoFrame ; File aigame.cpp ; Line 4491 push ebp mov ebp, esp sub esp, 56 ; 00000038H push esi mov DWORD PTR _this$[ebp], ecx ; Line 4493 push 0 lea eax, DWORD PTR _current_anim_frame$[ebp] push eax push 18 ; 00000012H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4495 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cl, BYTE PTR [eax+12] test ecx, ecx jne SHORT $L7311 ; Line 4498 push 0 lea edx, DWORD PTR _flags$7312[ebp] push edx push 10 ; 0000000aH push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4500 mov ecx, DWORD PTR _flags$7312[ebp] and ecx, 8388608 ; 00800000H test ecx, ecx je SHORT $L7313 ; Line 4502 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+8], 0 ; Line 4503 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+12], 1 $L7313: ; Line 4506 jmp $L7315 $L7311: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+8] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 1 je $L7315 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+8] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 1 jne $L7315 ; Line 4511 push 0 lea eax, DWORD PTR _room$7316[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4512 push 0 lea edx, DWORD PTR _pos$7317[ebp] push edx push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGunPos add esp, 16 ; 00000010H ; Line 4514 push OFFSET FLAT:$SG7319 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$7318[ebp], eax ; Line 4515 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx push 0 lea edx, DWORD PTR _pos$7317[ebp] push edx mov eax, DWORD PTR _room$7316[ebp] push eax mov cx, WORD PTR _weapon_id$7318[ebp] push ecx push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH ; Line 4517 push 0 push 0 push 68320 ; 00010ae0H push 1148846080 ; 447a0000H push -1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] push ecx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4518 push 1084227584 ; 40a00000H push 1092616192 ; 41200000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH ; Line 4520 mov DWORD PTR _vel$7320[ebp], 0 mov DWORD PTR _vel$7320[ebp+4], 0 mov DWORD PTR _vel$7320[ebp+8], 0 ; Line 4521 call _rand mov DWORD PTR -48+[ebp], eax fild DWORD PTR -48+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4003f000000000000000 fadd DWORD PTR __real@4@4005b400000000000000 fstp DWORD PTR _vel$7320[ebp+4] ; Line 4522 call _rand mov DWORD PTR -52+[ebp], eax fild DWORD PTR -52+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@40038000000000000000 fsub DWORD PTR __real@4@40028000000000000000 fstp DWORD PTR _vel$7320[ebp] ; Line 4523 call _rand mov DWORD PTR -56+[ebp], eax fild DWORD PTR -56+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@40038000000000000000 fsub DWORD PTR __real@4@40028000000000000000 fstp DWORD PTR _vel$7320[ebp+8] ; Line 4525 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+4] push edx call DWORD PTR ?Obj_UnattachFromParent@@3P6AXH@ZA ; Obj_UnattachFromParent add esp, 4 ; Line 4526 push 0 lea eax, DWORD PTR _vel$7320[ebp] push eax push 6 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4527 push 1077936128 ; 40400000H push 1097859072 ; 41700000H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+4] push eax call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH ; Line 4529 push -1 push -1 push 0 push 1073741824 ; 40000000H push 1092616192 ; 41200000H push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L7315: ; Line 4532 cmp DWORD PTR _current_anim_frame$[ebp], 1092616192 ; 41200000H jne SHORT $L7327 ; Line 4534 push 0 push 0 push 68320 ; 00010ae0H push 1148846080 ; 447a0000H push -1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H $L7327: ; Line 4537 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+8] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] ; Line 4538 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _current_anim_frame$[ebp] mov DWORD PTR [ecx+16], edx ; Line 4539 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@DTower@@AAEXH@Z ENDP ; DTower::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@DTower@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; DTower::CallEvent ; Line 4542 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 4544 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 257 ; 00000101H je SHORT $L7338 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L7337 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L7340 jmp SHORT $L7334 $L7337: ; Line 4546 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@DTower@@AAEXH@Z ; DTower::DoInit ; Line 4547 jmp SHORT $L7334 $L7338: ; Line 4549 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@DTower@@AAEXH@Z ; DTower::DoFrame ; Line 4550 jmp SHORT $L7334 $L7340: ; Line 4555 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L7334: ; Line 4559 mov ax, 257 ; 00000101H ; Line 4560 mov esp, ebp pop ebp ret 8 ?CallEvent@DTower@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; DTower::CallEvent _TEXT ENDS PUBLIC ?DoInit@DCollector@@AAEXH@Z ; DCollector::DoInit _DATA SEGMENT ORG $+2 $SG7349 DB 'Collectortarget', 00H $SG7350 DB 'Collectorrod', 00H ORG $+3 $SG7351 DB 'Collectorball', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@DCollector@@AAEXH@Z PROC NEAR ; DCollector::DoInit ; Line 4567 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 4569 mov WORD PTR _ch$[ebp+8], 4 ; Line 4570 mov DWORD PTR _ch$[ebp+12], 16 ; 00000010H ; Line 4571 mov DWORD PTR _ch$[ebp], 0 ; Line 4572 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4574 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4576 push 0 push 1 push 1 push 0 push 11 ; 0000000bH push OFFSET FLAT:$SG7349 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+8], eax ; Line 4577 push 0 push 1 push 0 push 0 push 11 ; 0000000bH push OFFSET FLAT:$SG7350 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+8] push edx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], eax ; Line 4578 push 0 push 1 push 0 push 1 push 11 ; 0000000bH push OFFSET FLAT:$SG7351 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+4] push edx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx], eax ; Line 4580 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+12], 0 ; Line 4581 mov esp, ebp pop ebp ret 4 ?DoInit@DCollector@@AAEXH@Z ENDP ; DCollector::DoInit _TEXT ENDS PUBLIC ?DoFrame@DCollector@@AAEXH@Z ; DCollector::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -20 _type$7357 = -4 _vel$7359 = -16 ?DoFrame@DCollector@@AAEXH@Z PROC NEAR ; DCollector::DoFrame ; Line 4584 push ebp mov ebp, esp sub esp, 32 ; 00000020H mov DWORD PTR _this$[ebp], ecx ; Line 4585 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dl, BYTE PTR [ecx+12] test edx, edx jne $L7358 ; Line 4588 push 0 lea eax, DWORD PTR _type$7357[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+8] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4590 cmp DWORD PTR _type$7357[ebp], 255 ; 000000ffH jne $L7358 ; Line 4592 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+12], 1 ; Line 4593 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+4] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H ; Line 4595 push 1077936128 ; 40400000H push 1086324736 ; 40c00000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH ; Line 4597 mov DWORD PTR _vel$7359[ebp], 0 mov DWORD PTR _vel$7359[ebp+4], 0 mov DWORD PTR _vel$7359[ebp+8], 0 ; Line 4598 call _rand mov DWORD PTR -24+[ebp], eax fild DWORD PTR -24+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4003f000000000000000 fadd DWORD PTR __real@4@4005b400000000000000 fstp DWORD PTR _vel$7359[ebp+4] ; Line 4599 call _rand mov DWORD PTR -28+[ebp], eax fild DWORD PTR -28+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@40028000000000000000 fsub DWORD PTR __real@4@40018000000000000000 fstp DWORD PTR _vel$7359[ebp] ; Line 4600 call _rand mov DWORD PTR -32+[ebp], eax fild DWORD PTR -32+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@40028000000000000000 fsub DWORD PTR __real@4@40018000000000000000 fstp DWORD PTR _vel$7359[ebp+8] ; Line 4601 push 0 lea ecx, DWORD PTR _vel$7359[ebp] push ecx push 6 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4602 push 1077936128 ; 40400000H push 1097859072 ; 41700000H mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] push ecx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH $L7358: ; Line 4605 mov esp, ebp pop ebp ret 4 ?DoFrame@DCollector@@AAEXH@Z ENDP ; DCollector::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@DCollector@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; DCollector::CallEvent ; Line 4608 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 4610 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 257 ; 00000101H je SHORT $L7376 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L7375 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L7378 jmp SHORT $L7372 $L7375: ; Line 4612 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@DCollector@@AAEXH@Z ; DCollector::DoInit ; Line 4613 jmp SHORT $L7372 $L7376: ; Line 4615 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@DCollector@@AAEXH@Z ; DCollector::DoFrame ; Line 4616 jmp SHORT $L7372 $L7378: ; Line 4621 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L7372: ; Line 4625 mov ax, 257 ; 00000101H ; Line 4626 mov esp, ebp pop ebp ret 8 ?CallEvent@DCollector@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; DCollector::CallEvent _TEXT ENDS PUBLIC ?DoInit@CBall@@AAEXH@Z ; CBall::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@CBall@@AAEXH@Z PROC NEAR ; CBall::DoInit ; Line 4633 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 4635 mov WORD PTR _ch$[ebp+8], 4 ; Line 4636 mov DWORD PTR _ch$[ebp+12], 8 ; Line 4637 mov DWORD PTR _ch$[ebp], 0 ; Line 4638 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 4640 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 4642 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx], 0 ; Line 4643 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+4], 0 ; Line 4644 mov esp, ebp pop ebp ret 4 ?DoInit@CBall@@AAEXH@Z ENDP ; CBall::DoInit _TEXT ENDS PUBLIC __real@4@4002c000000000000000 PUBLIC ?DoFrame@CBall@@AAEXH@Z ; CBall::DoFrame ; COMDAT __real@4@4002c000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4002c000000000000000 DD 041400000r ; 12 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -8 _f_picked_up$ = -4 ?DoFrame@CBall@@AAEXH@Z PROC NEAR ; CBall::DoFrame ; File aigame.cpp ; Line 4647 push ebp mov ebp, esp sub esp, 8 push esi mov DWORD PTR _this$[ebp], ecx ; Line 4650 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_GetAttachParent@@3P6AHH@ZA ; Obj_GetAttachParent add esp, 4 xor ecx, ecx cmp eax, -1 setne cl mov BYTE PTR _f_picked_up$[ebp], cl ; Line 4652 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cl, BYTE PTR [eax] test ecx, ecx jne SHORT $L7392 mov edx, DWORD PTR _f_picked_up$[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L7392 ; Line 4654 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx], 1 ; Line 4656 jmp SHORT $L7395 $L7392: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cl, BYTE PTR [eax] test ecx, ecx je SHORT $L7395 mov edx, DWORD PTR _f_picked_up$[ebp] and edx, 255 ; 000000ffH test edx, edx jne SHORT $L7395 ; Line 4658 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] ; Line 4660 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@4002c000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7395 ; Line 4662 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H $L7395: ; Line 4665 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@CBall@@AAEXH@Z ENDP ; CBall::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@CBall@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; CBall::CallEvent ; Line 4668 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 4670 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 256 ; 00000100H je SHORT $L7406 cmp DWORD PTR -8+[ebp], 260 ; 00000104H je SHORT $L7405 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L7408 jmp SHORT $L7402 $L7405: ; Line 4672 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@CBall@@AAEXH@Z ; CBall::DoInit ; Line 4673 jmp SHORT $L7402 $L7406: ; Line 4675 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@CBall@@AAEXH@Z ; CBall::DoFrame ; Line 4676 jmp SHORT $L7402 $L7408: ; Line 4681 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L7402: ; Line 4685 mov ax, 257 ; 00000101H ; Line 4686 mov esp, ebp pop ebp ret 8 ?CallEvent@CBall@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; CBall::CallEvent _TEXT ENDS PUBLIC ?DoInit@SixGun@@AAEXH@Z ; SixGun::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -948 _m$ = -944 _ch$ = -24 _flags$ = -4 _temp$ = -8 ?DoInit@SixGun@@AAEXH@Z PROC NEAR ; SixGun::DoInit ; Line 4693 push ebp mov ebp, esp sub esp, 948 ; 000003b4H mov DWORD PTR _this$[ebp], ecx ; Line 4695 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 4698 mov WORD PTR _ch$[ebp+8], 4 ; Line 4699 mov DWORD PTR _ch$[ebp+12], 12 ; 0000000cH ; Line 4700 mov DWORD PTR _ch$[ebp], 0 ; Line 4701 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], ecx ; Line 4703 lea edx, DWORD PTR _ch$[ebp] push edx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 4705 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax], 0 ; Line 4706 mov DWORD PTR _flags$[ebp], 1 ; Line 4707 push 0 lea ecx, DWORD PTR _flags$[ebp] push ecx push 2 push 3 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 4709 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 4 push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4710 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 8 push ecx push 7 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4712 mov DWORD PTR _temp$[ebp], 0 ; Line 4713 lea eax, DWORD PTR _temp$[ebp] push eax push 0 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4714 mov DWORD PTR _temp$[ebp], 1101004800 ; 41a00000H ; Line 4715 lea edx, DWORD PTR _temp$[ebp] push edx push 7 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4716 mov esp, ebp pop ebp ret 4 ?DoInit@SixGun@@AAEXH@Z ENDP ; SixGun::DoInit _TEXT ENDS PUBLIC ?DoNotify@SixGun@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; SixGun::DoNotify _TEXT SEGMENT _me$ = 8 _notify$ = 12 _this$ = -8 _flags$7428 = -4 ?DoNotify@SixGun@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z PROC NEAR ; SixGun::DoNotify ; Line 4719 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 4720 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx], 0 jne $L7426 ; Line 4722 mov edx, DWORD PTR _notify$[ebp] cmp DWORD PTR [edx], 8 je SHORT $L7427 mov eax, DWORD PTR _notify$[ebp] cmp DWORD PTR [eax], 13 ; 0000000dH je SHORT $L7427 mov ecx, DWORD PTR _notify$[ebp] cmp DWORD PTR [ecx], 14 ; 0000000eH je SHORT $L7427 mov edx, DWORD PTR _notify$[ebp] cmp DWORD PTR [edx], 22 ; 00000016H jne $L7426 $L7427: ; Line 4724 mov DWORD PTR _flags$7428[ebp], 1 ; Line 4725 push 0 lea eax, DWORD PTR _flags$7428[ebp] push eax push 2 push 2 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 4727 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 4 push eax push 0 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4728 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 8 push eax push 7 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4729 push -1 push 21 ; 00000015H push -1 push 1065353216 ; 3f800000H push 0 push 524288 ; 00080000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 4730 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx], 1 $L7426: ; Line 4734 mov al, 1 ; Line 4735 mov esp, ebp pop ebp ret 8 ?DoNotify@SixGun@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ENDP ; SixGun::DoNotify _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@SixGun@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; SixGun::CallEvent ; Line 4738 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 4740 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 272 ; 00000110H je SHORT $L7439 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L7438 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L7441 jmp SHORT $L7435 $L7438: ; Line 4742 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@SixGun@@AAEXH@Z ; SixGun::DoInit ; Line 4743 jmp SHORT $L7435 $L7439: ; Line 4745 mov eax, DWORD PTR _data$[ebp] push eax mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@SixGun@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; SixGun::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L7433 $L7441: ; Line 4751 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx $L7435: ; Line 4755 mov ax, 257 ; 00000101H $L7433: ; Line 4756 mov esp, ebp pop ebp ret 8 ?CallEvent@SixGun@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; SixGun::CallEvent _TEXT ENDS PUBLIC ?DoInit@ExplodeTimeOut@@AAEXH@Z ; ExplodeTimeOut::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -940 _m$ = -936 _ch$ = -16 ?DoInit@ExplodeTimeOut@@AAEXH@Z PROC NEAR ; ExplodeTimeOut::DoInit ; Line 4763 push ebp mov ebp, esp sub esp, 940 ; 000003acH mov DWORD PTR _this$[ebp], ecx ; Line 4765 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 4768 mov WORD PTR _ch$[ebp+8], 4 ; Line 4769 mov DWORD PTR _ch$[ebp+12], 4 ; Line 4770 mov DWORD PTR _ch$[ebp], 0 ; Line 4771 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], ecx ; Line 4773 lea edx, DWORD PTR _ch$[ebp] push edx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 4774 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax], 1126170624 ; 43200000H ; Line 4775 mov esp, ebp pop ebp ret 4 ?DoInit@ExplodeTimeOut@@AAEXH@Z ENDP ; ExplodeTimeOut::DoInit _event$ = 8 _data$ = 12 _this$ = -924 _mstruct$7463 = -920 ?CallEvent@ExplodeTimeOut@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; ExplodeTimeOut::CallEvent ; Line 4778 push ebp mov ebp, esp sub esp, 928 ; 000003a0H push esi mov DWORD PTR _this$[ebp], ecx ; Line 4780 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -928+[ebp], eax cmp DWORD PTR -928+[ebp], 256 ; 00000100H je SHORT $L7461 cmp DWORD PTR -928+[ebp], 273 ; 00000111H je SHORT $L7460 cmp DWORD PTR -928+[ebp], 281 ; 00000119H je $L7465 jmp $L7457 $L7460: ; Line 4782 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@ExplodeTimeOut@@AAEXH@Z ; ExplodeTimeOut::DoInit ; Line 4783 jmp SHORT $L7457 $L7461: ; Line 4786 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fsubr DWORD PTR [esi] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx] ; Line 4787 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L7462 ; Line 4791 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] mov DWORD PTR _mstruct$7463[ebp+44], eax ; Line 4792 mov DWORD PTR _mstruct$7463[ebp+100], -1 ; Line 4793 mov BYTE PTR _mstruct$7463[ebp+96], 0 ; Line 4794 mov DWORD PTR _mstruct$7463[ebp+92], 1148846080 ; 447a0000H ; Line 4796 lea ecx, DWORD PTR _mstruct$7463[ebp] push ecx push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L7462: ; Line 4799 jmp SHORT $L7457 $L7465: ; Line 4804 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L7457: ; Line 4808 mov ax, 257 ; 00000101H ; Line 4809 pop esi mov esp, ebp pop ebp ret 8 ?CallEvent@ExplodeTimeOut@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; ExplodeTimeOut::CallEvent _TEXT ENDS PUBLIC ?ReInitAmbient@GuideBot@@AAEXH@Z ; GuideBot::ReInitAmbient _TEXT SEGMENT _me$ = 8 _this$ = -12 _flags$7472 = -8 _dir_index$ = -4 ?ReInitAmbient@GuideBot@@AAEXH@Z PROC NEAR ; GuideBot::ReInitAmbient ; Line 4817 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 4818 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@3fff8000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+80] ; Line 4821 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+72], 43 ; 0000002bH je SHORT $L7471 ; Line 4823 mov DWORD PTR _flags$7472[ebp], 33554432 ; 02000000H ; Line 4824 lea ecx, DWORD PTR _flags$7472[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L7471: ; Line 4827 call _rand cdq mov ecx, 6 idiv ecx mov DWORD PTR _dir_index$[ebp], edx ; Line 4828 mov edx, DWORD PTR _dir_index$[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push 4 push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 4829 push 1104674816 ; 41d80000H push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 4830 mov esp, ebp pop ebp ret 4 ?ReInitAmbient@GuideBot@@AAEXH@Z ENDP ; GuideBot::ReInitAmbient _TEXT ENDS PUBLIC ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage _DATA SEGMENT ORG $+2 $SG7488 DB 01H, 0adH, 0adH, 01H, '%s:', 01H, 01H, 0adH, 01H, ' %s', 00H _DATA ENDS _TEXT SEGMENT _str$ = 8 _f_high_priority$ = 12 _sound_name$ = 16 _f_sound_2d$ = 20 _this$ = -264 _s_id$7484 = -260 _gb_message$7487 = -256 ?DoMessage@GuideBot@@AAEXPAD_N01@Z PROC NEAR ; GuideBot::DoMessage ; Line 4833 push ebp mov ebp, esp sub esp, 268 ; 0000010cH mov DWORD PTR _this$[ebp], ecx ; Line 4834 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and edx, 8 test edx, edx je SHORT $L7481 mov eax, DWORD PTR _f_high_priority$[ebp] and eax, 255 ; 000000ffH test eax, eax jne SHORT $L7481 ; Line 4835 jmp $L7480 $L7481: ; Line 4837 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+84] fadd DWORD PTR __real@4@4000c000000000000000 fstp DWORD PTR -268+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -268+[ebp] fnstsw ax test ah, 65 ; 00000041H jne $L7482 ; Line 4839 cmp DWORD PTR _sound_name$[ebp], 0 je SHORT $L7486 ; Line 4841 mov eax, DWORD PTR _sound_name$[ebp] push eax call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _s_id$7484[ebp], eax ; Line 4842 mov ecx, DWORD PTR _f_sound_2d$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L7485 ; Line 4843 push 1065353216 ; 3f800000H mov edx, DWORD PTR _s_id$7484[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+100] push edx call DWORD PTR ?Sound_Play2d@@3P6AHHHM@ZA ; Sound_Play2d add esp, 12 ; 0000000cH ; Line 4844 jmp SHORT $L7486 $L7485: ; Line 4845 push 1065353216 ; 3f800000H mov eax, DWORD PTR _s_id$7484[ebp] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+100] push eax call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L7486: ; Line 4848 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+84] ; Line 4852 mov eax, DWORD PTR _str$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] push edx push OFFSET FLAT:$SG7488 lea eax, DWORD PTR _gb_message$7487[ebp] push eax call _sprintf add esp, 16 ; 00000010H ; Line 4853 lea ecx, DWORD PTR _gb_message$7487[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx call DWORD PTR ?Player_AddHudMessage@@3P6AXHPAD@ZA ; Player_AddHudMessage add esp, 8 $L7482: $L7480: ; Line 4855 mov esp, ebp pop ebp ret 16 ; 00000010H ?DoMessage@GuideBot@@AAEXPAD_N01@Z ENDP ; GuideBot::DoMessage _TEXT ENDS PUBLIC ?SetSubMode@GuideBot@@AAE_NHDH@Z ; GuideBot::SetSubMode _TEXT SEGMENT _me$ = 8 _sub_mode$ = 12 _it$ = 16 _this$ = -8 _dist$7500 = -4 ?SetSubMode@GuideBot@@AAE_NHDH@Z PROC NEAR ; GuideBot::SetSubMode ; Line 4858 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 4860 mov al, BYTE PTR _sub_mode$[ebp] mov BYTE PTR -12+[ebp], al cmp BYTE PTR -12+[ebp], 2 je SHORT $L7499 jmp SHORT $L7496 $L7499: ; Line 4863 mov DWORD PTR _dist$7500[ebp], -971227136 ; c61c4000H ; Line 4864 mov ecx, DWORD PTR _it$[ebp] push ecx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 2 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 4865 push 0 lea eax, DWORD PTR _dist$7500[ebp] push eax push 26 ; 0000001aH push 0 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H $L7496: ; Line 4874 movsx edx, BYTE PTR _sub_mode$[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+56], edx ; Line 4877 mov al, 1 ; Line 4878 mov esp, ebp pop ebp ret 12 ; 0000000cH ?SetSubMode@GuideBot@@AAE_NHDH@Z ENDP ; GuideBot::SetSubMode _TEXT ENDS PUBLIC __real@4@3fff99999a0000000000 PUBLIC ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode _DATA SEGMENT ORG $+1 $SG7538 DB 'GBExpulsionA', 00H ORG $+3 $SG7546 DB 'GBotConcern1', 00H ORG $+3 $SG7548 DB 'GBotHurt1', 00H _DATA ENDS ; COMDAT __real@4@3fff99999a0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3fff99999a0000000000 DD 03f99999ar ; 1.2 CONST ENDS _TEXT SEGMENT $T11278 = -2880 $T11279 = -2892 $T11280 = -2904 $T11281 = -2916 $T11282 = -2928 $T11283 = -2940 $T11284 = -2952 $T11285 = -2964 _me$ = 8 _mode$ = 12 _this$ = -2968 _dist$ = -12 _g_index$ = -8 _wbflags$ = -4 _mstruct$7511 = -932 _i$7519 = -936 _m$7524 = -1856 _room$7526 = -2840 _pos$7527 = -2852 _orient$7528 = -1916 _vel$7529 = -1872 _flags$7530 = -1860 _m$7533 = -2836 _time$7534 = -1876 _s_id$7537 = -1880 _flags$7545 = -2856 _s_index$7547 = -2860 _flags$7552 = -2864 _dir_index$7553 = -2868 ?SetMode@GuideBot@@AAE_NHD@Z PROC NEAR ; GuideBot::SetMode ; File aigame.cpp ; Line 4881 push ebp mov ebp, esp sub esp, 2972 ; 00000b9cH mov DWORD PTR _this$[ebp], ecx ; Line 4882 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 4883 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+36], 0 ; Line 4885 mov DWORD PTR _dist$[ebp], 1082130432 ; 40800000H ; Line 4886 push -1 push 16 ; 00000010H push -1 push 1065353216 ; 3f800000H push 100 ; 00000064H push 4194304 ; 00400000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal add esp, 28 ; 0000001cH call __ftol mov DWORD PTR _g_index$[ebp], eax ; Line 4887 push 0 lea ecx, DWORD PTR _dist$[ebp] push ecx push 26 ; 0000001aH push 0 mov dl, BYTE PTR _g_index$[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 4889 mov DWORD PTR _wbflags$[ebp], 1 ; Line 4890 push 0 lea ecx, DWORD PTR _wbflags$[ebp] push ecx push 2 push 3 push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 4892 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+52], 10 ; 0000000aH jne $L7510 movsx edx, BYTE PTR _mode$[ebp] cmp edx, 10 ; 0000000aH je $L7510 ; Line 4896 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and edx, 64 ; 00000040H test edx, edx je SHORT $L7512 ; Line 4898 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and edx, -65 ; ffffffbfH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+88], edx ; Line 4899 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+108] mov DWORD PTR _mstruct$7511[ebp+72], ecx ; Line 4900 lea edx, DWORD PTR _mstruct$7511[ebp] push edx push 34 ; 00000022H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L7512: ; Line 4903 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+108] mov DWORD PTR _mstruct$7511[ebp+72], edx ; Line 4904 lea eax, DWORD PTR _mstruct$7511[ebp] push eax push 34 ; 00000022H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 4905 push 0 push -1 push 2 push 1067030938 ; 3f99999aH push 1109655552 ; 42240000H push 1107558400 ; 42040000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L7510: ; Line 4909 movsx edx, BYTE PTR _mode$[ebp] mov DWORD PTR -2972+[ebp], edx mov eax, DWORD PTR -2972+[ebp] sub eax, 1 mov DWORD PTR -2972+[ebp], eax cmp DWORD PTR -2972+[ebp], 11 ; 0000000bH ja $L7514 mov ecx, DWORD PTR -2972+[ebp] jmp DWORD PTR $L11288[ecx*4] $L7518: ; Line 4915 push 0 push 0 push 1 push 44 ; 0000002cH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 4917 push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH ; Line 4918 mov DWORD PTR _i$7519[ebp], 0 jmp SHORT $L7520 $L7521: mov eax, DWORD PTR _i$7519[ebp] add eax, 1 mov DWORD PTR _i$7519[ebp], eax $L7520: cmp DWORD PTR _i$7519[ebp], 5 jge SHORT $L7522 ; Line 4920 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$7519[ebp] cmp DWORD PTR [edx+eax*4+16], -1 je SHORT $L7523 ; Line 4922 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$7519[ebp] mov ecx, DWORD PTR [edx+eax*4+16] push ecx call DWORD PTR ?Sound_Stop@@3P6AXH_N@ZA ; Sound_Stop add esp, 8 ; Line 4923 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$7519[ebp] mov DWORD PTR [eax+ecx*4+16], -1 $L7523: ; Line 4925 jmp SHORT $L7521 $L7522: ; Line 4928 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] mov DWORD PTR _m$7524[ebp+44], ecx ; Line 4929 mov DWORD PTR _m$7524[ebp+68], 2 ; Line 4930 mov DWORD PTR _m$7524[ebp+72], 0 ; Line 4931 mov DWORD PTR _m$7524[ebp+592], 0 ; Line 4933 lea edx, DWORD PTR _m$7524[ebp] push edx push 200 ; 000000c8H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 4935 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Ghost@@3P6AXH_N@ZA ; Obj_Ghost add esp, 8 ; Line 4936 mov BYTE PTR _mode$[ebp], 0 ; Line 4938 jmp $L7514 $L7525: ; Line 4947 mov DWORD PTR _flags$7530[ebp], 33554432 ; 02000000H ; Line 4948 lea ecx, DWORD PTR _flags$7530[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 4950 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+48], 1 ; Line 4951 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+49], 0 ; Line 4952 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+104], 0 ; Line 4954 push 0 push -1 push 18 ; 00000012H push 1065353216 ; 3f800000H push 1094713344 ; 41400000H push 1086324736 ; 40c00000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 4956 push 0 lea ecx, DWORD PTR _room$7526[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4957 push 0 lea edx, DWORD PTR _pos$7527[ebp] push edx push 3 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4958 push 0 lea eax, DWORD PTR _orient$7528[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4960 push 0 lea ecx, DWORD PTR _room$7526[ebp] push ecx push 5 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4961 push 0 lea eax, DWORD PTR _pos$7527[ebp] push eax push 3 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4962 push 0 lea edx, DWORD PTR _orient$7528[ebp] push edx push 4 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4964 push 0 lea ecx, DWORD PTR _vel$7529[ebp] push ecx push 6 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4966 push 1109393408 ; 42200000H sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR _orient$7528[ebp+24] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _orient$7528[ebp+28] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _orient$7528[ebp+32] mov DWORD PTR [edx+8], eax lea ecx, DWORD PTR $T11280[ebp] push ecx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11279[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11279[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11279[ebp+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR $T11279[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11279[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11279[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR _vel$7529[ebp] push edx lea eax, DWORD PTR $T11281[ebp] push eax call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11278[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11278[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11278[ebp+8], eax ; Line 4968 push 0 lea ecx, DWORD PTR _vel$7529[ebp] push ecx push 6 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4970 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Ghost@@3P6AXH_N@ZA ; Obj_Ghost add esp, 8 ; Line 4973 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] mov DWORD PTR _m$7533[ebp+44], eax ; Line 4974 mov DWORD PTR _m$7533[ebp+68], 2 ; Line 4975 mov DWORD PTR _m$7533[ebp+72], 0 ; Line 4976 mov DWORD PTR _m$7533[ebp+592], 0 ; Line 4978 lea ecx, DWORD PTR _m$7533[ebp] push ecx push 203 ; 000000cbH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 4980 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR _time$7534[ebp] ; Line 4981 push 0 lea edx, DWORD PTR _time$7534[ebp] push edx push 14 ; 0000000eH push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4982 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 44 ; 0000002cH push edx push 17 ; 00000011H push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 4984 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@3fff99999a0000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+80] ; Line 4989 push 1128792064 ; 43480000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$7528[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$7528[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$7528[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11284[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11283[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11283[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11283[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11283[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11283[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11283[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _pos$7527[ebp] push eax lea ecx, DWORD PTR $T11285[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11282[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11282[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11282[ebp+8], edx ; Line 4991 mov eax, DWORD PTR _room$7526[ebp] push eax lea ecx, DWORD PTR _pos$7527[ebp] push ecx push 136 ; 00000088H push -1 push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 4992 push 1065353216 ; 3f800000H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 4994 push OFFSET FLAT:$SG7538 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _s_id$7537[ebp], eax ; Line 4995 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _s_id$7537[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH ; Line 4997 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+72], -1 ; Line 4999 jmp $L7514 $L7539: ; Line 5002 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?ReInitAmbient@GuideBot@@AAEXH@Z ; GuideBot::ReInitAmbient ; Line 5004 jmp $L7514 $L7540: ; Line 5006 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+96] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [edx+96] mov DWORD PTR [ecx+92], edx ; Line 5007 jmp $L7514 $L7544: ; Line 5019 mov DWORD PTR _flags$7545[ebp], 33554432 ; 02000000H ; Line 5020 lea eax, DWORD PTR _flags$7545[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5022 push 0 push OFFSET FLAT:$SG7546 push 1 push 45 ; 0000002dH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5024 push OFFSET FLAT:$SG7548 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _s_index$7547[ebp], eax ; Line 5025 push 1065353216 ; 3f800000H mov edx, DWORD PTR _s_index$7547[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+16], eax ; Line 5027 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5028 push -1082130432 ; bf800000H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5030 push 1065353216 ; 3f800000H push 1232348160 ; 49742400H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH ; Line 5031 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+88], 1 ; Line 5033 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+49], 1 ; Line 5035 jmp $L7514 $L7551: ; Line 5042 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 5043 mov DWORD PTR _flags$7552[ebp], 65536 ; 00010000H ; Line 5044 push 0 lea edx, DWORD PTR _flags$7552[ebp] push edx push 36 ; 00000024H push 2 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 5046 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@3fff8000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+80] ; Line 5049 mov DWORD PTR _flags$7552[ebp], 33554432 ; 02000000H ; Line 5050 lea eax, DWORD PTR _flags$7552[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5052 call _rand cdq mov ecx, 6 idiv ecx mov DWORD PTR _dir_index$7553[ebp], edx ; Line 5053 mov edx, DWORD PTR _dir_index$7553[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push 4 push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 5054 push 1104674816 ; 41d80000H push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5056 push 0 lea edx, DWORD PTR _wbflags$[ebp] push edx push 2 push 2 push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 5058 jmp SHORT $L7514 $L7554: ; Line 5061 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+112] push eax push 262148 ; 00040004H push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 5063 push 1101004800 ; 41a00000H push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5064 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+136], 0 ; Line 5065 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@40008000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+80] $L7514: ; Line 5069 movsx ecx, BYTE PTR _mode$[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+52], ecx ; Line 5070 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+56], 0 ; Line 5074 mov al, 1 ; Line 5075 mov esp, ebp pop ebp ret 8 $L11288: DD $L7539 DD $L7540 DD $L7514 DD $L7514 DD $L7514 DD $L7544 DD $L7514 DD $L7514 DD $L7551 DD $L7554 DD $L7525 DD $L7518 ?SetMode@GuideBot@@AAE_NHD@Z ENDP ; GuideBot::SetMode _TEXT ENDS PUBLIC ?InitExtinguish@GuideBot@@AAE_N_N@Z ; GuideBot::InitExtinguish _TEXT SEGMENT _f_player_on_fire$ = 8 _this$ = -128 _pos$ = -124 _room$ = -112 _scan_objs$ = -104 _n_scan$ = -4 _i$ = -108 ?InitExtinguish@GuideBot@@AAE_N_N@Z PROC NEAR ; GuideBot::InitExtinguish ; Line 5078 push ebp mov ebp, esp sub esp, 128 ; 00000080H mov DWORD PTR _this$[ebp], ecx ; Line 5085 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+132], 0 ; Line 5086 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+100] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5087 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+100] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5089 push 1 push 0 push 0 push 0 push 25 ; 00000019H lea ecx, DWORD PTR _scan_objs$[ebp] push ecx push 1148846080 ; 447a0000H mov edx, DWORD PTR _room$[ebp] push edx lea eax, DWORD PTR _pos$[ebp] push eax call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$[ebp], eax ; Line 5091 mov ecx, DWORD PTR _f_player_on_fire$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L7564 ; Line 5093 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [ecx+4] mov ecx, DWORD PTR [ecx+132] mov eax, DWORD PTR [eax+44] mov DWORD PTR [edx+ecx*4+112], eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+132] add eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+132], eax $L7564: ; Line 5097 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L7565 $L7566: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L7565: mov ecx, DWORD PTR _i$[ebp] cmp ecx, DWORD PTR _n_scan$[ebp] jge $L7567 ; Line 5099 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+132], 5 jl SHORT $L7568 ; Line 5100 jmp $L7567 $L7568: ; Line 5102 mov ecx, DWORD PTR _f_player_on_fire$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L7569 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _scan_objs$[ebp+ecx*4] cmp edx, DWORD PTR [eax+44] jne SHORT $L7569 ; Line 5103 jmp $L7567 $L7569: ; Line 5105 push 8 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _scan_objs$[ebp+eax*4] push ecx call DWORD PTR ?Obj_IsEffect@@3P6A_NHH@ZA ; Obj_IsEffect add esp, 8 and eax, 255 ; 000000ffH test eax, eax je SHORT $L7572 ; Line 5108 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _scan_objs$[ebp+ecx*4] cmp edx, DWORD PTR [eax+100] je SHORT $L7572 ; Line 5110 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _scan_objs$[ebp+eax*4] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+100] push ecx call DWORD PTR ?AI_IsObjEnemy@@3P6A_NHH@ZA ; AI_IsObjEnemy add esp, 8 and eax, 255 ; 000000ffH test eax, eax jne SHORT $L7572 ; Line 5113 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR [edx+132] mov edx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _scan_objs$[ebp+edx*4] mov DWORD PTR [eax+ecx*4+112], edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+132] add edx, 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+132], edx $L7572: ; Line 5117 jmp $L7566 $L7567: ; Line 5119 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+132], 0 je SHORT $L7573 ; Line 5121 push 10 ; 0000000aH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+100] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode ; Line 5122 mov al, 1 jmp SHORT $L7574 $L7573: ; Line 5126 xor al, al $L7574: ; Line 5128 mov esp, ebp pop ebp ret 4 ?InitExtinguish@GuideBot@@AAE_N_N@Z ENDP ; GuideBot::InitExtinguish _TEXT ENDS PUBLIC ?MakeCommandList@GuideBot@@AAEHPAH@Z ; GuideBot::MakeCommandList _DATA SEGMENT ORG $+2 $SG7615 DB 'Thief', 00H _DATA ENDS _TEXT SEGMENT _gbc_list$ = 8 _this$ = -40 _count$ = -4 _i$ = -8 _roomnum$7588 = -12 _handle$7602 = -16 _handle$7606 = -20 _handle$7610 = -24 _id$7614 = -32 _handle$7616 = -28 _handle$7621 = -36 ?MakeCommandList@GuideBot@@AAEHPAH@Z PROC NEAR ; GuideBot::MakeCommandList ; Line 5131 push ebp mov ebp, esp sub esp, 40 ; 00000028H mov DWORD PTR _this$[ebp], ecx ; Line 5132 mov DWORD PTR _count$[ebp], 0 ; Line 5135 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+52], 0 jne SHORT $L7581 ; Line 5137 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L7582 $L7583: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L7582: cmp DWORD PTR _i$[ebp], 2 jg SHORT $L7584 ; Line 5139 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and edx, 1 test edx, edx jne SHORT $L7585 cmp DWORD PTR _i$[ebp], 1 jne SHORT $L7585 ; Line 5140 jmp SHORT $L7583 $L7585: ; Line 5142 mov eax, DWORD PTR _count$[ebp] mov ecx, DWORD PTR _gbc_list$[ebp] mov edx, DWORD PTR _i$[ebp] mov DWORD PTR [ecx+eax*4], edx mov eax, DWORD PTR _count$[ebp] add eax, 1 mov DWORD PTR _count$[ebp], eax ; Line 5143 jmp SHORT $L7583 $L7584: ; Line 5145 jmp $L7591 $L7581: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx+52], 1 jne $L7591 ; Line 5148 push 0 lea eax, DWORD PTR _roomnum$7588[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+100] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5150 push -1 push -1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 64 ; 00000040H push edx push 1 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5151 push -1 push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 68 ; 00000044H push ecx push 3 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5153 mov DWORD PTR _i$[ebp], 3 jmp SHORT $L7589 $L7590: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L7589: cmp DWORD PTR _i$[ebp], 44 ; 0000002cH jge $L7591 ; Line 5155 cmp DWORD PTR _i$[ebp], 3 jl SHORT $L7592 cmp DWORD PTR _i$[ebp], 10 ; 0000000aH jg SHORT $L7592 ; Line 5157 mov eax, DWORD PTR _i$[ebp] sub eax, 3 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp eax, DWORD PTR [edx+64] jl SHORT $L7593 ; Line 5158 jmp SHORT $L7590 $L7593: ; Line 5160 jmp $L7633 $L7592: cmp DWORD PTR _i$[ebp], 11 ; 0000000bH jl SHORT $L7595 cmp DWORD PTR _i$[ebp], 18 ; 00000012H jg SHORT $L7595 ; Line 5162 mov eax, DWORD PTR _i$[ebp] sub eax, 11 ; 0000000bH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp eax, DWORD PTR [edx+68] jl SHORT $L7596 ; Line 5163 jmp SHORT $L7590 $L7596: ; Line 5165 jmp $L7633 $L7595: cmp DWORD PTR _i$[ebp], 27 ; 0000001bH jl SHORT $L7598 cmp DWORD PTR _i$[ebp], 34 ; 00000022H jg SHORT $L7598 ; Line 5167 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 60 ; 0000003cH push ecx push 1 push -1 push 0 mov edx, DWORD PTR _i$[ebp] sub edx, 27 ; 0000001bH push edx push 15 ; 0000000fH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+100] push edx call DWORD PTR ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA ; Obj_MakeListOfType add esp, 28 ; 0000001cH test eax, eax jne SHORT $L7599 ; Line 5168 jmp $L7590 $L7599: ; Line 5170 jmp $L7633 $L7598: cmp DWORD PTR _i$[ebp], 19 ; 00000013H jne SHORT $L7601 ; Line 5173 lea eax, DWORD PTR _handle$7602[ebp] push eax push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax push 0 push -1 push 7 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+100] push eax call DWORD PTR ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA ; Obj_MakeListOfType add esp, 28 ; 0000001cH test eax, eax jne SHORT $L7603 ; Line 5174 jmp $L7590 $L7603: ; Line 5176 jmp $L7633 $L7601: cmp DWORD PTR _i$[ebp], 20 ; 00000014H jne SHORT $L7605 ; Line 5179 lea ecx, DWORD PTR _handle$7606[ebp] push ecx push 1 push -1 push 0 push -1 push 7 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+100] push ecx call DWORD PTR ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA ; Obj_MakeListOfType add esp, 28 ; 0000001cH test eax, eax jne SHORT $L7607 ; Line 5180 jmp $L7590 $L7607: ; Line 5182 jmp $L7633 $L7605: cmp DWORD PTR _i$[ebp], 22 ; 00000016H jne SHORT $L7609 ; Line 5185 lea edx, DWORD PTR _handle$7610[ebp] push edx push 1 push -1 push 0 push -1 push 2 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+100] push edx call DWORD PTR ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA ; Obj_MakeListOfType add esp, 28 ; 0000001cH test eax, eax jne SHORT $L7611 ; Line 5186 jmp $L7590 $L7611: ; Line 5188 jmp $L7633 $L7609: cmp DWORD PTR _i$[ebp], 23 ; 00000017H jne SHORT $L7613 ; Line 5190 push OFFSET FLAT:$SG7615 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _id$7614[ebp], eax ; Line 5193 cmp DWORD PTR _id$7614[ebp], 0 jl SHORT $L7618 lea eax, DWORD PTR _handle$7616[ebp] push eax push 1 push -1 push 0 mov ecx, DWORD PTR _id$7614[ebp] push ecx push 2 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+100] push ecx call DWORD PTR ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA ; Obj_MakeListOfType add esp, 28 ; 0000001cH test eax, eax jne SHORT $L7617 $L7618: ; Line 5194 jmp $L7590 $L7617: ; Line 5196 jmp $L7633 $L7613: cmp DWORD PTR _i$[ebp], 26 ; 0000001aH jne SHORT $L7620 ; Line 5199 lea edx, DWORD PTR _handle$7621[ebp] push edx push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push 0 push -1 push 15 ; 0000000fH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+100] push edx call DWORD PTR ?Obj_MakeListOfType@@3P6AHHHH_NHHPAH@ZA ; Obj_MakeListOfType add esp, 28 ; 0000001cH test eax, eax jne SHORT $L7622 ; Line 5200 jmp $L7590 $L7622: ; Line 5202 jmp SHORT $L7633 $L7620: cmp DWORD PTR _i$[ebp], 36 ; 00000024H jl SHORT $L7624 cmp DWORD PTR _i$[ebp], 41 ; 00000029H jge SHORT $L7624 ; Line 5204 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] movsx eax, BYTE PTR [ecx+edx-28] test eax, eax jg SHORT $L7625 ; Line 5205 jmp $L7590 $L7625: ; Line 5207 jmp SHORT $L7633 $L7624: cmp DWORD PTR _i$[ebp], 24 ; 00000018H jne SHORT $L7627 ; Line 5208 jmp $L7590 $L7627: ; Line 5209 cmp DWORD PTR _i$[ebp], 25 ; 00000019H jne SHORT $L7629 ; Line 5210 jmp $L7590 $L7629: ; Line 5211 cmp DWORD PTR _i$[ebp], 42 ; 0000002aH jne SHORT $L7631 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+88] and eax, 8 test eax, eax je SHORT $L7631 ; Line 5212 jmp $L7590 $L7631: ; Line 5213 cmp DWORD PTR _i$[ebp], 41 ; 00000029H jne SHORT $L7633 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+88] and eax, 8 test eax, eax jne SHORT $L7633 ; Line 5214 jmp $L7590 $L7633: ; Line 5216 mov ecx, DWORD PTR _count$[ebp] mov edx, DWORD PTR _gbc_list$[ebp] mov eax, DWORD PTR _i$[ebp] mov DWORD PTR [edx+ecx*4], eax mov ecx, DWORD PTR _count$[ebp] add ecx, 1 mov DWORD PTR _count$[ebp], ecx ; Line 5217 jmp $L7590 $L7591: ; Line 5220 mov eax, DWORD PTR _count$[ebp] ; Line 5221 mov esp, ebp pop ebp ret 4 ?MakeCommandList@GuideBot@@AAEHPAH@Z ENDP ; GuideBot::MakeCommandList _TEXT ENDS PUBLIC ?DoInit@GuideBot@@AAE_NH_N@Z ; GuideBot::DoInit PUBLIC ?DoExternalCommands@GuideBot@@AAE_NHPAUgb_com@@H@Z ; GuideBot::DoExternalCommands EXTRN __chkstk:NEAR EXTRN _strcat:NEAR EXTRN _strlen:NEAR EXTRN _strncpy:NEAR _DATA SEGMENT ORG $+2 $SG7644 DB 'Command %d for GB', 0aH, 00H ORG $+1 $SG7664 DB 'GBotConcern1', 00H ORG $+3 $SG7667 DB 'GBotConcern1', 00H ORG $+3 $SG7676 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7678 DB 'GBotConcern1', 00H ORG $+3 $SG7683 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7685 DB 'GBotConcern1', 00H ORG $+3 $SG7695 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7697 DB 'GBotConcern1', 00H ORG $+3 $SG7701 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7704 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7708 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7710 DB 'GBotConcern1', 00H ORG $+3 $SG7714 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7716 DB 'GBotConcern1', 00H ORG $+3 $SG7726 DB '...', 00H $SG7727 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7729 DB 'GBotConcern1', 00H ORG $+3 $SG7739 DB '...', 00H $SG7740 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7742 DB 'GBotConcern1', 00H ORG $+3 $SG7746 DB 'Thief', 00H ORG $+2 $SG7749 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7751 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7753 DB 'GBotConcern1', 00H ORG $+3 $SG7757 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7759 DB 'GBotConcern1', 00H ORG $+3 $SG7762 DB 'GBotConcern1', 00H ORG $+3 $SG7765 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7770 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7772 DB 'GBotConcern1', 00H ORG $+3 $SG7777 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7781 DB 'GBotConcern1', 00H ORG $+3 $SG7809 DB 'FunkyEffect3', 00H ORG $+3 $SG7815 DB '%s', 00H ORG $+1 $SG7816 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7818 DB '%s', 00H ORG $+1 $SG7819 DB 'GBotConcern1', 00H ORG $+3 $SG7827 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7830 DB 'GBotConcern1', 00H ORG $+3 $SG7838 DB 'GBotConern1', 00H $SG7857 DB '...', 00H $SG7866 DB '...', 00H $SG7875 DB '...', 00H $SG7887 DB 'Powerup pickup', 00H ORG $+1 $SG7888 DB 'GBotExcited1', 00H _DATA ENDS _TEXT SEGMENT $T11292 = -5000 $T11293 = -5012 $T11294 = -5024 $T11295 = -5036 _me$ = 8 _command$ = 12 _it$ = 16 _this$ = -5040 _g_robot$ = -8 _roomnum$ = -12 _pos$ = -24 _flags$ = -4 _param1$7648 = -28 _g_id$7652 = -36 _flags$7653 = -32 _type$7654 = -40 _handle$7655 = -172 _i$7656 = -44 _num_items$7657 = -176 _f_ok$7670 = -180 _type$7674 = -184 _pnt$7682 = -196 _room$7688 = -204 _face$7689 = -200 _pnt$7691 = -216 _normal$7692 = -228 _flags$7700 = -232 _message$7720 = -488 _marker_message$7721 = -744 _message$7733 = -1000 _marker_message$7734 = -1256 _id$7745 = -1260 _f_used$7768 = -1264 _shields$7775 = -1268 _gb_shields$7778 = -1276 _flags$7779 = -1272 _ei$7784 = -1304 _pow_message$7787 = -1360 _f_do$7788 = -1308 _pos$7795 = -1488 _room$7796 = -1472 _n_scan$7797 = -1364 _scan_objs$7798 = -1464 _n_converted$7799 = -1476 _i$7800 = -1468 _mstruct$7807 = -2420 _flags$7810 = -1492 _target_handle$7811 = -1496 _str$7822 = -2500 _str$7837 = -2580 _i$7841 = -2588 _menu$7842 = -2584 _cur_command$7844 = -2592 _gbc_list$7845 = -2768 _c_index$7849 = -2772 _message$7851 = -3028 _marker_message$7852 = -3284 _g_id$7860 = -3288 _message$7861 = -3544 _g_id$7869 = -3548 _message$7870 = -3804 _message$7878 = -4060 _type$7884 = -4064 _s_id$7886 = -4988 _mo$7889 = -4984 ?DoExternalCommands@GuideBot@@AAE_NHPAUgb_com@@H@Z PROC NEAR ; GuideBot::DoExternalCommands ; Line 5224 push ebp mov ebp, esp mov eax, 5052 ; 000013bcH call __chkstk mov DWORD PTR _this$[ebp], ecx ; Line 5230 mov eax, DWORD PTR _command$[ebp] movsx ecx, BYTE PTR [eax] push ecx push OFFSET FLAT:$SG7644 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH ; Line 5233 mov DWORD PTR _flags$[ebp], 33554432 ; 02000000H ; Line 5234 lea edx, DWORD PTR _flags$[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5236 mov ecx, DWORD PTR _command$[ebp] movsx edx, BYTE PTR [ecx] cmp edx, 2 jne SHORT $L7645 ; Line 5238 push 1 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoInit@GuideBot@@AAE_NH_N@Z ; GuideBot::DoInit jmp $L7639 $L7645: ; Line 5240 mov ecx, DWORD PTR _command$[ebp] movsx edx, BYTE PTR [ecx] cmp edx, 1 jne $L7647 ; Line 5242 mov eax, DWORD PTR _command$[ebp] movsx ecx, BYTE PTR [eax+1] mov DWORD PTR _param1$7648[ebp], ecx ; Line 5245 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _param1$7648[ebp] mov DWORD PTR [eax+72], ecx ; Line 5248 cmp DWORD PTR _param1$7648[ebp], 3 jl SHORT $L7651 cmp DWORD PTR _param1$7648[ebp], 10 ; 0000000aH jle SHORT $L7650 $L7651: cmp DWORD PTR _param1$7648[ebp], 11 ; 0000000bH jl $L7649 cmp DWORD PTR _param1$7648[ebp], 18 ; 00000012H jg $L7649 $L7650: ; Line 5257 cmp DWORD PTR _param1$7648[ebp], 3 jl SHORT $L7658 cmp DWORD PTR _param1$7648[ebp], 10 ; 0000000aH jg SHORT $L7658 ; Line 5258 push -1 mov edx, DWORD PTR _param1$7648[ebp] sub edx, 3 push edx lea eax, DWORD PTR _g_id$7652[ebp] push eax push 2 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5259 jmp SHORT $L7659 $L7658: ; Line 5260 push -1 mov ecx, DWORD PTR _param1$7648[ebp] sub ecx, 11 ; 0000000bH push ecx lea edx, DWORD PTR _g_id$7652[ebp] push edx push 4 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H $L7659: ; Line 5262 push -1 mov eax, DWORD PTR _g_id$7652[ebp] push eax lea ecx, DWORD PTR _flags$7653[ebp] push ecx push 12 ; 0000000cH push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5263 push 0 mov edx, DWORD PTR _g_id$7652[ebp] push edx lea eax, DWORD PTR _type$7654[ebp] push eax push 14 ; 0000000eH push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5265 push -1 mov ecx, DWORD PTR _g_id$7652[ebp] push ecx lea edx, DWORD PTR _num_items$7657[ebp] push edx push 13 ; 0000000dH push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5267 mov DWORD PTR _i$7656[ebp], 0 jmp SHORT $L7660 $L7661: mov eax, DWORD PTR _i$7656[ebp] add eax, 1 mov DWORD PTR _i$7656[ebp], eax $L7660: mov ecx, DWORD PTR _i$7656[ebp] cmp ecx, DWORD PTR _num_items$7657[ebp] jge SHORT $L7662 ; Line 5269 mov edx, DWORD PTR _i$7656[ebp] push edx mov eax, DWORD PTR _g_id$7652[ebp] push eax mov ecx, DWORD PTR _i$7656[ebp] lea edx, DWORD PTR _handle$7655[ebp+ecx*4] push edx push 15 ; 0000000fH push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5270 jmp SHORT $L7661 $L7662: ; Line 5273 mov eax, DWORD PTR _flags$7653[ebp] and eax, 64 ; 00000040H test eax, eax je SHORT $L7663 ; Line 5275 push 0 push OFFSET FLAT:$SG7664 push 1 push 46 ; 0000002eH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5277 jmp $L7696 $L7663: mov ecx, DWORD PTR _flags$7653[ebp] and ecx, 32 ; 00000020H test ecx, ecx je SHORT $L7666 ; Line 5279 push 0 push OFFSET FLAT:$SG7667 push 1 push 47 ; 0000002fH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5281 jmp $L7696 $L7666: movsx edx, BYTE PTR _type$7654[ebp] cmp edx, 2 jne $L7669 ; Line 5283 mov BYTE PTR _f_ok$7670[ebp], 0 ; Line 5285 mov DWORD PTR _i$7656[ebp], 0 jmp SHORT $L7671 $L7672: mov eax, DWORD PTR _i$7656[ebp] add eax, 1 mov DWORD PTR _i$7656[ebp], eax $L7671: mov ecx, DWORD PTR _i$7656[ebp] cmp ecx, DWORD PTR _num_items$7657[ebp] jge $L7673 ; Line 5288 push 0 lea edx, DWORD PTR _type$7674[ebp] push edx push 1 push 1 mov eax, DWORD PTR _i$7656[ebp] mov ecx, DWORD PTR _handle$7655[ebp+eax*4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5290 cmp DWORD PTR _type$7674[ebp], 255 ; 000000ffH je $L7675 mov edx, DWORD PTR _i$7656[ebp] mov eax, DWORD PTR _handle$7655[ebp+edx*4] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_IsObjReachable@@3P6A_NHH@ZA ; AI_IsObjReachable add esp, 8 and eax, 255 ; 000000ffH test eax, eax je SHORT $L7675 ; Line 5292 push 0 push OFFSET FLAT:$SG7676 push 0 push 48 ; 00000030H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5293 mov edx, DWORD PTR _i$7656[ebp] mov eax, DWORD PTR _handle$7655[ebp+edx*4] push eax push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5294 push 1101004800 ; 41a00000H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5295 mov BYTE PTR _f_ok$7670[ebp], 1 ; Line 5296 jmp SHORT $L7673 $L7675: ; Line 5298 jmp $L7672 $L7673: ; Line 5300 mov eax, DWORD PTR _f_ok$7670[ebp] and eax, 255 ; 000000ffH test eax, eax jne SHORT $L7677 ; Line 5302 push 0 push OFFSET FLAT:$SG7678 push 1 push 49 ; 00000031H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7677: ; Line 5305 jmp $L7696 $L7669: movsx ecx, BYTE PTR _type$7654[ebp] cmp ecx, 1 jne $L7680 ; Line 5307 mov edx, DWORD PTR _handle$7655[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_IsDestReachable@@3P6A_NHH@ZA ; AI_IsDestReachable add esp, 8 and eax, 255 ; 000000ffH test eax, eax je SHORT $L7681 ; Line 5310 push 0 lea ecx, DWORD PTR _pnt$7682[ebp] push ecx push 10 ; 0000000aH push 1 mov edx, DWORD PTR _handle$7655[ebp] push edx call DWORD PTR ?Room_Value@@3P6AXHDDPAXH@ZA ; Room_Value add esp, 20 ; 00000014H ; Line 5311 mov eax, DWORD PTR _handle$7655[ebp] push eax lea ecx, DWORD PTR _pnt$7682[ebp] push ecx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 5312 push 1101004800 ; 41a00000H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5314 push 0 push OFFSET FLAT:$SG7683 push 0 push 48 ; 00000030H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5316 jmp SHORT $L7684 $L7681: ; Line 5318 push 0 push OFFSET FLAT:$SG7685 push 1 push 49 ; 00000031H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7684: ; Line 5321 jmp $L7696 $L7680: movsx ecx, BYTE PTR _type$7654[ebp] cmp ecx, 3 jne $L7696 ; Line 5324 mov edx, DWORD PTR _handle$7655[ebp] push edx call DWORD PTR ?Scrpt_GetTriggerRoom@@3P6AHH@ZA ; Scrpt_GetTriggerRoom add esp, 4 mov DWORD PTR _room$7688[ebp], eax ; Line 5325 mov eax, DWORD PTR _handle$7655[ebp] push eax call DWORD PTR ?Scrpt_GetTriggerFace@@3P6AHH@ZA ; Scrpt_GetTriggerFace add esp, 4 mov DWORD PTR _face$7689[ebp], eax ; Line 5327 mov ecx, DWORD PTR _room$7688[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_IsDestReachable@@3P6A_NHH@ZA ; AI_IsDestReachable add esp, 8 and eax, 255 ; 000000ffH test eax, eax je $L7690 ; Line 5331 mov eax, DWORD PTR _face$7689[ebp] push eax lea ecx, DWORD PTR _pnt$7691[ebp] push ecx push 14 ; 0000000eH push 1 mov edx, DWORD PTR _room$7688[ebp] push edx call DWORD PTR ?Room_Value@@3P6AXHDDPAXH@ZA ; Room_Value add esp, 20 ; 00000014H ; Line 5332 mov eax, DWORD PTR _face$7689[ebp] push eax lea ecx, DWORD PTR _normal$7692[ebp] push ecx push 8 push 1 mov edx, DWORD PTR _room$7688[ebp] push edx call DWORD PTR ?Room_Value@@3P6AXHDDPAXH@ZA ; Room_Value add esp, 20 ; 00000014H ; Line 5334 push 1084227584 ; 40a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _normal$7692[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _normal$7692[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _normal$7692[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11294[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11293[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11293[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11293[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11293[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11293[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11293[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _pnt$7691[ebp] push eax lea ecx, DWORD PTR $T11295[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11292[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11292[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11292[ebp+8], edx ; Line 5336 mov eax, DWORD PTR _room$7688[ebp] push eax lea ecx, DWORD PTR _pnt$7691[ebp] push ecx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 5337 push 1101004800 ; 41a00000H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5339 push 0 push OFFSET FLAT:$SG7695 push 0 push 48 ; 00000030H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5341 jmp SHORT $L7696 $L7690: ; Line 5343 push 0 push OFFSET FLAT:$SG7697 push 1 push 49 ; 00000031H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7696: ; Line 5348 jmp $L7836 $L7649: cmp DWORD PTR _param1$7648[ebp], 43 ; 0000002bH jne $L7699 ; Line 5353 mov DWORD PTR _flags$7700[ebp], 33554432 ; 02000000H ; Line 5354 lea ecx, DWORD PTR _flags$7700[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5356 push 0 push OFFSET FLAT:$SG7701 push 0 push 50 ; 00000032H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5357 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5358 push -1054867456 ; c1200000H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5359 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+49], 1 ; Line 5361 jmp $L7836 $L7699: cmp DWORD PTR _param1$7648[ebp], 35 ; 00000023H jne SHORT $L7703 ; Line 5363 push 0 push OFFSET FLAT:$SG7704 push 0 push 51 ; 00000033H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5364 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode ; Line 5366 jmp $L7836 $L7703: cmp DWORD PTR _param1$7648[ebp], 22 ; 00000016H jne $L7706 ; Line 5369 push -1 push 0 push -1 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov DWORD PTR _g_robot$[ebp], eax ; Line 5371 cmp DWORD PTR _g_robot$[ebp], -1 je SHORT $L7707 ; Line 5373 push 0 push OFFSET FLAT:$SG7708 push 0 push 52 ; 00000034H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5374 mov eax, DWORD PTR _g_robot$[ebp] push eax push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5375 push 1106247680 ; 41f00000H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5377 jmp SHORT $L7709 $L7707: ; Line 5379 push 0 push OFFSET FLAT:$SG7710 push 1 push 53 ; 00000035H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7709: ; Line 5382 jmp $L7836 $L7706: cmp DWORD PTR _param1$7648[ebp], 20 ; 00000014H jne $L7712 ; Line 5385 push -1 push 0 push -1 push 7 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+60], eax ; Line 5387 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+60], -1 je SHORT $L7713 ; Line 5389 push 0 push OFFSET FLAT:$SG7714 push 0 push 54 ; 00000036H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5390 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+60] push ecx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5391 push 1077936128 ; 40400000H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5393 jmp SHORT $L7715 $L7713: ; Line 5395 push 0 push OFFSET FLAT:$SG7716 push 1 push 55 ; 00000037H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7715: ; Line 5398 jmp $L7836 $L7712: cmp DWORD PTR _param1$7648[ebp], 26 ; 0000001aH jne $L7718 ; Line 5401 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax push 0 push -1 push 15 ; 0000000fH mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+60], eax ; Line 5403 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+60], -1 je $L7719 ; Line 5408 push 0 lea ecx, DWORD PTR _marker_message$7721[ebp] push ecx push 20 ; 00000014H push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+60] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5410 lea edx, DWORD PTR _marker_message$7721[ebp] push edx call _strlen add esp, 4 cmp eax, 20 ; 00000014H jbe SHORT $L7722 ; Line 5412 mov BYTE PTR _marker_message$7721[ebp+17], 0 $L7724: ; Line 5414 lea eax, DWORD PTR _marker_message$7721[ebp] push eax call _strlen add esp, 4 test eax, eax jbe SHORT $L7725 lea ecx, DWORD PTR _marker_message$7721[ebp] push ecx call _strlen add esp, 4 movsx edx, BYTE PTR _marker_message$7721[ebp+eax-1] cmp edx, 32 ; 00000020H jne SHORT $L7725 ; Line 5416 lea eax, DWORD PTR _marker_message$7721[ebp] push eax call _strlen add esp, 4 mov BYTE PTR _marker_message$7721[ebp+eax-1], 0 ; Line 5417 jmp SHORT $L7724 $L7725: ; Line 5419 push OFFSET FLAT:$SG7726 lea ecx, DWORD PTR _marker_message$7721[ebp] push ecx call _strcat add esp, 8 $L7722: ; Line 5422 lea edx, DWORD PTR _marker_message$7721[ebp] push edx push 56 ; 00000038H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea eax, DWORD PTR _message$7720[ebp] push eax call _sprintf add esp, 12 ; 0000000cH ; Line 5423 push 0 push OFFSET FLAT:$SG7727 push 0 lea ecx, DWORD PTR _message$7720[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5425 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+60] push ecx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5426 push 1077936128 ; 40400000H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5428 jmp SHORT $L7728 $L7719: ; Line 5430 push 0 push OFFSET FLAT:$SG7729 push 1 push 57 ; 00000039H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7728: ; Line 5433 jmp $L7836 $L7718: cmp DWORD PTR _param1$7648[ebp], 27 ; 0000001bH jl $L7731 cmp DWORD PTR _param1$7648[ebp], 34 ; 00000022H jg $L7731 ; Line 5435 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax push 0 mov ecx, DWORD PTR _param1$7648[ebp] sub ecx, 27 ; 0000001bH push ecx push 15 ; 0000000fH mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+60], eax ; Line 5437 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+60], -1 je $L7732 ; Line 5442 push 0 lea edx, DWORD PTR _marker_message$7734[ebp] push edx push 20 ; 00000014H push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+60] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5444 xor eax, eax test eax, eax je SHORT $L7735 ; Line 5446 mov BYTE PTR _marker_message$7734[ebp+17], 0 $L7737: ; Line 5448 lea ecx, DWORD PTR _marker_message$7734[ebp] push ecx call _strlen add esp, 4 test eax, eax jbe SHORT $L7738 lea edx, DWORD PTR _marker_message$7734[ebp] push edx call _strlen add esp, 4 movsx eax, BYTE PTR _marker_message$7734[ebp+eax-1] cmp eax, 32 ; 00000020H jne SHORT $L7738 ; Line 5450 lea ecx, DWORD PTR _marker_message$7734[ebp] push ecx call _strlen add esp, 4 mov BYTE PTR _marker_message$7734[ebp+eax-1], 0 ; Line 5451 jmp SHORT $L7737 $L7738: ; Line 5453 push OFFSET FLAT:$SG7739 lea edx, DWORD PTR _marker_message$7734[ebp] push edx call _strcat add esp, 8 $L7735: ; Line 5456 lea eax, DWORD PTR _marker_message$7734[ebp] push eax push 56 ; 00000038H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea ecx, DWORD PTR _message$7733[ebp] push ecx call _sprintf add esp, 12 ; 0000000cH ; Line 5457 push 0 push OFFSET FLAT:$SG7740 push 0 lea edx, DWORD PTR _message$7733[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5459 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+60] push edx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5460 push 1077936128 ; 40400000H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5462 jmp SHORT $L7741 $L7732: ; Line 5464 push 0 push OFFSET FLAT:$SG7742 push 1 push 58 ; 0000003aH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7741: ; Line 5467 jmp $L7836 $L7731: cmp DWORD PTR _param1$7648[ebp], 23 ; 00000017H jne $L7744 ; Line 5469 push OFFSET FLAT:$SG7746 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _id$7745[ebp], eax ; Line 5471 push -1 push 0 mov edx, DWORD PTR _id$7745[ebp] push edx push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+60], eax ; Line 5473 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+60], -1 je $L7747 ; Line 5475 call _rand cmp eax, 16383 ; 00003fffH jle SHORT $L7748 ; Line 5476 push 0 push OFFSET FLAT:$SG7749 push 0 push 59 ; 0000003bH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5477 jmp SHORT $L7750 $L7748: ; Line 5478 push 0 push OFFSET FLAT:$SG7751 push 0 push 60 ; 0000003cH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7750: ; Line 5480 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+60] push ecx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5481 push 1077936128 ; 40400000H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5483 jmp SHORT $L7752 $L7747: ; Line 5485 push 0 push OFFSET FLAT:$SG7753 push 1 push 61 ; 0000003dH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7752: ; Line 5488 jmp $L7836 $L7744: cmp DWORD PTR _param1$7648[ebp], 19 ; 00000013H jne $L7755 ; Line 5490 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax push 0 push -1 push 7 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov DWORD PTR [ecx+60], eax ; Line 5492 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+60], -1 je SHORT $L7756 ; Line 5494 push 0 push OFFSET FLAT:$SG7757 push 0 push 62 ; 0000003eH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5495 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+60] push eax push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5496 push 1077936128 ; 40400000H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5498 jmp SHORT $L7758 $L7756: ; Line 5500 push 0 push OFFSET FLAT:$SG7759 push 1 push 63 ; 0000003fH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7758: ; Line 5503 jmp $L7836 $L7755: cmp DWORD PTR _param1$7648[ebp], 42 ; 0000002aH jne SHORT $L7761 ; Line 5505 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] or edx, 8 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+88], edx ; Line 5506 push 0 push OFFSET FLAT:$SG7762 push 1 push 64 ; 00000040H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5508 jmp $L7836 $L7761: cmp DWORD PTR _param1$7648[ebp], 41 ; 00000029H jne SHORT $L7764 ; Line 5510 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+88] and ecx, -9 ; fffffff7H mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+88], ecx ; Line 5511 push 0 push OFFSET FLAT:$SG7765 push 0 push 65 ; 00000041H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5513 jmp $L7836 $L7764: cmp DWORD PTR _param1$7648[ebp], 21 ; 00000015H jne $L7767 ; Line 5515 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_FindEnergyCenter@@3P6AHH@ZA ; AI_FindEnergyCenter add esp, 4 mov DWORD PTR _roomnum$[ebp], eax ; Line 5517 push 0 lea edx, DWORD PTR _f_used$7768[ebp] push edx push 2 push 1 mov eax, DWORD PTR _roomnum$[ebp] push eax call DWORD PTR ?Room_Value@@3P6AXHDDPAXH@ZA ; Room_Value add esp, 20 ; 00000014H ; Line 5519 movsx ecx, BYTE PTR _f_used$7768[ebp] test ecx, ecx je SHORT $L7769 ; Line 5521 push 1 lea edx, DWORD PTR _pos$[ebp] push edx push 4 push 1 mov eax, DWORD PTR _roomnum$[ebp] push eax call DWORD PTR ?Room_Value@@3P6AXHDDPAXH@ZA ; Room_Value add esp, 20 ; 00000014H ; Line 5522 mov ecx, DWORD PTR _roomnum$[ebp] push ecx lea edx, DWORD PTR _pos$[ebp] push edx push 12 ; 0000000cH push -1 push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 5523 push 1101004800 ; 41a00000H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5525 push 0 push OFFSET FLAT:$SG7770 push 0 push 66 ; 00000042H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5527 jmp SHORT $L7771 $L7769: ; Line 5529 push 0 push OFFSET FLAT:$SG7772 push 1 push 67 ; 00000043H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7771: ; Line 5532 jmp $L7836 $L7767: cmp DWORD PTR _param1$7648[ebp], 1 jne $L7774 ; Line 5535 push 0 lea edx, DWORD PTR _shields$7775[ebp] push edx push 0 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5537 call DWORD PTR ?Game_GetDiffLevel@@3P6ADXZA ; Game_GetDiffLevel movsx eax, al imul eax, 5 add eax, 5 mov DWORD PTR -5044+[ebp], eax fild DWORD PTR -5044+[ebp] fcomp DWORD PTR _shields$7775[ebp] fnstsw ax test ah, 65 ; 00000041H je $L7776 ; Line 5539 call DWORD PTR ?Game_GetDiffLevel@@3P6ADXZA ; Game_GetDiffLevel movsx ecx, al imul ecx, 5 add ecx, 5 mov DWORD PTR -5048+[ebp], ecx fild DWORD PTR -5048+[ebp] fsubr DWORD PTR _shields$7775[ebp] fstp DWORD PTR _shields$7775[ebp] ; Line 5541 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+88] and ecx, -2 ; fffffffeH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+88], ecx ; Line 5542 push 0 lea ecx, DWORD PTR _shields$7775[ebp] push ecx push 0 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5544 push 1 push OFFSET FLAT:$SG7777 push 0 push 68 ; 00000044H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5546 mov DWORD PTR _gb_shields$7778[ebp], 1132068864 ; 437a0000H ; Line 5547 mov DWORD PTR _flags$7779[ebp], 8388608 ; 00800000H ; Line 5549 push 0 lea edx, DWORD PTR _flags$7779[ebp] push edx push 10 ; 0000000aH push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5550 push 0 lea ecx, DWORD PTR _gb_shields$7778[ebp] push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5552 mov DWORD PTR _flags$7779[ebp], 33554432 ; 02000000H ; Line 5553 lea eax, DWORD PTR _flags$7779[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5554 push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH ; Line 5556 jmp SHORT $L7780 $L7776: ; Line 5558 push 1 push OFFSET FLAT:$SG7781 push 1 push 69 ; 00000045H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7780: ; Line 5561 jmp $L7836 $L7774: cmp DWORD PTR _param1$7648[ebp], 2 jne SHORT $L7783 ; Line 5564 lea eax, DWORD PTR _ei$7784[ebp] push eax push 263 ; 00000107H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Obj_CallEvent add esp, 12 ; 0000000cH ; Line 5566 jmp $L7836 $L7783: cmp DWORD PTR _param1$7648[ebp], 36 ; 00000024H jl $L7786 cmp DWORD PTR _param1$7648[ebp], 41 ; 00000029H jge $L7786 ; Line 5569 mov BYTE PTR _f_do$7788[ebp], 1 ; Line 5572 mov edx, DWORD PTR _param1$7648[ebp] sub edx, 36 ; 00000024H mov DWORD PTR -5052+[ebp], edx cmp DWORD PTR -5052+[ebp], 0 je SHORT $L7793 cmp DWORD PTR -5052+[ebp], 1 je $L7813 cmp DWORD PTR -5052+[ebp], 4 je SHORT $L7794 jmp $L7790 $L7793: ; Line 5575 push 0 mov ecx, DWORD PTR _this$[ebp] call ?InitExtinguish@GuideBot@@AAE_N_N@Z ; GuideBot::InitExtinguish mov BYTE PTR _f_do$7788[ebp], al ; Line 5577 jmp $L7790 $L7794: ; Line 5585 mov DWORD PTR _n_converted$7799[ebp], 0 ; Line 5588 push 0 lea eax, DWORD PTR _pos$7795[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+100] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5589 push 0 lea ecx, DWORD PTR _room$7796[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+100] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5591 push 1 push 0 push 0 push 0 push 25 ; 00000019H lea edx, DWORD PTR _scan_objs$7798[ebp] push edx push 1120403456 ; 42c80000H mov eax, DWORD PTR _room$7796[ebp] push eax lea ecx, DWORD PTR _pos$7795[ebp] push ecx call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$7797[ebp], eax ; Line 5593 mov DWORD PTR _i$7800[ebp], 0 jmp SHORT $L7801 $L7802: mov edx, DWORD PTR _i$7800[ebp] add edx, 1 mov DWORD PTR _i$7800[ebp], edx $L7801: mov eax, DWORD PTR _i$7800[ebp] cmp eax, DWORD PTR _n_scan$7797[ebp] jge $L7803 ; Line 5595 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx+140], 100 ; 00000064H jl SHORT $L7804 ; Line 5596 jmp $L7803 $L7804: ; Line 5598 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$7800[ebp] mov eax, DWORD PTR _scan_objs$7798[ebp+edx*4] cmp eax, DWORD PTR [ecx+100] je $L7806 ; Line 5600 mov ecx, DWORD PTR _i$7800[ebp] mov edx, DWORD PTR _scan_objs$7798[ebp+ecx*4] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+100] push edx call DWORD PTR ?AI_IsObjEnemy@@3P6A_NHH@ZA ; AI_IsObjEnemy add esp, 8 and eax, 255 ; 000000ffH test eax, eax je $L7806 ; Line 5605 push 0 lea eax, DWORD PTR _mstruct$7807[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+100] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5606 push 0 lea ecx, DWORD PTR _mstruct$7807[ebp+176] push ecx push 3 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+100] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5607 push 0 lea edx, DWORD PTR _mstruct$7807[ebp+652] push edx push 3 push 1 mov eax, DWORD PTR _i$7800[ebp] mov ecx, DWORD PTR _scan_objs$7798[ebp+eax*4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5609 mov DWORD PTR _mstruct$7807[ebp+576], 1069547520 ; 3fc00000H ; Line 5610 mov DWORD PTR _mstruct$7807[ebp+580], 1086324736 ; 40c00000H ; Line 5612 mov DWORD PTR _mstruct$7807[ebp+272], 1065353216 ; 3f800000H ; Line 5613 mov DWORD PTR _mstruct$7807[ebp+588], 1 ; Line 5614 mov DWORD PTR _mstruct$7807[ebp+264], 3 ; Line 5615 push OFFSET FLAT:$SG7809 call DWORD PTR ?Scrpt_FindTextureName@@3P6AHPAD@ZA ; Scrpt_FindTextureName add esp, 4 mov WORD PTR _mstruct$7807[ebp+6], ax ; Line 5616 mov DWORD PTR _mstruct$7807[ebp+568], 16912 ; 00004210H ; Line 5618 mov BYTE PTR _mstruct$7807[ebp+276], 0 ; Line 5619 mov DWORD PTR _mstruct$7807[ebp+592], 0 ; Line 5621 lea edx, DWORD PTR _mstruct$7807[ebp] push edx push 103 ; 00000067H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 5623 mov DWORD PTR _flags$7810[ebp], 196608 ; 00030000H ; Line 5624 lea eax, DWORD PTR _flags$7810[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _i$7800[ebp] mov edx, DWORD PTR _scan_objs$7798[ebp+ecx*4] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5625 mov DWORD PTR _flags$7810[ebp], 65536 ; 00010000H ; Line 5626 lea eax, DWORD PTR _flags$7810[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _i$7800[ebp] mov edx, DWORD PTR _scan_objs$7798[ebp+ecx*4] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5628 mov DWORD PTR _target_handle$7811[ebp], -1 ; Line 5629 lea eax, DWORD PTR _target_handle$7811[ebp] push eax push 19 ; 00000013H push 0 mov ecx, DWORD PTR _i$7800[ebp] mov edx, DWORD PTR _scan_objs$7798[ebp+ecx*4] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 5631 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4003f000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR [eax+140] fstp DWORD PTR [ecx+edx*4+544] ; Line 5632 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR [eax+140] mov eax, DWORD PTR _i$7800[ebp] mov eax, DWORD PTR _scan_objs$7798[ebp+eax*4] mov DWORD PTR [ecx+edx*4+144], eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+140] add eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+140], eax ; Line 5634 mov eax, DWORD PTR _n_converted$7799[ebp] add eax, 1 mov DWORD PTR _n_converted$7799[ebp], eax $L7806: ; Line 5637 jmp $L7802 $L7803: ; Line 5639 cmp DWORD PTR _n_converted$7799[ebp], 0 jle SHORT $L7812 ; Line 5641 mov BYTE PTR _f_do$7788[ebp], 1 $L7812: ; Line 5644 jmp SHORT $L7790 $L7813: ; Line 5648 push 9 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode ; Line 5649 mov BYTE PTR _f_do$7788[ebp], 1 $L7790: ; Line 5654 mov edx, DWORD PTR _f_do$7788[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L7814 ; Line 5656 mov eax, DWORD PTR _param1$7648[ebp] mov ecx, DWORD PTR ?gb_pow_text@@3PAHA[eax*4-144] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push OFFSET FLAT:$SG7815 lea edx, DWORD PTR _pow_message$7787[ebp] push edx call _sprintf add esp, 12 ; 0000000cH ; Line 5657 push 0 push OFFSET FLAT:$SG7816 push 0 lea eax, DWORD PTR _pow_message$7787[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5658 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _param1$7648[ebp] mov cl, BYTE PTR [edx+eax-28] sub cl, 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR _param1$7648[ebp] mov BYTE PTR [eax+edx-28], cl ; Line 5660 jmp SHORT $L7817 $L7814: ; Line 5662 mov eax, DWORD PTR _param1$7648[ebp] mov ecx, DWORD PTR ?gb_pow_not_text@@3PAHA[eax*4-144] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push OFFSET FLAT:$SG7818 lea edx, DWORD PTR _pow_message$7787[ebp] push edx call _sprintf add esp, 12 ; 0000000cH ; Line 5663 push 0 push OFFSET FLAT:$SG7819 push 0 lea eax, DWORD PTR _pow_message$7787[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7817: ; Line 5666 jmp $L7836 $L7786: cmp DWORD PTR _param1$7648[ebp], 0 jne $L7821 ; Line 5669 mov ecx, DWORD PTR _command$[ebp] mov edx, DWORD PTR [ecx+4] push edx call _strlen add esp, 4 test eax, eax jbe $L7824 ; Line 5671 push 7 mov eax, DWORD PTR _command$[ebp] mov ecx, DWORD PTR [eax+4] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] push eax call _strncpy add esp, 12 ; 0000000cH ; Line 5672 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] push edx push 11 ; 0000000bH push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 5674 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+7], 0 ; Line 5676 mov edx, DWORD PTR _command$[ebp] mov eax, DWORD PTR [edx+4] push eax push 70 ; 00000046H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea ecx, DWORD PTR _str$7822[ebp] push ecx call _sprintf add esp, 12 ; 0000000cH ; Line 5677 push 0 push OFFSET FLAT:$SG7827 push 1 lea edx, DWORD PTR _str$7822[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5679 jmp SHORT $L7828 $L7824: ; Line 5681 mov eax, DWORD PTR _command$[ebp] mov ecx, DWORD PTR [eax+4] push ecx push 71 ; 00000047H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea edx, DWORD PTR _str$7822[ebp] push edx call _sprintf add esp, 12 ; 0000000cH ; Line 5682 push 0 push OFFSET FLAT:$SG7830 push 1 lea eax, DWORD PTR _str$7822[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7828: ; Line 5684 jmp SHORT $L7836 $L7821: cmp DWORD PTR _param1$7648[ebp], 44 ; 0000002cH jne SHORT $L7832 ; Line 5686 mov ecx, DWORD PTR _command$[ebp] mov edx, DWORD PTR [ecx+4] push edx call _strlen add esp, 4 test eax, eax jbe SHORT $L7834 ; Line 5688 push 7 mov eax, DWORD PTR _command$[ebp] mov ecx, DWORD PTR [eax+4] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] push eax call _strncpy add esp, 12 ; 0000000cH ; Line 5689 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+7], 0 $L7834: ; Line 5692 jmp SHORT $L7836 $L7832: ; Line 5695 mov eax, DWORD PTR _param1$7648[ebp] push eax push 72 ; 00000048H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea ecx, DWORD PTR _str$7837[ebp] push ecx call _sprintf add esp, 12 ; 0000000cH ; Line 5696 push 1 push OFFSET FLAT:$SG7838 push 1 lea edx, DWORD PTR _str$7837[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7836: ; Line 5699 jmp $L7885 $L7647: mov eax, DWORD PTR _command$[ebp] movsx ecx, BYTE PTR [eax] test ecx, ecx jne $L7840 ; Line 5702 mov edx, DWORD PTR _command$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR _menu$7842[ebp], eax ; Line 5703 mov DWORD PTR _cur_command$7844[ebp], 0 ; Line 5705 push 73 ; 00000049H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _menu$7842[ebp] push ecx call _strcpy add esp, 8 ; Line 5708 lea edx, DWORD PTR _gbc_list$7845[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?MakeCommandList@GuideBot@@AAEHPAH@Z ; GuideBot::MakeCommandList mov ecx, DWORD PTR _menu$7842[ebp] mov DWORD PTR [ecx+256], eax ; Line 5710 mov DWORD PTR _i$7841[ebp], 0 jmp SHORT $L7846 $L7847: mov edx, DWORD PTR _i$7841[ebp] add edx, 1 mov DWORD PTR _i$7841[ebp], edx $L7846: mov eax, DWORD PTR _menu$7842[ebp] mov ecx, DWORD PTR _i$7841[ebp] cmp ecx, DWORD PTR [eax+256] jge $L7848 ; Line 5712 mov edx, DWORD PTR _i$7841[ebp] mov eax, DWORD PTR _gbc_list$7845[ebp+edx*4] mov DWORD PTR _c_index$7849[ebp], eax ; Line 5714 cmp DWORD PTR _c_index$7849[ebp], 27 ; 0000001bH jl $L7850 cmp DWORD PTR _c_index$7849[ebp], 34 ; 00000022H jg $L7850 ; Line 5716 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax push 0 mov ecx, DWORD PTR _c_index$7849[ebp] sub ecx, 27 ; 0000001bH push ecx push 15 ; 0000000fH mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+60], eax ; Line 5721 push 0 lea eax, DWORD PTR _marker_message$7852[ebp] push eax push 20 ; 00000014H push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+60] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5723 xor ecx, ecx test ecx, ecx je SHORT $L7853 ; Line 5725 mov BYTE PTR _marker_message$7852[ebp+11], 0 $L7855: ; Line 5727 lea edx, DWORD PTR _marker_message$7852[ebp] push edx call _strlen add esp, 4 test eax, eax jbe SHORT $L7856 lea eax, DWORD PTR _marker_message$7852[ebp] push eax call _strlen add esp, 4 movsx ecx, BYTE PTR _marker_message$7852[ebp+eax-1] cmp ecx, 32 ; 00000020H jne SHORT $L7856 ; Line 5729 lea edx, DWORD PTR _marker_message$7852[ebp] push edx call _strlen add esp, 4 mov BYTE PTR _marker_message$7852[ebp+eax-1], 0 ; Line 5730 jmp SHORT $L7855 $L7856: ; Line 5732 push OFFSET FLAT:$SG7857 lea eax, DWORD PTR _marker_message$7852[ebp] push eax call _strcat add esp, 8 $L7853: ; Line 5735 lea ecx, DWORD PTR _marker_message$7852[ebp] push ecx push 74 ; 0000004aH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea edx, DWORD PTR _message$7851[ebp] push edx call _sprintf add esp, 12 ; 0000000cH ; Line 5736 lea eax, DWORD PTR _message$7851[ebp] push eax mov ecx, DWORD PTR _i$7841[ebp] shl ecx, 8 mov edx, DWORD PTR _menu$7842[ebp] lea eax, DWORD PTR [edx+ecx+260] push eax call _strcpy add esp, 8 ; Line 5738 jmp $L7876 $L7850: cmp DWORD PTR _c_index$7849[ebp], 3 jl $L7859 cmp DWORD PTR _c_index$7849[ebp], 10 ; 0000000aH jg $L7859 ; Line 5743 push -1 mov ecx, DWORD PTR _c_index$7849[ebp] sub ecx, 3 push ecx lea edx, DWORD PTR _g_id$7860[ebp] push edx push 2 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5744 push -1 mov eax, DWORD PTR _g_id$7860[ebp] push eax lea ecx, DWORD PTR _message$7861[ebp] push ecx push 7 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5746 xor edx, edx test edx, edx je SHORT $L7862 ; Line 5748 mov BYTE PTR _message$7861[ebp+18], 0 $L7864: ; Line 5750 lea eax, DWORD PTR _message$7861[ebp] push eax call _strlen add esp, 4 test eax, eax jbe SHORT $L7865 lea ecx, DWORD PTR _message$7861[ebp] push ecx call _strlen add esp, 4 movsx edx, BYTE PTR _message$7861[ebp+eax-1] cmp edx, 32 ; 00000020H jne SHORT $L7865 ; Line 5752 lea eax, DWORD PTR _message$7861[ebp] push eax call _strlen add esp, 4 mov BYTE PTR _message$7861[ebp+eax-1], 0 ; Line 5753 jmp SHORT $L7864 $L7865: ; Line 5755 push OFFSET FLAT:$SG7866 lea ecx, DWORD PTR _message$7861[ebp] push ecx call _strcat add esp, 8 $L7862: ; Line 5757 lea edx, DWORD PTR _message$7861[ebp] push edx push 75 ; 0000004bH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov eax, DWORD PTR _i$7841[ebp] shl eax, 8 mov ecx, DWORD PTR _menu$7842[ebp] lea edx, DWORD PTR [ecx+eax+260] push edx call _sprintf add esp, 12 ; 0000000cH ; Line 5759 jmp $L7876 $L7859: cmp DWORD PTR _c_index$7849[ebp], 11 ; 0000000bH jl $L7868 cmp DWORD PTR _c_index$7849[ebp], 18 ; 00000012H jg $L7868 ; Line 5764 push -1 mov eax, DWORD PTR _c_index$7849[ebp] sub eax, 11 ; 0000000bH push eax lea ecx, DWORD PTR _g_id$7869[ebp] push ecx push 4 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5765 push -1 mov edx, DWORD PTR _g_id$7869[ebp] push edx lea eax, DWORD PTR _message$7870[ebp] push eax push 7 push 1 call DWORD PTR ?LGoal_Value@@3P6AXDDPAXHH@ZA ; LGoal_Value add esp, 20 ; 00000014H ; Line 5767 xor ecx, ecx test ecx, ecx je SHORT $L7871 ; Line 5769 mov BYTE PTR _message$7870[ebp+18], 0 $L7873: ; Line 5771 lea edx, DWORD PTR _message$7870[ebp] push edx call _strlen add esp, 4 test eax, eax jbe SHORT $L7874 lea eax, DWORD PTR _message$7870[ebp] push eax call _strlen add esp, 4 movsx ecx, BYTE PTR _message$7870[ebp+eax-1] cmp ecx, 32 ; 00000020H jne SHORT $L7874 ; Line 5773 lea edx, DWORD PTR _message$7870[ebp] push edx call _strlen add esp, 4 mov BYTE PTR _message$7870[ebp+eax-1], 0 ; Line 5774 jmp SHORT $L7873 $L7874: ; Line 5776 push OFFSET FLAT:$SG7875 lea eax, DWORD PTR _message$7870[ebp] push eax call _strcat add esp, 8 $L7871: ; Line 5778 lea ecx, DWORD PTR _message$7870[ebp] push ecx push 75 ; 0000004bH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov edx, DWORD PTR _i$7841[ebp] shl edx, 8 mov eax, DWORD PTR _menu$7842[ebp] lea ecx, DWORD PTR [eax+edx+260] push ecx call _sprintf add esp, 12 ; 0000000cH ; Line 5780 jmp SHORT $L7876 $L7868: ; Line 5781 mov edx, DWORD PTR _i$7841[ebp] mov eax, DWORD PTR _gbc_list$7845[ebp+edx*4] mov ecx, DWORD PTR ?gb_command_text@@3PAHA[eax*4] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov edx, DWORD PTR _i$7841[ebp] shl edx, 8 mov eax, DWORD PTR _menu$7842[ebp] lea ecx, DWORD PTR [eax+edx+260] push ecx call _strcpy add esp, 8 $L7876: ; Line 5783 mov edx, DWORD PTR _i$7841[ebp] cmp DWORD PTR _gbc_list$7845[ebp+edx*4], 1 jne SHORT $L7877 ; Line 5786 call DWORD PTR ?Game_GetDiffLevel@@3P6ADXZA ; Game_GetDiffLevel movsx eax, al imul eax, 5 add eax, 5 push eax push 76 ; 0000004cH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea ecx, DWORD PTR _message$7878[ebp] push ecx call _sprintf add esp, 12 ; 0000000cH ; Line 5787 lea edx, DWORD PTR _message$7878[ebp] push edx mov eax, DWORD PTR _i$7841[ebp] shl eax, 8 mov ecx, DWORD PTR _menu$7842[ebp] lea edx, DWORD PTR [ecx+eax+260] push edx call _strcat add esp, 8 $L7877: ; Line 5790 mov eax, DWORD PTR _menu$7842[ebp] add eax, DWORD PTR _i$7841[ebp] mov ecx, DWORD PTR _i$7841[ebp] mov dl, BYTE PTR _gbc_list$7845[ebp+ecx*4] mov BYTE PTR [eax+15620], dl ; Line 5791 mov eax, DWORD PTR _menu$7842[ebp] add eax, DWORD PTR _i$7841[ebp] mov BYTE PTR [eax+15680], 0 ; Line 5793 mov ecx, DWORD PTR _i$7841[ebp] cmp DWORD PTR _gbc_list$7845[ebp+ecx*4], 0 jne SHORT $L7879 ; Line 5795 mov edx, DWORD PTR _menu$7842[ebp] add edx, DWORD PTR _i$7841[ebp] mov BYTE PTR [edx+15680], 1 ; Line 5796 push 77 ; 0000004dH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov eax, DWORD PTR _i$7841[ebp] shl eax, 8 mov ecx, DWORD PTR _menu$7842[ebp] lea edx, DWORD PTR [ecx+eax+15740] push edx call _strcpy add esp, 8 $L7879: ; Line 5798 jmp $L7847 $L7848: ; Line 5800 jmp $L7885 $L7840: mov eax, DWORD PTR _command$[ebp] movsx ecx, BYTE PTR [eax] cmp ecx, 4 jne SHORT $L7881 ; Line 5802 mov edx, DWORD PTR _it$[ebp] push edx push 2 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetSubMode@GuideBot@@AAE_NHDH@Z ; GuideBot::SetSubMode ; Line 5804 jmp $L7885 $L7881: mov ecx, DWORD PTR _command$[ebp] movsx edx, BYTE PTR [ecx] cmp edx, 5 jne $L7885 ; Line 5806 mov eax, DWORD PTR _command$[ebp] movsx ecx, BYTE PTR [eax+1] mov DWORD PTR _type$7884[ebp], ecx ; Line 5808 cmp DWORD PTR _type$7884[ebp], 0 jl $L7885 cmp DWORD PTR _type$7884[ebp], 5 jg $L7885 ; Line 5810 push OFFSET FLAT:$SG7887 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _s_id$7886[ebp], eax ; Line 5811 push 1065353216 ; 3f800000H mov edx, DWORD PTR _s_id$7886[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH ; Line 5813 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _type$7884[ebp] mov cl, BYTE PTR [edx+eax+8] add cl, 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR _type$7884[ebp] mov BYTE PTR [eax+edx+8], cl ; Line 5814 push 0 push OFFSET FLAT:$SG7888 push 1 mov eax, DWORD PTR _type$7884[ebp] mov ecx, DWORD PTR ?gb_pow_pickup_text@@3PAHA[eax*4] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5815 push -1 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetSubMode@GuideBot@@AAE_NHDH@Z ; GuideBot::SetSubMode ; Line 5818 mov eax, DWORD PTR _it$[ebp] mov DWORD PTR _mo$7889[ebp+44], eax ; Line 5820 lea ecx, DWORD PTR _mo$7889[ebp] push ecx push 37 ; 00000025H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L7885: ; Line 5824 mov al, 1 $L7639: ; Line 5825 mov esp, ebp pop ebp ret 12 ; 0000000cH ?DoExternalCommands@GuideBot@@AAE_NHPAUgb_com@@H@Z ENDP ; GuideBot::DoExternalCommands _TEXT ENDS PUBLIC __real@8@3ffe9999999999999800 PUBLIC __real@8@3ffdccccccccccccd000 PUBLIC __real@8@4001a000000000000000 PUBLIC __real@8@3ffeb333333333333000 PUBLIC ?DoCollide@GuideBot@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z ; GuideBot::DoCollide _DATA SEGMENT ORG $+3 $SG7909 DB 'GBotConcern1', 00H ORG $+3 $SG7912 DB 'GBotConcern1', 00H ORG $+3 $SG7915 DB 'GBotConcern1', 00H ORG $+3 $SG7919 DB 'GBotConcern1', 00H ORG $+3 $SG7921 DB 'GBotConcern1', 00H _DATA ENDS ; COMDAT __real@8@3ffe9999999999999800 ; File aigame.cpp CONST SEGMENT __real@8@3ffe9999999999999800 DQ 03fe3333333333333r ; 0.6 CONST ENDS ; COMDAT __real@8@3ffdccccccccccccd000 CONST SEGMENT __real@8@3ffdccccccccccccd000 DQ 03fd999999999999ar ; 0.4 CONST ENDS ; COMDAT __real@8@4001a000000000000000 CONST SEGMENT __real@8@4001a000000000000000 DQ 04014000000000000r ; 5 CONST ENDS ; COMDAT __real@8@3ffeb333333333333000 CONST SEGMENT __real@8@3ffeb333333333333000 DQ 03fe6666666666666r ; 0.7 CONST ENDS _TEXT SEGMENT _me$ = 8 _evt_collide$ = 12 _this$ = -24 _its_parent$ = -12 _rand_val$ = -8 _it_type$ = -4 _id$7903 = -20 ?DoCollide@GuideBot@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z PROC NEAR ; GuideBot::DoCollide ; File aigame.cpp ; Line 5828 push ebp mov ebp, esp sub esp, 36 ; 00000024H mov DWORD PTR _this$[ebp], ecx ; Line 5834 push 0 lea eax, DWORD PTR _it_type$[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _evt_collide$[ebp] mov edx, DWORD PTR [ecx] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5836 call _rand mov DWORD PTR -28+[ebp], eax fild DWORD PTR -28+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fstp DWORD PTR _rand_val$[ebp] ; Line 5839 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dl, BYTE PTR [ecx+49] cmp edx, 1 jne SHORT $L7901 ; Line 5841 cmp DWORD PTR _it_type$[ebp], 4 jne SHORT $L7904 ; Line 5844 push 0 lea eax, DWORD PTR _id$7903[ebp] push eax push 2 push 1 mov ecx, DWORD PTR _evt_collide$[ebp] mov edx, DWORD PTR [ecx] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5846 mov eax, DWORD PTR _id$7903[ebp] and eax, 65535 ; 0000ffffH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor ecx, ecx mov cx, WORD PTR [edx+40] cmp eax, ecx jne SHORT $L7904 ; Line 5848 push 12 ; 0000000cH mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode $L7904: ; Line 5852 jmp $L7920 $L7901: ; Line 5855 cmp DWORD PTR _it_type$[ebp], 5 jne $L7920 ; Line 5860 push 0 lea eax, DWORD PTR _its_parent$[ebp] push eax push 17 ; 00000011H push 1 mov ecx, DWORD PTR _evt_collide$[ebp] mov edx, DWORD PTR [ecx] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5862 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _its_parent$[ebp] cmp edx, DWORD PTR [ecx+44] jne $L7907 ; Line 5864 fld DWORD PTR _rand_val$[ebp] fcomp DWORD PTR __real@4@3ffecccccd0000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7908 ; Line 5866 push 0 push OFFSET FLAT:$SG7909 push 0 push 78 ; 0000004eH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5868 jmp SHORT $L7914 $L7908: fld DWORD PTR _rand_val$[ebp] fcomp QWORD PTR __real@8@3ffe9999999999999800 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7911 ; Line 5870 push 0 push OFFSET FLAT:$SG7912 push 0 push 79 ; 0000004fH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5872 jmp SHORT $L7914 $L7911: fld DWORD PTR _rand_val$[ebp] fcomp QWORD PTR __real@8@3ffdccccccccccccd000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7914 ; Line 5874 push 0 push OFFSET FLAT:$SG7915 push 0 push 80 ; 00000050H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7914: ; Line 5877 jmp SHORT $L7917 $L7907: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+92] fadd QWORD PTR __real@8@4001a000000000000000 fstp QWORD PTR -36+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld QWORD PTR -36+[ebp] fcompp $L7917: ; Line 5879 fld DWORD PTR _rand_val$[ebp] fcomp QWORD PTR __real@8@3ffeb333333333333000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7918 ; Line 5881 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx push 0 push -1 push 1065353216 ; 3f800000H push 2 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 5882 push 1109393408 ; 42200000H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 5884 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+92] ; Line 5886 push 0 push OFFSET FLAT:$SG7919 push 1 push 81 ; 00000051H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5888 jmp SHORT $L7920 $L7918: ; Line 5890 push 0 push OFFSET FLAT:$SG7921 push 1 push 82 ; 00000052H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7920: ; Line 5895 mov esp, ebp pop ebp ret 8 ?DoCollide@GuideBot@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z ENDP ; GuideBot::DoCollide _TEXT ENDS PUBLIC ?DoUse@GuideBot@@AAE_NH@Z ; GuideBot::DoUse _DATA SEGMENT ORG $+3 $SG7932 DB '1 Player %d', 0aH, 00H ORG $+3 $SG7933 DB '2 Player %d', 0aH, 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -52 _p_handle$ = -44 _buddy_handle$ = -48 _command$ = -36 _ei$ = -28 ?DoUse@GuideBot@@AAE_NH@Z PROC NEAR ; GuideBot::DoUse ; Line 5898 push ebp mov ebp, esp sub esp, 52 ; 00000034H mov DWORD PTR _this$[ebp], ecx ; Line 5909 push 0 lea eax, DWORD PTR _p_handle$[ebp] push eax push 17 ; 00000011H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5911 cmp DWORD PTR _p_handle$[ebp], -1 jne SHORT $L7930 ; Line 5913 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] mov DWORD PTR _p_handle$[ebp], ecx ; Line 5915 jmp SHORT $L7931 $L7930: ; Line 5917 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _p_handle$[ebp] mov DWORD PTR [eax+44], ecx $L7931: ; Line 5920 mov edx, DWORD PTR _p_handle$[ebp] push edx push OFFSET FLAT:$SG7932 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH ; Line 5921 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push OFFSET FLAT:$SG7933 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH ; Line 5923 push 0 lea eax, DWORD PTR _buddy_handle$[ebp] push eax push 6 push 1 mov ecx, DWORD PTR _p_handle$[ebp] push ecx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 5925 mov BYTE PTR _command$[ebp], 2 ; Line 5927 lea edx, DWORD PTR _command$[ebp] mov DWORD PTR _ei$[ebp+24], edx ; Line 5928 mov DWORD PTR _ei$[ebp], 16 ; 00000010H ; Line 5930 lea eax, DWORD PTR _ei$[ebp] push eax push 272 ; 00000110H mov ecx, DWORD PTR _buddy_handle$[ebp] push ecx call DWORD PTR ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Obj_CallEvent add esp, 12 ; 0000000cH ; Line 5931 mov esp, ebp pop ebp ret 4 ?DoUse@GuideBot@@AAE_NH@Z ENDP ; GuideBot::DoUse _TEXT ENDS _DATA SEGMENT ORG $+3 $SG7955 DB 'Buddyextinguisher', 00H ORG $+2 $SG7956 DB 'buddywingnut', 00H ORG $+3 $SG7957 DB 'buddycontrol', 00H ORG $+3 $SG7958 DB 'buddyassist', 00H $SG7959 DB 'buddyantivirus', 00H ORG $+1 $SG7960 DB 'buddyspeed', 00H ORG $+1 $SG7963 DB 'GBotConcern1', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _f_reinit$ = 12 _this$ = -104 _i$ = -28 _ch$ = -80 ?DoInit@GuideBot@@AAE_NH_N@Z PROC NEAR ; GuideBot::DoInit ; Line 5934 push ebp mov ebp, esp sub esp, 104 ; 00000068H mov DWORD PTR _this$[ebp], ecx ; Line 5944 mov WORD PTR _ch$[ebp+8], 4 ; Line 5945 mov DWORD PTR _ch$[ebp+12], 960 ; 000003c0H ; Line 5946 mov DWORD PTR _ch$[ebp], 0 ; Line 5947 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 5949 mov ecx, DWORD PTR _f_reinit$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx jne $L7950 ; Line 5951 lea edx, DWORD PTR _ch$[ebp] push edx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 5952 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+88], 0 ; Line 5954 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 44 ; 0000002cH push edx push 17 ; 00000011H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5955 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 40 ; 00000028H push edx push 2 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 5957 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] push ecx push 11 ; 0000000bH push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 5960 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+8], 3 ; Line 5961 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+9], 0 ; Line 5962 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+10], 0 ; Line 5963 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+11], 0 ; Line 5964 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+12], 0 ; Line 5965 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+13], 0 ; Line 5967 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L7952 $L7953: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L7952: cmp DWORD PTR _i$[ebp], 5 jge SHORT $L7954 ; Line 5969 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] mov DWORD PTR [ecx+edx*4+16], -1 ; Line 5970 jmp SHORT $L7953 $L7954: ; Line 5972 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _me$[ebp] mov DWORD PTR [ecx+100], edx ; Line 5974 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+52], 0 ; Line 5975 push 5 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 5977 push OFFSET FLAT:$SG7955 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+948], ax ; Line 5978 push OFFSET FLAT:$SG7956 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+950], ax ; Line 5979 push OFFSET FLAT:$SG7957 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+952], ax ; Line 5980 push OFFSET FLAT:$SG7958 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+954], ax ; Line 5981 push OFFSET FLAT:$SG7959 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+956], ax ; Line 5982 push OFFSET FLAT:$SG7960 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+958], ax ; Line 5984 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+140], 0 ; Line 5986 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+84] ; Line 5987 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+76] ; Line 5989 jmp SHORT $L7961 $L7950: ; Line 5992 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and edx, 1 test edx, edx je SHORT $L7962 ; Line 5994 push 1 push OFFSET FLAT:$SG7963 push 1 push 83 ; 00000053H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 5995 xor al, al jmp SHORT $L7940 $L7962: ; Line 6000 push 11 ; 0000000bH mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode ; Line 6001 push -1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetSubMode@GuideBot@@AAE_NHDH@Z ; GuideBot::SetSubMode $L7961: ; Line 6004 mov al, 1 $L7940: ; Line 6005 mov esp, ebp pop ebp ret 8 ?DoInit@GuideBot@@AAE_NH_N@Z ENDP ; GuideBot::DoInit _TEXT ENDS PUBLIC __real@4@400da665190000000000 PUBLIC ?DoNotify@GuideBot@@AAE_NHPAUtOSIRISEventInfo@@@Z ; GuideBot::DoNotify PUBLIC ?IsGoalFinishedNotify@@YA_NH@Z ; IsGoalFinishedNotify _DATA SEGMENT ORG $+3 $SG7977 DB 'GBotConcern1', 00H ORG $+3 $SG7981 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7987 DB 'GBotAcceptOrder1', 00H ORG $+3 $SG7992 DB 'GBotGreetB1', 00H $SG7994 DB 'GBotGreetB1', 00H _DATA ENDS ; COMDAT __real@4@400da665190000000000 ; File aigame.cpp CONST SEGMENT __real@4@400da665190000000000 DD 046a66519r ; 21298.5 CONST ENDS _TEXT SEGMENT _me$ = 8 _data$ = 12 _this$ = -20 _notify$ = -4 _type$7974 = -8 _command$7986 = -16 ?DoNotify@GuideBot@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; GuideBot::DoNotify ; File aigame.cpp ; Line 6008 push ebp mov ebp, esp sub esp, 28 ; 0000001cH mov DWORD PTR _this$[ebp], ecx ; Line 6009 mov eax, DWORD PTR _data$[ebp] mov DWORD PTR _notify$[ebp], eax ; Line 6011 mov ecx, DWORD PTR _notify$[ebp] cmp DWORD PTR [ecx], 16 ; 00000010H jne SHORT $L7970 ; Line 6013 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+4] push eax mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+24] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoExternalCommands@GuideBot@@AAE_NHPAUgb_com@@H@Z ; GuideBot::DoExternalCommands jmp $L7968 $L7970: ; Line 6015 mov ecx, DWORD PTR _notify$[ebp] cmp DWORD PTR [ecx], 6 jne $L7973 ; Line 6018 push 0 lea edx, DWORD PTR _type$7974[ebp] push edx push 1 push 1 mov eax, DWORD PTR _notify$[ebp] mov ecx, DWORD PTR [eax+4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6020 cmp DWORD PTR _type$7974[ebp], 4 jne SHORT $L7975 ; Line 6022 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _notify$[ebp] mov edx, DWORD PTR [ecx+4] cmp edx, DWORD PTR [eax+44] jne SHORT $L7976 ; Line 6024 push 0 push OFFSET FLAT:$SG7977 push 1 push 84 ; 00000054H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7976: ; Line 6027 jmp SHORT $L7980 $L7975: cmp DWORD PTR _type$7974[ebp], 2 jne SHORT $L7980 ; Line 6031 call _rand mov DWORD PTR -24+[ebp], eax fild DWORD PTR -24+[ebp] fcomp DWORD PTR __real@4@400da665190000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L7980 ; Line 6033 push 0 push OFFSET FLAT:$SG7981 push 0 push 85 ; 00000055H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7980: ; Line 6037 jmp $L7989 $L7973: mov eax, DWORD PTR _notify$[ebp] mov ecx, DWORD PTR [eax] push ecx call ?IsGoalFinishedNotify@@YA_NH@Z ; IsGoalFinishedNotify add esp, 4 and eax, 255 ; 000000ffH test eax, eax je $L7989 ; Line 6040 mov edx, DWORD PTR _notify$[ebp] cmp DWORD PTR [edx+8], 1 jne $L7984 ; Line 6042 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+76] fadd DWORD PTR __real@4@3fff8000000000000000 fstp DWORD PTR -28+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -28+[ebp] fnstsw ax test ah, 1 je SHORT $L7985 ; Line 6046 mov BYTE PTR _command$7986[ebp], 1 ; Line 6047 mov BYTE PTR _command$7986[ebp+1], 35 ; 00000023H ; Line 6048 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx lea edx, DWORD PTR _command$7986[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoExternalCommands@GuideBot@@AAE_NHPAUgb_com@@H@Z ; GuideBot::DoExternalCommands ; Line 6049 mov al, 1 jmp $L7968 $L7985: ; Line 6052 push 0 push OFFSET FLAT:$SG7987 push 0 push 86 ; 00000056H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 6053 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+76] ; Line 6055 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push 8 push -1 push 1065353216 ; 3f800000H push 2 push 4 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 6056 push 1106247680 ; 41f00000H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 6058 jmp SHORT $L7989 $L7984: mov edx, DWORD PTR _notify$[ebp] cmp DWORD PTR [edx+8], 2 jne SHORT $L7989 ; Line 6060 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx cmp edx, 75 ; 0000004bH jle SHORT $L7993 ; Line 6062 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx cmp edx, 50 ; 00000032H jle SHORT $L7991 ; Line 6063 push 0 push OFFSET FLAT:$SG7992 push 0 push 87 ; 00000057H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 6064 jmp SHORT $L7993 $L7991: ; Line 6065 push 0 push OFFSET FLAT:$SG7994 push 0 push 88 ; 00000058H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage $L7993: ; Line 6068 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+96] $L7989: ; Line 6072 mov al, 1 $L7968: ; Line 6073 mov esp, ebp pop ebp ret 8 ?DoNotify@GuideBot@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; GuideBot::DoNotify _TEXT ENDS ; COMDAT ?IsGoalFinishedNotify@@YA_NH@Z _TEXT SEGMENT _index$ = 8 ?IsGoalFinishedNotify@@YA_NH@Z PROC NEAR ; IsGoalFinishedNotify, COMDAT ; Line 2848 push ebp mov ebp, esp push ecx ; Line 2849 cmp DWORD PTR _index$[ebp], 9 je SHORT $L11312 cmp DWORD PTR _index$[ebp], 18 ; 00000012H je SHORT $L11312 cmp DWORD PTR _index$[ebp], 10 ; 0000000aH je SHORT $L11312 cmp DWORD PTR _index$[ebp], 11 ; 0000000bH je SHORT $L11312 mov DWORD PTR -4+[ebp], 0 jmp SHORT $L11313 $L11312: mov DWORD PTR -4+[ebp], 1 $L11313: mov al, BYTE PTR -4+[ebp] ; Line 2850 mov esp, ebp pop ebp ret 0 ?IsGoalFinishedNotify@@YA_NH@Z ENDP ; IsGoalFinishedNotify _TEXT ENDS PUBLIC ?DoPowerupCheck@GuideBot@@AAEXH@Z ; GuideBot::DoPowerupCheck _TEXT SEGMENT _me$ = 8 _this$ = -180 _pos$8000 = -124 _room$8001 = -112 _scan_objs$8002 = -104 _n_scan$8003 = -4 _i$8004 = -108 _type$8010 = -128 _id$8011 = -132 _f_for_me$8013 = -140 _j$8014 = -136 _command$8021 = -176 ?DoPowerupCheck@GuideBot@@AAEXH@Z PROC NEAR ; GuideBot::DoPowerupCheck ; Line 6076 push ebp mov ebp, esp sub esp, 188 ; 000000bcH push esi mov DWORD PTR _this$[ebp], ecx ; Line 6077 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+944] fnstsw ax test ah, 1 jne $L8009 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx+56], 0 jne $L8009 ; Line 6085 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@40008000000000000000 fstp DWORD PTR -184+[ebp] call _rand mov DWORD PTR -188+[ebp], eax fild DWORD PTR -188+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR -184+[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+944] ; Line 6087 push 0 lea edx, DWORD PTR _pos$8000[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6088 push 0 lea ecx, DWORD PTR _room$8001[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6090 push 1 push 0 push 1 push 0 push 25 ; 00000019H lea eax, DWORD PTR _scan_objs$8002[ebp] push eax push 1128792064 ; 43480000H mov ecx, DWORD PTR _room$8001[ebp] push ecx lea edx, DWORD PTR _pos$8000[ebp] push edx call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$8003[ebp], eax ; Line 6092 mov DWORD PTR _i$8004[ebp], 0 jmp SHORT $L8007 $L8008: mov eax, DWORD PTR _i$8004[ebp] add eax, 1 mov DWORD PTR _i$8004[ebp], eax $L8007: mov ecx, DWORD PTR _i$8004[ebp] cmp ecx, DWORD PTR _n_scan$8003[ebp] jge $L8009 ; Line 6096 push 0 lea edx, DWORD PTR _type$8010[ebp] push edx push 1 push 1 mov eax, DWORD PTR _i$8004[ebp] mov ecx, DWORD PTR _scan_objs$8002[ebp+eax*4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6097 push 0 lea edx, DWORD PTR _id$8011[ebp] push edx push 2 push 1 mov eax, DWORD PTR _i$8004[ebp] mov ecx, DWORD PTR _scan_objs$8002[ebp+eax*4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6099 cmp DWORD PTR _type$8010[ebp], 7 jne $L8019 ; Line 6101 mov BYTE PTR _f_for_me$8013[ebp], 0 ; Line 6104 mov DWORD PTR _j$8014[ebp], 0 jmp SHORT $L8015 $L8016: mov edx, DWORD PTR _j$8014[ebp] add edx, 1 mov DWORD PTR _j$8014[ebp], edx $L8015: cmp DWORD PTR _j$8014[ebp], 6 jge SHORT $L8017 ; Line 6106 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _j$8014[ebp] xor eax, eax mov ax, WORD PTR [ecx+edx*2+948] movsx ecx, WORD PTR _id$8011[ebp] cmp eax, ecx jne SHORT $L8018 ; Line 6108 mov BYTE PTR _f_for_me$8013[ebp], 1 ; Line 6109 jmp SHORT $L8017 $L8018: ; Line 6111 jmp SHORT $L8016 $L8017: ; Line 6113 mov edx, DWORD PTR _f_for_me$8013[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L8019 ; Line 6118 mov BYTE PTR _command$8021[ebp], 4 ; Line 6120 mov eax, DWORD PTR _i$8004[ebp] mov ecx, DWORD PTR _scan_objs$8002[ebp+eax*4] push ecx lea edx, DWORD PTR _command$8021[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoExternalCommands@GuideBot@@AAE_NHPAUgb_com@@H@Z ; GuideBot::DoExternalCommands ; Line 6122 jmp SHORT $L8009 $L8019: ; Line 6125 jmp $L8008 $L8009: ; Line 6127 pop esi mov esp, ebp pop ebp ret 4 ?DoPowerupCheck@GuideBot@@AAEXH@Z ENDP ; GuideBot::DoPowerupCheck _TEXT ENDS PUBLIC __real@4@40039000000000000000 PUBLIC __real@4@4003b800000000000000 PUBLIC __real@4@40048400000000000000 PUBLIC __real@4@3ffdf182aa0000000000 PUBLIC __real@4@3fffc000000000000000 PUBLIC __real@8@4003f000000000000000 PUBLIC __real@8@4002f000000000000000 PUBLIC __real@4@4005aa00000000000000 PUBLIC ?DoFrame@GuideBot@@AAEXH@Z ; GuideBot::DoFrame _DATA SEGMENT $SG8050 DB 'GBotEuphoria1', 00H ORG $+2 $SG8077 DB 'GBotEngineB1', 00H ORG $+3 $SG8086 DB 'GBotAcceptOrder1', 00H _DATA ENDS ; COMDAT __real@4@40039000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@40039000000000000000 DD 041900000r ; 18 CONST ENDS ; COMDAT __real@4@4003b800000000000000 CONST SEGMENT __real@4@4003b800000000000000 DD 041b80000r ; 23 CONST ENDS ; COMDAT __real@4@40048400000000000000 CONST SEGMENT __real@4@40048400000000000000 DD 042040000r ; 33 CONST ENDS ; COMDAT __real@4@3ffdf182aa0000000000 CONST SEGMENT __real@4@3ffdf182aa0000000000 DD 03ef182aar ; 0.4717 CONST ENDS ; COMDAT __real@4@3fffc000000000000000 CONST SEGMENT __real@4@3fffc000000000000000 DD 03fc00000r ; 1.5 CONST ENDS ; COMDAT __real@8@4003f000000000000000 CONST SEGMENT __real@8@4003f000000000000000 DQ 0403e000000000000r ; 30 CONST ENDS ; COMDAT __real@8@4002f000000000000000 CONST SEGMENT __real@8@4002f000000000000000 DQ 0402e000000000000r ; 15 CONST ENDS ; COMDAT __real@4@4005aa00000000000000 CONST SEGMENT __real@4@4005aa00000000000000 DD 042aa0000r ; 85 CONST ENDS _TEXT SEGMENT $T11316 = -1056 $T11317 = -1068 _me$ = 8 _this$ = -1072 _flags$ = -4 _anim$ = -8 _last_mode_time$ = -16 _dir_index$8045 = -20 _s_id$8049 = -24 _mstruct$8051 = -944 _flags$8053 = -948 _me_pos$8054 = -1008 _it_pos$8055 = -960 _orient$8056 = -996 _dir_to_goal$8057 = -1020 _i$8062 = -1024 _flags$8071 = -1028 _dir_index$8072 = -1032 _s_index$8076 = -1036 _time$8081 = -1040 _parent$8083 = -1044 ?DoFrame@GuideBot@@AAEXH@Z PROC NEAR ; GuideBot::DoFrame ; File aigame.cpp ; Line 6130 push ebp mov ebp, esp sub esp, 1080 ; 00000438H push esi mov DWORD PTR _this$[ebp], ecx ; Line 6136 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+52], 1 jne SHORT $L8030 ; Line 6137 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoPowerupCheck@GuideBot@@AAEXH@Z ; GuideBot::DoPowerupCheck $L8030: ; Line 6139 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+52], 1 jne SHORT $L8031 push 8 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+44] push ecx call DWORD PTR ?Obj_IsEffect@@3P6A_NHH@ZA ; Obj_IsEffect add esp, 8 and eax, 255 ; 000000ffH test eax, eax je SHORT $L8031 ; Line 6140 push 1 mov ecx, DWORD PTR _this$[ebp] call ?InitExtinguish@GuideBot@@AAE_N_N@Z ; GuideBot::InitExtinguish $L8031: ; Line 6142 push 0 lea edx, DWORD PTR _anim$[ebp] push edx push 18 ; 00000012H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6143 fld DWORD PTR _anim$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 jne SHORT $L8033 fld DWORD PTR _anim$[ebp] fcomp DWORD PTR __real@4@4002c000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8032 $L8033: ; Line 6145 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+88] or al, -128 ; ffffff80H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+88], eax ; Line 6147 jmp SHORT $L8034 $L8032: ; Line 6149 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and dl, 127 ; 0000007fH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+88], edx $L8034: ; Line 6152 push 0 lea edx, DWORD PTR _flags$[ebp] push edx push 10 ; 0000000aH push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6154 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+36] mov DWORD PTR _last_mode_time$[ebp], eax ; Line 6155 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+36] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+36] ; Line 6157 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx+52], 6 jne SHORT $L8035 ; Line 6160 jmp $L8084 $L8035: mov eax, DWORD PTR _flags$[ebp] and eax, 8388608 ; 00800000H test eax, eax je SHORT $L8037 ; Line 6162 push 6 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode ; Line 6164 jmp $L8084 $L8037: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+52], 11 ; 0000000bH jne SHORT $L8039 ; Line 6166 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+36] fcomp DWORD PTR __real@4@3fff99999a0000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8040 ; Line 6168 push 1 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode $L8040: ; Line 6171 jmp $L8025 $L8039: ; Line 6173 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx+52], 10 ; 0000000aH jne $L8042 ; Line 6175 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and edx, 128 ; 00000080H test edx, edx jne SHORT $L8043 fld DWORD PTR _last_mode_time$[ebp] fcomp DWORD PTR __real@4@3ffe8000000000000000 fnstsw ax test ah, 1 je SHORT $L8043 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+36] fcomp DWORD PTR __real@4@3ffe8000000000000000 fnstsw ax test ah, 1 jne SHORT $L8043 ; Line 6177 push -1 push -1 push 0 push 1065353216 ; 3f800000H push 1102577664 ; 41b80000H push 1094713344 ; 41400000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L8043: ; Line 6180 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fcomp DWORD PTR [ecx+80] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8044 ; Line 6182 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@3ffe99999a0000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+80] ; Line 6184 call _rand cdq mov ecx, 6 idiv ecx mov DWORD PTR _dir_index$8045[ebp], edx ; Line 6185 mov edx, DWORD PTR _dir_index$8045[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+112] push edx push 262148 ; 00040004H push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 6186 push 1101004800 ; 41a00000H push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH $L8044: ; Line 6189 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+36] fcomp DWORD PTR __real@4@4003c800000000000000 fnstsw ax test ah, 1 je $L8046 ; Line 6191 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+104] fcomp DWORD PTR __real@4@40039000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8047 fld DWORD PTR _anim$[ebp] fcomp DWORD PTR __real@4@40039000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8047 ; Line 6193 push -1 push -1 push 1 push 1069547520 ; 3fc00000H push 1107558400 ; 42040000H push 1102577664 ; 41b80000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 6194 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+88] or al, 32 ; 00000020H mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+88], eax $L8047: ; Line 6197 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] and edx, 32 ; 00000020H test edx, edx je $L8048 fld DWORD PTR _anim$[ebp] fcomp DWORD PTR __real@4@4003b800000000000000 fnstsw ax test ah, 1 jne $L8048 fld DWORD PTR _anim$[ebp] fcomp DWORD PTR __real@4@40048400000000000000 fnstsw ax test ah, 65 ; 00000041H je $L8048 ; Line 6199 push OFFSET FLAT:$SG8050 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _s_id$8049[ebp], eax ; Line 6200 push 1065353216 ; 3f800000H mov eax, DWORD PTR _s_id$8049[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH ; Line 6204 mov BYTE PTR _mstruct$8051[ebp+229], 21 ; 00000015H ; Line 6205 mov BYTE PTR _mstruct$8051[ebp+228], 0 ; Line 6206 mov edx, DWORD PTR _me$[ebp] mov DWORD PTR _mstruct$8051[ebp+44], edx ; Line 6207 mov BYTE PTR _mstruct$8051[ebp+231], 1 ; Line 6208 mov BYTE PTR _mstruct$8051[ebp+232], 7 ; Line 6209 mov BYTE PTR _mstruct$8051[ebp+233], 0 ; Line 6210 mov DWORD PTR _mstruct$8051[ebp+236], 981668463 ; 3a83126fH ; Line 6211 mov DWORD PTR _mstruct$8051[ebp+240], 981668463 ; 3a83126fH ; Line 6212 mov DWORD PTR _mstruct$8051[ebp+272], 1020054733 ; 3ccccccdH ; Line 6213 mov DWORD PTR _mstruct$8051[ebp+572], 1203982336 ; 47c35000H ; Line 6214 mov DWORD PTR _mstruct$8051[ebp+576], 1065353216 ; 3f800000H ; Line 6215 mov DWORD PTR _mstruct$8051[ebp+580], 1082549862 ; 40866666H ; Line 6216 mov DWORD PTR _mstruct$8051[ebp+584], 1123024896 ; 42f00000H ; Line 6218 lea eax, DWORD PTR _mstruct$8051[ebp] push eax push 33 ; 00000021H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 6220 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _mstruct$8051[ebp+72] mov DWORD PTR [edx+108], eax ; Line 6222 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+88] and al, -33 ; ffffffdfH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+88], eax ; Line 6223 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+88] or edx, 64 ; 00000040H mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+88], edx $L8048: ; Line 6226 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+88] or ecx, 64 ; 00000040H test ecx, ecx je $L8066 ; Line 6233 push 0 lea edx, DWORD PTR _flags$8053[ebp] push edx push 27 ; 0000001bH push 1 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 6234 push 0 lea ecx, DWORD PTR _me_pos$8054[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6235 push 0 lea eax, DWORD PTR _orient$8056[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6236 push 0 lea edx, DWORD PTR _it_pos$8055[ebp] push edx push 3 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+112] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6238 sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _me_pos$8054[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _me_pos$8054[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _me_pos$8054[ebp+8] mov DWORD PTR [eax+8], ecx sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR _it_pos$8055[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _it_pos$8055[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _it_pos$8055[ebp+8] mov DWORD PTR [edx+8], eax lea ecx, DWORD PTR $T11317[ebp] push ecx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov edx, DWORD PTR [eax] mov DWORD PTR $T11316[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11316[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11316[ebp+8], edx mov eax, DWORD PTR $T11316[ebp] mov DWORD PTR _dir_to_goal$8057[ebp], eax mov ecx, DWORD PTR $T11316[ebp+4] mov DWORD PTR _dir_to_goal$8057[ebp+4], ecx mov edx, DWORD PTR $T11316[ebp+8] mov DWORD PTR _dir_to_goal$8057[ebp+8], edx ; Line 6239 lea eax, DWORD PTR _dir_to_goal$8057[ebp] push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 6241 mov ecx, DWORD PTR _flags$8053[ebp] and ecx, 4 test ecx, ecx je $L8059 sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR _orient$8056[ebp+24] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _orient$8056[ebp+28] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _orient$8056[ebp+32] mov DWORD PTR [edx+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _dir_to_goal$8057[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _dir_to_goal$8057[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _dir_to_goal$8057[ebp+8] mov DWORD PTR [ecx+8], edx call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H fcomp DWORD PTR __real@4@3ffdf182aa0000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8059 fld DWORD PTR _anim$[ebp] fcomp DWORD PTR __real@4@4003b800000000000000 fnstsw ax test ah, 1 jne SHORT $L8059 fld DWORD PTR _anim$[ebp] fcomp DWORD PTR __real@4@40048400000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8059 ; Line 6242 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+136] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+136] $L8059: ; Line 6244 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+136] fcomp DWORD PTR __real@4@3fffc000000000000000 fnstsw ax test ah, 65 ; 00000041H jne $L8066 ; Line 6247 push 0 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+112] push ecx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH ; Line 6249 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+132], 1 jle $L8061 ; Line 6252 mov DWORD PTR _i$8062[ebp], 0 jmp SHORT $L8063 $L8064: mov ecx, DWORD PTR _i$8062[ebp] add ecx, 1 mov DWORD PTR _i$8062[ebp], ecx $L8063: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+132] sub ecx, 1 cmp DWORD PTR _i$8062[ebp], ecx jge SHORT $L8065 ; Line 6254 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _i$8062[ebp] mov esi, DWORD PTR _i$8062[ebp] mov eax, DWORD PTR [eax+esi*4+116] mov DWORD PTR [edx+ecx*4+112], eax ; Line 6255 jmp SHORT $L8064 $L8065: ; Line 6256 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+132] sub eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+132], eax ; Line 6258 push 10 ; 0000000aH mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode ; Line 6260 jmp SHORT $L8066 $L8061: ; Line 6262 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode $L8066: ; Line 6267 jmp SHORT $L8067 $L8046: ; Line 6269 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode $L8067: ; Line 6272 jmp $L8084 $L8042: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+52], 9 jne $L8069 ; Line 6274 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fcomp DWORD PTR [eax+80] fnstsw ax test ah, 65 ; 00000041H jne $L8070 ; Line 6276 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@3fff8000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+80] ; Line 6279 mov DWORD PTR _flags$8071[ebp], 33554432 ; 02000000H ; Line 6280 lea eax, DWORD PTR _flags$8071[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6282 call _rand cdq mov ecx, 6 idiv ecx mov DWORD PTR _dir_index$8072[ebp], edx ; Line 6283 mov edx, DWORD PTR _dir_index$8072[ebp] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+44] push edx push 4 push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 6284 push 1104674816 ; 41d80000H push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH $L8070: ; Line 6287 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+36] fcomp QWORD PTR __real@8@4003f000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8073 ; Line 6289 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@GuideBot@@AAE_NHD@Z ; GuideBot::SetMode $L8073: ; Line 6292 jmp $L8084 $L8069: ; Line 6294 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+20], -1 jne SHORT $L8075 ; Line 6296 push OFFSET FLAT:$SG8077 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _s_index$8076[ebp], eax ; Line 6297 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _s_index$8076[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], eax $L8075: ; Line 6300 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+52], 1 jne SHORT $L8079 ; Line 6302 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fcomp DWORD PTR [eax+80] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8079 ; Line 6304 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?ReInitAmbient@GuideBot@@AAEXH@Z ; GuideBot::ReInitAmbient $L8079: ; Line 6309 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cl, BYTE PTR [eax+48] cmp ecx, 1 jne SHORT $L8082 ; Line 6312 push 0 lea edx, DWORD PTR _time$8081[ebp] push edx push 14 ; 0000000eH push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6314 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fsub DWORD PTR _time$8081[ebp] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8082 ; Line 6316 mov DWORD PTR _parent$8083[ebp], -1 ; Line 6318 push 0 lea ecx, DWORD PTR _parent$8083[ebp] push ecx push 17 ; 00000011H push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6319 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+48], 0 $L8082: ; Line 6324 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+96] fadd QWORD PTR __real@8@4002f000000000000000 fstp QWORD PTR -1080+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp QWORD PTR -1080+[ebp] fnstsw ax test ah, 65 ; 00000041H jne $L8084 ; Line 6326 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call ?Obj_GetObjDist@@YAMHH_N@Z ; Obj_GetObjDist add esp, 12 ; 0000000cH fcomp DWORD PTR __real@4@4005aa00000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8085 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+56], 0 jne SHORT $L8085 ; Line 6328 push 0 push OFFSET FLAT:$SG8086 push 0 push 89 ; 00000059H call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov ecx, DWORD PTR _this$[ebp] call ?DoMessage@GuideBot@@AAEXPAD_N01@Z ; GuideBot::DoMessage ; Line 6330 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+44] push eax push 8 push -1 push 1065353216 ; 3f800000H push 2 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 6331 push 1106247680 ; 41f00000H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH $L8085: ; Line 6334 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+96] $L8084: ; Line 6338 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _anim$[ebp] mov DWORD PTR [eax+104], ecx $L8025: ; Line 6339 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@GuideBot@@AAEXH@Z ENDP ; GuideBot::DoFrame _event$ = 8 _data$ = 12 _this$ = -16 _i$8098 = -4 _flags$8102 = -8 _target_handle$8103 = -12 ?CallEvent@GuideBot@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; GuideBot::CallEvent ; Line 6342 push ebp mov ebp, esp sub esp, 20 ; 00000014H push esi mov DWORD PTR _this$[ebp], ecx ; Line 6344 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -20+[ebp], eax mov ecx, DWORD PTR -20+[ebp] sub ecx, 256 ; 00000100H mov DWORD PTR -20+[ebp], ecx cmp DWORD PTR -20+[ebp], 25 ; 00000019H ja $L8093 mov eax, DWORD PTR -20+[ebp] xor edx, edx mov dl, BYTE PTR $L11335[eax] jmp DWORD PTR $L11336[edx*4] $L8096: ; Line 6346 push 0 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@GuideBot@@AAE_NH_N@Z ; GuideBot::DoInit and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp $L8091 $L8097: ; Line 6352 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+140], 0 jle $L8101 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+544] fnstsw ax test ah, 1 jne $L8101 ; Line 6355 mov DWORD PTR _flags$8102[ebp], 196608 ; 00030000H ; Line 6356 lea eax, DWORD PTR _flags$8102[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+144] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6357 mov DWORD PTR _flags$8102[ebp], 0 ; Line 6358 lea ecx, DWORD PTR _flags$8102[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+144] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6360 mov DWORD PTR _target_handle$8103[ebp], -1 ; Line 6361 lea edx, DWORD PTR _target_handle$8103[ebp] push edx push 19 ; 00000013H push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+144] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6363 mov DWORD PTR _i$8098[ebp], 1 jmp SHORT $L8104 $L8105: mov eax, DWORD PTR _i$8098[ebp] add eax, 1 mov DWORD PTR _i$8098[ebp], eax $L8104: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$8098[ebp] cmp eax, DWORD PTR [edx+140] jge SHORT $L8106 ; Line 6365 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov eax, DWORD PTR _i$8098[ebp] mov esi, DWORD PTR _i$8098[ebp] mov edx, DWORD PTR [edx+esi*4+144] mov DWORD PTR [ecx+eax*4+140], edx ; Line 6366 jmp SHORT $L8105 $L8106: ; Line 6368 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+140] sub edx, 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+140], edx ; Line 6369 jmp $L8097 $L8101: ; Line 6371 jmp SHORT $L8093 $L8107: ; Line 6373 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@GuideBot@@AAEXH@Z ; GuideBot::DoFrame ; Line 6374 jmp SHORT $L8093 $L8108: ; Line 6376 mov ecx, DWORD PTR _data$[ebp] push ecx mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@GuideBot@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z ; GuideBot::DoCollide ; Line 6377 jmp SHORT $L8093 $L8109: ; Line 6379 mov ecx, DWORD PTR _data$[ebp] push ecx mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@GuideBot@@AAE_NHPAUtOSIRISEventInfo@@@Z ; GuideBot::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L8091 $L8110: ; Line 6382 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoUse@GuideBot@@AAE_NH@Z ; GuideBot::DoUse and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L8091 $L8112: ; Line 6388 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [eax+4], edx $L8093: ; Line 6392 mov ax, 257 ; 00000101H $L8091: ; Line 6393 pop esi mov esp, ebp pop ebp ret 8 $L11336: DD $L8097 DD $L8107 DD $L8108 DD $L8110 DD $L8109 DD $L8096 DD $L8112 DD $L8093 $L11335: DB 0 DB 1 DB 7 DB 2 DB 7 DB 7 DB 7 DB 3 DB 7 DB 7 DB 7 DB 7 DB 7 DB 7 DB 7 DB 7 DB 4 DB 5 DB 7 DB 7 DB 7 DB 7 DB 7 DB 7 DB 7 DB 6 ?CallEvent@GuideBot@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; GuideBot::CallEvent _TEXT ENDS PUBLIC ?DoAttack@Thief@@AAEXHH@Z ; Thief::DoAttack _TEXT SEGMENT _this$ = -4 ?DoAttack@Thief@@AAEXHH@Z PROC NEAR ; Thief::DoAttack ; Line 6400 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 6401 mov esp, ebp pop ebp ret 8 ?DoAttack@Thief@@AAEXHH@Z ENDP ; Thief::DoAttack _TEXT ENDS PUBLIC ?DoSteal@Thief@@AAE_NHHH_N@Z ; Thief::DoSteal _DATA SEGMENT ORG $+3 $SG8155 DB 'THIEF: INVALID THIEFABLE TYPE!', 0aH, 00H $SG8157 DB 'THIEF: no mo'' room', 0aH, 00H $SG8188 DB 'THIEF: Taking %s', 0aH, 00H ORG $+2 $SG8197 DB 'THIEF: Not taking anything', 0aH, 00H _DATA ENDS _TEXT SEGMENT _it$ = 12 _attempt_num$ = 16 _f_last_success$ = 20 _this$ = -312 _max_tries$ = -8 _gen_perc$ = -12 _perc_chance$ = -16 _i$ = -24 _count_max$ = -32 _count_num$ = -20 _attempted_steals$ = -28 _ftime$ = -4 _can_take$8158 = -296 _amount$8159 = -36 _message$8160 = -292 _max$8171 = -300 _new_amount$8174 = -304 _k$8181 = -308 ?DoSteal@Thief@@AAE_NHHH_N@Z PROC NEAR ; Thief::DoSteal ; Line 6404 push ebp mov ebp, esp sub esp, 348 ; 0000015cH mov DWORD PTR _this$[ebp], ecx ; Line 6405 mov eax, DWORD PTR ?numThiefableItems@@3HA ; numThiefableItems mov DWORD PTR _max_tries$[ebp], eax ; Line 6411 mov ecx, DWORD PTR ?numThiefableItems@@3HA ; numThiefableItems push ecx call _malloc add esp, 4 mov DWORD PTR _attempted_steals$[ebp], eax ; Line 6412 cmp DWORD PTR _attempted_steals$[ebp], 0 jne SHORT $L8135 ; Line 6413 xor al, al jmp $L8125 $L8135: ; Line 6415 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fstp DWORD PTR _ftime$[ebp] ; Line 6416 fld DWORD PTR _ftime$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 64 ; 00000040H je SHORT $L8137 ; Line 6417 mov DWORD PTR _ftime$[ebp], 1065353216 ; 3f800000H $L8137: ; Line 6418 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fdiv DWORD PTR _ftime$[ebp] call __ftol push eax call _srand add esp, 4 ; Line 6420 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8138 $L8139: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L8138: mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR ?numThiefableItems@@3HA ; numThiefableItems jge SHORT $L8140 ; Line 6422 mov ecx, DWORD PTR _attempted_steals$[ebp] add ecx, DWORD PTR _i$[ebp] mov BYTE PTR [ecx], 0 ; Line 6423 jmp SHORT $L8139 $L8140: ; Line 6425 mov edx, DWORD PTR _max_tries$[ebp] mov eax, DWORD PTR _max_tries$[ebp] sub eax, 1 mov DWORD PTR _max_tries$[ebp], eax test edx, edx je $L8143 ; Line 6427 call _rand cdq idiv DWORD PTR ?numThiefableItems@@3HA ; numThiefableItems mov DWORD PTR _i$[ebp], edx ; Line 6428 call _rand mov DWORD PTR -316+[ebp], eax fild DWORD PTR -316+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fstp DWORD PTR _gen_perc$[ebp] ; Line 6430 cmp DWORD PTR _attempt_num$[ebp], 1 jne SHORT $L11341 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H mov edx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx+8] mov DWORD PTR -320+[ebp], edx jmp SHORT $L11342 $L11341: mov eax, DWORD PTR _f_last_success$[ebp] and eax, 255 ; 000000ffH test eax, eax je SHORT $L11339 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H mov edx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx+12] mov DWORD PTR -324+[ebp], edx jmp SHORT $L11340 $L11339: mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H mov ecx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax+16] mov DWORD PTR -324+[ebp], ecx $L11340: mov edx, DWORD PTR -324+[ebp] mov DWORD PTR -320+[ebp], edx $L11342: mov eax, DWORD PTR -320+[ebp] mov DWORD PTR _perc_chance$[ebp], eax ; Line 6432 mov ecx, DWORD PTR _attempted_steals$[ebp] add ecx, DWORD PTR _i$[ebp] xor edx, edx mov dl, BYTE PTR [ecx] test edx, edx je SHORT $L8146 ; Line 6435 mov eax, DWORD PTR _max_tries$[ebp] add eax, 1 mov DWORD PTR _max_tries$[ebp], eax ; Line 6436 jmp $L8140 $L8146: ; Line 6439 mov ecx, DWORD PTR _attempted_steals$[ebp] add ecx, DWORD PTR _i$[ebp] mov BYTE PTR [ecx], 1 ; Line 6441 fld DWORD PTR _gen_perc$[ebp] fcomp DWORD PTR _perc_chance$[ebp] fnstsw ax test ah, 65 ; 00000041H je $L8147 ; Line 6445 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H mov eax, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx+4] mov DWORD PTR -328+[ebp], eax cmp DWORD PTR -328+[ebp], 0 jl SHORT $L8154 cmp DWORD PTR -328+[ebp], 1 jle SHORT $L8152 cmp DWORD PTR -328+[ebp], 2 je SHORT $L8153 jmp SHORT $L8154 $L8152: ; Line 6448 mov DWORD PTR _count_max$[ebp], 25 ; 00000019H ; Line 6449 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+60] mov DWORD PTR _count_num$[ebp], eax ; Line 6450 jmp SHORT $L8149 $L8153: ; Line 6452 mov DWORD PTR _count_max$[ebp], 10 ; 0000000aH ; Line 6453 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+364] mov DWORD PTR _count_num$[ebp], eax ; Line 6454 jmp SHORT $L8149 $L8154: ; Line 6456 push OFFSET FLAT:$SG8155 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 6457 mov DWORD PTR _count_max$[ebp], 0 ; Line 6458 mov DWORD PTR _count_num$[ebp], 0 $L8149: ; Line 6462 mov ecx, DWORD PTR _count_num$[ebp] cmp ecx, DWORD PTR _count_max$[ebp] jl SHORT $L8156 ; Line 6464 push OFFSET FLAT:$SG8157 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 6465 jmp $L8140 $L8156: ; Line 6470 mov BYTE PTR _can_take$8158[ebp], 0 ; Line 6471 mov DWORD PTR _amount$8159[ebp], 0 ; Line 6475 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H mov eax, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx+4] mov DWORD PTR -332+[ebp], eax cmp DWORD PTR -332+[ebp], 0 je SHORT $L8165 cmp DWORD PTR -332+[ebp], 1 je $L8167 cmp DWORD PTR -332+[ebp], 2 je $L8179 jmp $L8162 $L8165: ; Line 6478 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H mov edx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx] push edx lea eax, DWORD PTR _amount$8159[ebp] push eax push 7 push 1 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 6479 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H cmp DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx], 0 je SHORT $L8166 cmp DWORD PTR _amount$8159[ebp], 0 je SHORT $L8166 ; Line 6481 mov BYTE PTR _can_take$8158[ebp], 1 ; Line 6482 mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H mov ecx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax+20] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push 90 ; 0000005aH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea edx, DWORD PTR _message$8160[ebp] push edx call _sprintf add esp, 12 ; 0000000cH $L8166: ; Line 6484 jmp $L8162 $L8167: ; Line 6488 cmp DWORD PTR _attempt_num$[ebp], 1 jle SHORT $L8169 mov eax, DWORD PTR _f_last_success$[ebp] and eax, 255 ; 000000ffH test eax, eax jne $L8178 $L8169: ; Line 6490 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H mov edx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx] push edx lea eax, DWORD PTR _amount$8159[ebp] push eax push 7 push 1 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 6492 cmp DWORD PTR _amount$8159[ebp], 0 je $L8178 ; Line 6496 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H cmp DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx], 14 ; 0000000eH jle SHORT $L8172 ; Line 6499 mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H mov ecx, 19 ; 00000013H sub ecx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax] mov DWORD PTR -336+[ebp], ecx fild DWORD PTR -336+[ebp] fdiv DWORD PTR __real@4@4000a000000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 call __ftol mov DWORD PTR _max$8171[ebp], eax ; Line 6500 jmp SHORT $L8173 $L8172: ; Line 6503 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H mov eax, 14 ; 0000000eH sub eax, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx] mov DWORD PTR -340+[ebp], eax fild DWORD PTR -340+[ebp] fdiv DWORD PTR __real@4@4000a000000000000000 fadd DWORD PTR __real@4@3fff8000000000000000 call __ftol mov DWORD PTR _max$8171[ebp], eax $L8173: ; Line 6506 call _rand mov DWORD PTR -344+[ebp], eax fild DWORD PTR -344+[ebp] fdiv DWORD PTR __real@4@400e8000000000000000 fimul DWORD PTR _max$8171[ebp] fadd DWORD PTR __real@4@3fff8000000000000000 call __ftol mov DWORD PTR _new_amount$8174[ebp], eax ; Line 6508 mov ecx, DWORD PTR _new_amount$8174[ebp] cmp ecx, DWORD PTR _amount$8159[ebp] jge SHORT $L8176 ; Line 6509 mov edx, DWORD PTR _new_amount$8174[ebp] mov DWORD PTR _amount$8159[ebp], edx $L8176: ; Line 6511 mov BYTE PTR _can_take$8158[ebp], 1 ; Line 6513 cmp DWORD PTR _amount$8159[ebp], 1 jne SHORT $L8177 ; Line 6515 mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H mov ecx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax+20] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push 91 ; 0000005bH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea edx, DWORD PTR _message$8160[ebp] push edx call _sprintf add esp, 12 ; 0000000cH ; Line 6516 jmp SHORT $L8178 $L8177: ; Line 6518 mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H mov ecx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax+20] push ecx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov edx, DWORD PTR _amount$8159[ebp] push edx push 92 ; 0000005cH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea eax, DWORD PTR _message$8160[ebp] push eax call _sprintf add esp, 16 ; 00000010H $L8178: ; Line 6523 jmp $L8162 $L8179: ; Line 6527 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H mov edx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx] push edx lea eax, DWORD PTR _can_take$8158[ebp] push eax push 12 ; 0000000cH push 1 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 6528 mov DWORD PTR _amount$8159[ebp], 1 ; Line 6530 mov edx, DWORD PTR _can_take$8158[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L8184 mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H cmp DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax], 1 jne SHORT $L8184 ; Line 6533 mov DWORD PTR _k$8181[ebp], 0 jmp SHORT $L8182 $L8183: mov ecx, DWORD PTR _k$8181[ebp] add ecx, 1 mov DWORD PTR _k$8181[ebp], ecx $L8182: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _k$8181[ebp] cmp ecx, DWORD PTR [eax+364] jge SHORT $L8184 ; Line 6535 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _k$8181[ebp] xor edx, edx mov dx, WORD PTR [eax+ecx*8+368] cmp edx, 1 jne SHORT $L8185 ; Line 6538 mov BYTE PTR _can_take$8158[ebp], 0 ; Line 6539 jmp SHORT $L8184 $L8185: ; Line 6541 jmp SHORT $L8183 $L8184: ; Line 6544 mov eax, DWORD PTR _can_take$8158[ebp] and eax, 255 ; 000000ffH test eax, eax je SHORT $L8186 ; Line 6546 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H mov edx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx+20] push edx call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push 90 ; 0000005aH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax lea eax, DWORD PTR _message$8160[ebp] push eax call _sprintf add esp, 12 ; 0000000cH $L8186: $L8162: ; Line 6551 mov ecx, DWORD PTR _can_take$8158[ebp] and ecx, 255 ; 000000ffH test ecx, ecx jne SHORT $L8187 ; Line 6552 jmp $L8140 $L8187: ; Line 6554 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H mov eax, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx+20] push eax call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax push OFFSET FLAT:$SG8188 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH ; Line 6556 lea ecx, DWORD PTR _message$8160[ebp] push ecx mov edx, DWORD PTR _it$[ebp] push edx call DWORD PTR ?Player_AddHudMessage@@3P6AXHPAD@ZA ; Player_AddHudMessage add esp, 8 ; Line 6559 mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H mov ecx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax+4] mov DWORD PTR -348+[ebp], ecx cmp DWORD PTR -348+[ebp], 0 jl $L8190 cmp DWORD PTR -348+[ebp], 1 jle SHORT $L8193 cmp DWORD PTR -348+[ebp], 2 je $L8196 jmp $L8190 $L8193: ; Line 6562 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov eax, DWORD PTR _this$[ebp] mov eax, DWORD PTR [eax+4] mov eax, DWORD PTR [eax+60] imul eax, 12 ; 0000000cH mov dl, BYTE PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx] mov BYTE PTR [ecx+eax+64], dl ; Line 6563 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR [eax+60] imul edx, 12 ; 0000000cH mov eax, DWORD PTR _it$[ebp] mov DWORD PTR [ecx+edx+68], eax ; Line 6564 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov eax, DWORD PTR [ecx+60] imul eax, 12 ; 0000000cH mov cl, BYTE PTR _amount$8159[ebp] mov BYTE PTR [edx+eax+72], cl ; Line 6565 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+60] add ecx, 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+60], ecx ; Line 6567 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H cmp DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx+4], 0 jne SHORT $L8194 ; Line 6569 mov DWORD PTR _amount$8159[ebp], 0 ; Line 6571 jmp SHORT $L8195 $L8194: ; Line 6573 mov edx, DWORD PTR _amount$8159[ebp] imul edx, -1 mov DWORD PTR _amount$8159[ebp], edx $L8195: ; Line 6576 mov eax, DWORD PTR _i$[ebp] imul eax, 24 ; 00000018H mov ecx, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[eax] push ecx lea edx, DWORD PTR _amount$8159[ebp] push edx push 7 push 0 mov eax, DWORD PTR _it$[ebp] push eax call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 6578 jmp $L8190 $L8196: ; Line 6580 mov ecx, DWORD PTR _i$[ebp] imul ecx, 24 ; 00000018H mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [edx+4] mov edx, DWORD PTR [edx+364] mov cx, WORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[ecx] mov WORD PTR [eax+edx*8+368], cx ; Line 6581 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR [edx+364] mov edx, DWORD PTR _it$[ebp] mov DWORD PTR [eax+ecx*8+372], edx ; Line 6582 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+364] add edx, 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+364], edx ; Line 6584 mov edx, DWORD PTR _i$[ebp] imul edx, 24 ; 00000018H mov eax, DWORD PTR ?ThiefableItems@@3PAUtThiefItems@@A[edx] push eax push 0 push 13 ; 0000000dH push 0 mov ecx, DWORD PTR _it$[ebp] push ecx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H $L8190: ; Line 6588 mov edx, DWORD PTR _attempted_steals$[ebp] push edx call _free add esp, 4 ; Line 6589 mov al, 1 jmp SHORT $L8125 $L8147: ; Line 6591 jmp $L8140 $L8143: ; Line 6593 push OFFSET FLAT:$SG8197 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 ; Line 6594 mov eax, DWORD PTR _attempted_steals$[ebp] push eax call _free add esp, 4 ; Line 6595 xor al, al $L8125: ; Line 6596 mov esp, ebp pop ebp ret 16 ; 00000010H ?DoSteal@Thief@@AAE_NHHH_N@Z ENDP ; Thief::DoSteal _TEXT ENDS PUBLIC ?DoKidnap@Thief@@AAEXHH@Z ; Thief::DoKidnap _TEXT SEGMENT _it$ = 12 _this$ = -4 ?DoKidnap@Thief@@AAEXHH@Z PROC NEAR ; Thief::DoKidnap ; Line 6599 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 6600 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+36], 5 jge SHORT $L8203 ; Line 6602 push 1 mov edx, DWORD PTR _it$[ebp] push edx call DWORD PTR ?Obj_Ghost@@3P6AXH_N@ZA ; Obj_Ghost add esp, 8 ; Line 6603 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR [eax+36] mov eax, DWORD PTR _it$[ebp] mov DWORD PTR [ecx+edx*4+40], eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+36] add eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+36], eax $L8203: ; Line 6605 mov esp, ebp pop ebp ret 8 ?DoKidnap@Thief@@AAEXHH@Z ENDP ; Thief::DoKidnap _TEXT ENDS PUBLIC __real@4@3ff08001000000000000 PUBLIC ?SetSubMode@Thief@@AAEXHH@Z ; Thief::SetSubMode ; COMDAT __real@4@3ff08001000000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ff08001000000000000 DD 038000100r ; 3.05185e-005 CONST ENDS _TEXT SEGMENT _me$ = 8 _submode$ = 12 _this$ = -8 _time$8214 = -4 ?SetSubMode@Thief@@AAEXHH@Z PROC NEAR ; Thief::SetSubMode ; File aigame.cpp ; Line 6608 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 6609 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+2] cmp DWORD PTR _submode$[ebp], edx jne SHORT $L8209 ; Line 6610 jmp $L8208 $L8209: ; Line 6612 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+1] cmp edx, 4 jne SHORT $L8210 ; Line 6615 push 0 push -1 push 2 push 1065353216 ; 3f800000H push 1086324736 ; 40c00000H push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L8210: ; Line 6618 cmp DWORD PTR _submode$[ebp], 4 jne SHORT $L8211 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+3] and eax, 2 test eax, eax je SHORT $L8211 ; Line 6619 jmp $L8208 $L8211: ; Line 6621 cmp DWORD PTR _submode$[ebp], 5 jne SHORT $L8212 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+3] and eax, 2 test eax, eax jne SHORT $L8212 ; Line 6622 jmp $L8208 $L8212: ; Line 6625 cmp DWORD PTR _submode$[ebp], 0 je SHORT $L8215 cmp DWORD PTR _submode$[ebp], 2 je SHORT $L8215 ; Line 6628 lea ecx, DWORD PTR _time$8214[ebp] push ecx push 25 ; 00000019H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6630 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _time$8214[ebp] fadd DWORD PTR __real@4@40008000000000000000 fcompp fnstsw ax test ah, 1 je SHORT $L8215 ; Line 6632 jmp $L8208 $L8215: ; Line 6637 mov eax, DWORD PTR _submode$[ebp] mov DWORD PTR -12+[ebp], eax cmp DWORD PTR -12+[ebp], 5 ja $L8217 mov ecx, DWORD PTR -12+[ebp] jmp DWORD PTR $L11347[ecx*4] $L8220: ; Line 6640 push 0 push 65536 ; 00010000H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H ; Line 6641 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4002a000000000000000 fstp DWORD PTR -16+[ebp] call _rand mov DWORD PTR -20+[ebp], eax fild DWORD PTR -20+[ebp] fmul DWORD PTR __real@4@3ff08001000000000000 fmul DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR -16+[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+16] ; Line 6643 jmp $L8217 $L8223: ; Line 6646 push 0 push 65536 ; 00010000H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H ; Line 6647 push -1 push -1 push 0 push 1061997773 ; 3f4ccccdH push 1100480512 ; 41980000H push 1094713344 ; 41400000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 6649 jmp $L8217 $L8224: ; Line 6652 push 1 push 65536 ; 00010000H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H ; Line 6653 push 0 push -1 push 2 push 1080033280 ; 40600000H push 1115684864 ; 42800000H push 1112014848 ; 42480000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 6655 jmp $L8217 $L8225: ; Line 6658 push 1 push 65536 ; 00010000H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H ; Line 6659 push 0 push -1 push 2 push 1080033280 ; 40600000H push 1112014848 ; 42480000H push 1105723392 ; 41e80000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 6661 jmp SHORT $L8217 $L8226: ; Line 6664 push 0 push 65536 ; 00010000H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H ; Line 6665 push -1 push -1 push 1 push 1036831949 ; 3dcccccdH push 1105723392 ; 41e80000H push 1105723392 ; 41e80000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 6667 jmp SHORT $L8217 $L8227: ; Line 6670 push 1 push 65536 ; 00010000H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H ; Line 6671 push 0 push -1 push 2 push 1075000115 ; 40133333H push 1126170624 ; 43200000H push 1125187584 ; 43110000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L8217: ; Line 6676 cmp DWORD PTR _submode$[ebp], 0 je SHORT $L8228 ; Line 6678 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _submode$[ebp] mov BYTE PTR [ecx+2], dl $L8228: ; Line 6681 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+8], 0 ; Line 6682 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _submode$[ebp] mov BYTE PTR [eax+1], cl $L8208: ; Line 6683 mov esp, ebp pop ebp ret 8 $L11347: DD $L8220 DD $L8223 DD $L8224 DD $L8225 DD $L8226 DD $L8227 ?SetSubMode@Thief@@AAEXHH@Z ENDP ; Thief::SetSubMode _TEXT ENDS PUBLIC __real@4@40039800000000000000 PUBLIC __real@4@3ffd8000000000000000 PUBLIC __real@4@4004f400000000000000 PUBLIC __real@4@4004a400000000000000 PUBLIC __real@4@4004b400000000000000 PUBLIC __real@8@4002a000000000000000 PUBLIC ?DoSubModeFrame@Thief@@AAEXH@Z ; Thief::DoSubModeFrame _DATA SEGMENT $SG8253 DB 'Seeker', 00H _DATA ENDS ; COMDAT __real@4@40039800000000000000 ; File aigame.cpp CONST SEGMENT __real@4@40039800000000000000 DD 041980000r ; 19 CONST ENDS ; COMDAT __real@4@3ffd8000000000000000 CONST SEGMENT __real@4@3ffd8000000000000000 DD 03e800000r ; 0.25 CONST ENDS ; COMDAT __real@4@4004f400000000000000 CONST SEGMENT __real@4@4004f400000000000000 DD 042740000r ; 61 CONST ENDS ; COMDAT __real@4@4004a400000000000000 CONST SEGMENT __real@4@4004a400000000000000 DD 042240000r ; 41 CONST ENDS ; COMDAT __real@4@4004b400000000000000 CONST SEGMENT __real@4@4004b400000000000000 DD 042340000r ; 45 CONST ENDS ; COMDAT __real@8@4002a000000000000000 CONST SEGMENT __real@8@4002a000000000000000 DQ 04024000000000000r ; 10 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -1004 _anim_frame$ = -4 _m$ = -924 _r_val$8241 = -928 _orient$8255 = -964 _velocity$8256 = -976 $T11349 = -988 $T11350 = -1000 ?DoSubModeFrame@Thief@@AAEXH@Z PROC NEAR ; Thief::DoSubModeFrame ; File aigame.cpp ; Line 6686 push ebp mov ebp, esp sub esp, 1020 ; 000003fcH mov DWORD PTR _this$[ebp], ecx ; Line 6688 push 0 lea eax, DWORD PTR _anim_frame$[ebp] push eax push 18 ; 00000012H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6691 mov edx, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], edx ; Line 6694 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+1] mov DWORD PTR -1008+[ebp], edx cmp DWORD PTR -1008+[ebp], 3 ja $L8260 mov eax, DWORD PTR -1008+[ebp] jmp DWORD PTR $L11363[eax*4] $L8239: ; Line 6697 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fcomp DWORD PTR [edx+16] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8240 ; Line 6699 call _rand cdq mov ecx, 5 idiv ecx add edx, 1 mov DWORD PTR _r_val$8241[ebp], edx ; Line 6700 mov edx, DWORD PTR _r_val$8241[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetSubMode@Thief@@AAEXHH@Z ; Thief::SetSubMode ; Line 6703 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4002a000000000000000 fstp DWORD PTR -1012+[ebp] call _rand mov DWORD PTR -1016+[ebp], eax fild DWORD PTR -1016+[ebp] fmul DWORD PTR __real@4@3ff08001000000000000 fmul DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR -1012+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+16] $L8240: ; Line 6706 jmp $L8236 $L8244: ; Line 6710 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4002c000000000000000 fnstsw ax test ah, 1 jne SHORT $L8245 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@40039800000000000000 fnstsw ax test ah, 1 je SHORT $L8245 ; Line 6712 push -1 push -1 push 1 push 1061997773 ; 3f4ccccdH push 1102577664 ; 41b80000H push 1100480512 ; 41980000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L8245: ; Line 6715 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@40039800000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8247 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4003b800000000000000 fnstsw ax test ah, 1 je SHORT $L8247 ; Line 6717 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+28] fadd DWORD PTR __real@4@3ffd8000000000000000 fstp DWORD PTR -1020+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -1020+[ebp] fnstsw ax test ah, 1 jne SHORT $L8247 ; Line 6719 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+28] $L8247: ; Line 6725 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+8] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8248 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@40039800000000000000 fnstsw ax test ah, 1 jne SHORT $L8248 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4003b800000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8248 ; Line 6727 push 0 push -1 push 2 push 1061997773 ; 3f4ccccdH push 1105723392 ; 41e80000H push 1102577664 ; 41b80000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 6728 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetSubMode@Thief@@AAEXHH@Z ; Thief::SetSubMode $L8248: ; Line 6732 jmp $L8236 $L8249: ; Line 6735 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4004f400000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8250 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+20] fcomp DWORD PTR __real@4@4004f400000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8250 ; Line 6737 mov DWORD PTR _m$[ebp+576], 1097859072 ; 41700000H ; Line 6738 mov BYTE PTR _m$[ebp+276], 1 ; Line 6740 lea edx, DWORD PTR _m$[ebp] push edx push 55 ; 00000037H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 6742 push 0 push 65536 ; 00010000H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H $L8250: ; Line 6745 jmp $L8236 $L8251: ; Line 6748 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4004a400000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8252 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+20] fcomp DWORD PTR __real@4@4004a400000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8252 ; Line 6750 push 1 push 1 push 0 push 1 push 2 push OFFSET FLAT:$SG8253 mov eax, DWORD PTR _me$[ebp] push eax call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+24], eax $L8252: ; Line 6753 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4004b400000000000000 fnstsw ax test ah, 65 ; 00000041H jne $L8254 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+20] fcomp DWORD PTR __real@4@4004b400000000000000 fnstsw ax test ah, 65 ; 00000041H je $L8254 ; Line 6756 push 0 lea edx, DWORD PTR _orient$8255[ebp] push edx push 4 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6757 push 1112014848 ; 42480000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$8255[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$8255[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$8255[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11350[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11349[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11349[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11349[ebp+8], eax mov ecx, DWORD PTR $T11349[ebp] mov DWORD PTR _velocity$8256[ebp], ecx mov edx, DWORD PTR $T11349[ebp+4] mov DWORD PTR _velocity$8256[ebp+4], edx mov eax, DWORD PTR $T11349[ebp+8] mov DWORD PTR _velocity$8256[ebp+8], eax ; Line 6759 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+24] push eax call DWORD PTR ?Obj_UnattachFromParent@@3P6AXH@ZA ; Obj_UnattachFromParent add esp, 4 ; Line 6761 push 0 lea ecx, DWORD PTR _velocity$8256[ebp] push ecx push 6 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+24] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6763 push 0 push 65536 ; 00010000H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H $L8254: $L8260: $L8236: ; Line 6781 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+1] test edx, edx je SHORT $L8261 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+8] fcomp QWORD PTR __real@8@4002a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8261 ; Line 6783 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetSubMode@Thief@@AAEXHH@Z ; Thief::SetSubMode $L8261: ; Line 6785 mov esp, ebp pop ebp ret 4 $L11363: DD $L8239 DD $L8244 DD $L8249 DD $L8251 ?DoSubModeFrame@Thief@@AAEXH@Z ENDP ; Thief::DoSubModeFrame _TEXT ENDS PUBLIC ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode _TEXT SEGMENT _me$ = 8 _new_mode$ = 12 _this$ = -28 _pos$ = -20 _room$ = -8 _flags$ = -4 _temp$8277 = -24 ?SetMode@Thief@@AAEXHH@Z PROC NEAR ; Thief::SetMode ; Line 6788 push ebp mov ebp, esp sub esp, 32 ; 00000020H mov DWORD PTR _this$[ebp], ecx ; Line 6790 mov DWORD PTR _room$[ebp], 0 ; Line 6792 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 6795 mov DWORD PTR _flags$[ebp], 128 ; 00000080H ; Line 6796 lea ecx, DWORD PTR _flags$[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6799 mov eax, DWORD PTR _new_mode$[ebp] mov DWORD PTR -32+[ebp], eax cmp DWORD PTR -32+[ebp], 7 ja $L8271 mov ecx, DWORD PTR -32+[ebp] jmp DWORD PTR $L11365[ecx*4] $L8274: ; Line 6802 mov edx, DWORD PTR _room$[ebp] push edx lea eax, DWORD PTR _pos$[ebp] push eax push 4108 ; 0000100cH push -1 push 1065353216 ; 3f800000H push 2 push 64 ; 00000040H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 6803 push 0 push 65536 ; 00010000H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalFlags@@3P6AHHHHE@ZA ; AI_SetGoalFlags add esp, 16 ; 00000010H ; Line 6805 jmp $L8271 $L8275: ; Line 6808 mov DWORD PTR _flags$[ebp], 128 ; 00000080H ; Line 6809 lea eax, DWORD PTR _flags$[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6811 push 6 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 6813 jmp $L8271 $L8276: ; Line 6816 mov DWORD PTR _flags$[ebp], 128 ; 00000080H ; Line 6817 lea eax, DWORD PTR _flags$[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6819 mov DWORD PTR _temp$8277[ebp], 0 ; Line 6820 lea edx, DWORD PTR _temp$8277[ebp] push edx push 2 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6821 push -1 push -1 push 0 push 1090519040 ; 41000000H push 1124859904 ; 430c0000H push 1118437376 ; 42aa0000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 6823 jmp SHORT $L8271 $L8278: ; Line 6826 mov DWORD PTR _flags$[ebp], 128 ; 00000080H ; Line 6827 lea edx, DWORD PTR _flags$[ebp] push edx push 51 ; 00000033H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6829 mov ecx, DWORD PTR _me$[ebp] push ecx push 65540 ; 00010004H push -1 push 1065353216 ; 3f800000H push 1 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 6830 push -1 push -1 push 0 push 1065353216 ; 3f800000H push 1116602368 ; 428e0000H push 1115684864 ; 42800000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L8271: ; Line 6859 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+12], 0 ; Line 6860 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _new_mode$[ebp] mov BYTE PTR [ecx], dl ; Line 6861 mov esp, ebp pop ebp ret 8 $L11365: DD $L8274 DD $L8271 DD $L8275 DD $L8271 DD $L8278 DD $L8271 DD $L8271 DD $L8276 ?SetMode@Thief@@AAEXHH@Z ENDP ; Thief::SetMode _TEXT ENDS PUBLIC ?DoInit@Thief@@AAEXH@Z ; Thief::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -36 _ch$ = -16 ?DoInit@Thief@@AAEXH@Z PROC NEAR ; Thief::DoInit ; Line 6864 push ebp mov ebp, esp sub esp, 36 ; 00000024H mov DWORD PTR _this$[ebp], ecx ; Line 6869 mov WORD PTR _ch$[ebp+8], 4 ; Line 6870 mov DWORD PTR _ch$[ebp+12], 456 ; 000001c8H ; Line 6871 mov DWORD PTR _ch$[ebp], 0 ; Line 6872 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 6874 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 6875 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+16] ; Line 6876 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+20], 0 ; Line 6877 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+28] ; Line 6879 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+36], 0 ; Line 6880 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+60], 0 ; Line 6881 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+364], 0 ; Line 6882 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 32 ; 00000020H push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6884 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode ; Line 6885 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetSubMode@Thief@@AAEXHH@Z ; Thief::SetSubMode ; Line 6886 mov esp, ebp pop ebp ret 4 ?DoInit@Thief@@AAEXH@Z ENDP ; Thief::DoInit _TEXT ENDS PUBLIC ?DoCollide@Thief@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z ; Thief::DoCollide _TEXT SEGMENT _this$ = -4 ?DoCollide@Thief@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z PROC NEAR ; Thief::DoCollide ; Line 6889 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 6890 mov esp, ebp pop ebp ret 8 ?DoCollide@Thief@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z ENDP ; Thief::DoCollide _TEXT ENDS PUBLIC ?DoNotify@Thief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; Thief::DoNotify _TEXT SEGMENT _me$ = 8 _notify$ = 12 _this$ = -20 _target_handle$8309 = -4 _target_type$8310 = -8 _f_success$8312 = -12 _id$8315 = -16 ?DoNotify@Thief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z PROC NEAR ; Thief::DoNotify ; Line 6893 push ebp mov ebp, esp sub esp, 24 ; 00000018H mov DWORD PTR _this$[ebp], ecx ; Line 6895 mov eax, DWORD PTR _notify$[ebp] mov ecx, DWORD PTR [eax] mov DWORD PTR -24+[ebp], ecx cmp DWORD PTR -24+[ebp], 14 ; 0000000eH je $L8318 cmp DWORD PTR -24+[ebp], 23 ; 00000017H je SHORT $L8308 jmp $L8305 $L8308: ; Line 6901 lea edx, DWORD PTR _target_handle$8309[ebp] push edx push 19 ; 00000013H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 6902 push 0 lea ecx, DWORD PTR _target_type$8310[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _target_handle$8309[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6904 cmp DWORD PTR _target_type$8310[ebp], 4 jne SHORT $L8311 ; Line 6908 push 0 push 1 mov eax, DWORD PTR _target_handle$8309[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoSteal@Thief@@AAE_NHHH_N@Z ; Thief::DoSteal mov BYTE PTR _f_success$8312[ebp], al ; Line 6909 mov dl, BYTE PTR _f_success$8312[ebp] push edx push 2 mov eax, DWORD PTR _target_handle$8309[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoSteal@Thief@@AAE_NHHH_N@Z ; Thief::DoSteal ; Line 6911 jmp SHORT $L8317 $L8311: cmp DWORD PTR _target_type$8310[ebp], 2 jne SHORT $L8317 ; Line 6915 push 0 lea edx, DWORD PTR _id$8315[ebp] push edx push 2 push 1 mov eax, DWORD PTR _target_handle$8309[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6916 mov ecx, DWORD PTR _id$8315[ebp] and ecx, 65535 ; 0000ffffH test ecx, ecx jne SHORT $L8316 ; Line 6918 mov edx, DWORD PTR _target_handle$8309[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoKidnap@Thief@@AAEXHH@Z ; Thief::DoKidnap ; Line 6920 jmp SHORT $L8317 $L8316: ; Line 6922 mov ecx, DWORD PTR _target_handle$8309[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoAttack@Thief@@AAEXHH@Z ; Thief::DoAttack $L8317: ; Line 6927 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode ; Line 6929 jmp SHORT $L8305 $L8318: ; Line 6932 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] cmp eax, 2 jne SHORT $L8319 ; Line 6934 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode $L8319: $L8305: ; Line 6940 mov al, 1 ; Line 6941 mov esp, ebp pop ebp ret 8 ?DoNotify@Thief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ENDP ; Thief::DoNotify _TEXT ENDS PUBLIC __real@4@4005ac00000000000000 PUBLIC __real@8@40058200000000000000 PUBLIC __real@8@40058e00000000000000 PUBLIC __real@4@40008ccccd0000000000 PUBLIC __real@8@4003a000000000000000 PUBLIC ?SpewEverything@Thief@@AAEXH@Z ; Thief::SpewEverything PUBLIC ?DoFrame@Thief@@AAEXH@Z ; Thief::DoFrame _DATA SEGMENT ORG $+1 $SG8336 DB 'TubbsHitBlast', 00H _DATA ENDS ; COMDAT __real@4@4005ac00000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4005ac00000000000000 DD 042ac0000r ; 86 CONST ENDS ; COMDAT __real@8@40058200000000000000 CONST SEGMENT __real@8@40058200000000000000 DQ 04050400000000000r ; 65 CONST ENDS ; COMDAT __real@8@40058e00000000000000 CONST SEGMENT __real@8@40058e00000000000000 DQ 04051c00000000000r ; 71 CONST ENDS ; COMDAT __real@4@40008ccccd0000000000 CONST SEGMENT __real@4@40008ccccd0000000000 DD 0400ccccdr ; 2.2 CONST ENDS ; COMDAT __real@8@4003a000000000000000 CONST SEGMENT __real@8@4003a000000000000000 DQ 04034000000000000r ; 20 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -960 _anim_frame$ = -12 _shields$ = -8 _flags$ = -4 _f_used$ = -936 _m$ = -932 _room$8333 = -944 _pos$8334 = -956 _weapon_id$8335 = -940 ?DoFrame@Thief@@AAEXH@Z PROC NEAR ; Thief::DoFrame ; File aigame.cpp ; Line 6944 push ebp mov ebp, esp sub esp, 960 ; 000003c0H push esi mov DWORD PTR _this$[ebp], ecx ; Line 6953 push 0 lea eax, DWORD PTR _anim_frame$[ebp] push eax push 18 ; 00000012H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6954 push 0 lea edx, DWORD PTR _shields$[ebp] push edx push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6955 push 0 lea ecx, DWORD PTR _flags$[ebp] push ecx push 10 ; 0000000aH push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6958 push 0 lea eax, DWORD PTR _f_used$[ebp] push eax push 50 ; 00000032H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 6959 mov edx, DWORD PTR _f_used$[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L8328 ; Line 6961 jmp $L8323 $L8328: ; Line 6965 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 6967 lea ecx, DWORD PTR _m$[ebp] push ecx push 38 ; 00000026H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 6968 lea edx, DWORD PTR _m$[ebp] push edx push 40 ; 00000028H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 6970 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx] cmp edx, 7 je SHORT $L8330 mov eax, DWORD PTR _flags$[ebp] and eax, 8388608 ; 00800000H test eax, eax je SHORT $L8330 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 jne SHORT $L8330 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8330 ; Line 6972 push 7 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode $L8330: ; Line 6975 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax] cmp ecx, 7 jne $L8331 ; Line 6977 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4005ac00000000000000 fnstsw ax test ah, 65 ; 00000041H jne $L8332 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+20] fcomp DWORD PTR __real@4@4005ac00000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8332 ; Line 6983 push 0 lea ecx, DWORD PTR _room$8333[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6984 push 0 lea eax, DWORD PTR _pos$8334[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 6986 push OFFSET FLAT:$SG8336 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$8335[ebp], eax ; Line 6987 push 0 mov edx, DWORD PTR _me$[ebp] push edx push 0 lea eax, DWORD PTR _pos$8334[ebp] push eax mov ecx, DWORD PTR _room$8333[ebp] push ecx mov dx, WORD PTR _weapon_id$8335[ebp] push edx push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH $L8332: ; Line 6990 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+12] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 1 je SHORT $L8337 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+12] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 1 jne SHORT $L8337 ; Line 6992 push 1065353216 ; 3f800000H push 1232348160 ; 49742400H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH $L8337: ; Line 6995 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+12] fcomp DWORD PTR __real@4@40028000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8338 ; Line 6997 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H $L8338: ; Line 7000 jmp $L8350 $L8331: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] cmp eax, 4 jne $L8340 ; Line 7002 fld DWORD PTR _anim_frame$[ebp] fcomp QWORD PTR __real@8@40058200000000000000 fnstsw ax test ah, 1 jne SHORT $L8341 fld DWORD PTR _anim_frame$[ebp] fcomp QWORD PTR __real@8@40058e00000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8341 ; Line 7004 push -1 push -1 push 1 push 1065353216 ; 3f800000H push 1117650944 ; 429e0000H push 1116602368 ; 428e0000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L8341: ; Line 7007 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+12] fcomp DWORD PTR __real@4@40008ccccd0000000000 fnstsw ax test ah, 1 je SHORT $L8342 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+12] fcomp DWORD PTR __real@4@40008ccccd0000000000 fnstsw ax test ah, 1 jne SHORT $L8342 ; Line 7009 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SpewEverything@Thief@@AAEXH@Z ; Thief::SpewEverything $L8342: ; Line 7012 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+12] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 1 je SHORT $L8343 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+12] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 1 jne SHORT $L8343 ; Line 7014 push 0 push -1 push 2 push 1069547520 ; 3fc00000H push 1118437376 ; 42aa0000H push 1117650944 ; 429e0000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L8343: ; Line 7017 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+12] fcomp DWORD PTR __real@4@4000c000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8344 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 jne SHORT $L8344 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4001c000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L8344 ; Line 7019 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode $L8344: ; Line 7022 jmp $L8350 $L8340: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] test eax, eax jne $L8346 ; Line 7024 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoSubModeFrame@Thief@@AAEXH@Z ; Thief::DoSubModeFrame ; Line 7026 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+12] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8347 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+1] test eax, eax jne SHORT $L8347 ; Line 7028 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode $L8347: ; Line 7031 fld DWORD PTR _shields$[ebp] fcomp DWORD PTR __real@4@4003a000000000000000 fnstsw ax test ah, 1 je SHORT $L8348 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+32] fcomp QWORD PTR __real@8@4003a000000000000000 fnstsw ax test ah, 1 jne SHORT $L8348 ; Line 7033 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode $L8348: ; Line 7036 jmp SHORT $L8350 $L8346: ; Line 7038 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+12] fcomp QWORD PTR __real@8@4002a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8350 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+1] test eax, eax jne SHORT $L8350 ; Line 7040 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Thief@@AAEXHH@Z ; Thief::SetMode $L8350: ; Line 7045 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+12] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+12] ; Line 7046 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+8] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+8] ; Line 7048 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _anim_frame$[ebp] mov DWORD PTR [eax+20], ecx ; Line 7049 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _shields$[ebp] mov DWORD PTR [eax+32], ecx $L8323: ; Line 7050 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@Thief@@AAEXH@Z ENDP ; Thief::DoFrame _TEXT ENDS _DATA SEGMENT ORG $+2 $SG8401 DB 'ThiefAutoMap', 00H ORG $+3 $SG8404 DB 'HeadlightPowerup', 00H ORG $+3 $SG8407 DB 'Converter', 00H ORG $+2 $SG8410 DB 'Cloak', 00H ORG $+2 $SG8413 DB 'Invulnerability', 00H $SG8416 DB 'Rapidfire', 00H ORG $+2 $SG8419 DB 'QuadLaser', 00H _DATA ENDS _TEXT SEGMENT $T11381 = -80 $T11382 = -92 $T11383 = -104 $T11384 = -116 _me$ = 8 _this$ = -120 _i$ = -8 _powerup_handle$ = -4 _room$ = -12 _pos$ = -24 _id$8362 = -32 _j$8363 = -28 _speed$8367 = -36 _dir$8369 = -48 _id$8394 = -52 _speed$8422 = -56 _dir$8424 = -68 ?SpewEverything@Thief@@AAEXH@Z PROC NEAR ; Thief::SpewEverything ; Line 7053 push ebp mov ebp, esp sub esp, 156 ; 0000009cH mov DWORD PTR _this$[ebp], ecx ; Line 7059 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7060 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7062 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8359 $L8360: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx $L8359: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] cmp ecx, DWORD PTR [eax+60] jge $L8361 ; Line 7067 mov DWORD PTR _j$8363[ebp], 0 jmp SHORT $L8364 $L8365: mov edx, DWORD PTR _j$8363[ebp] add edx, 1 mov DWORD PTR _j$8363[ebp], edx $L8364: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] imul edx, 12 ; 0000000cH movsx eax, BYTE PTR [ecx+edx+72] cmp DWORD PTR _j$8363[ebp], eax jge $L8366 ; Line 7069 call _rand mov DWORD PTR -124+[ebp], eax fild DWORD PTR -124+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4003a000000000000000 fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR _speed$8367[ebp] ; Line 7072 call _rand mov DWORD PTR -128+[ebp], eax fild DWORD PTR -128+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$8369[ebp] ; Line 7073 call _rand mov DWORD PTR -132+[ebp], eax fild DWORD PTR -132+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$8369[ebp+4] ; Line 7074 call _rand mov DWORD PTR -136+[ebp], eax fild DWORD PTR -136+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$8369[ebp+8] ; Line 7076 lea ecx, DWORD PTR _dir$8369[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 7077 mov edx, DWORD PTR _speed$8367[ebp] push edx lea eax, DWORD PTR _dir$8369[ebp] push eax lea ecx, DWORD PTR $T11382[ebp] push ecx call ??X@YA?AUvector@@AAU0@M@Z ; operator*= add esp, 12 ; 0000000cH mov edx, DWORD PTR [eax] mov DWORD PTR $T11381[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11381[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11381[ebp+8], edx ; Line 7079 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] imul edx, 12 ; 0000000cH movsx eax, BYTE PTR [ecx+edx+64] push eax lea ecx, DWORD PTR _id$8362[ebp] push ecx push 9 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] imul ecx, 12 ; 0000000cH mov edx, DWORD PTR [eax+ecx+68] push edx call DWORD PTR ?Player_Value@@3P6AXHDDPAXH@ZA ; Player_Value add esp, 20 ; 00000014H ; Line 7080 lea eax, DWORD PTR _dir$8369[ebp] push eax push -1 push 0 lea ecx, DWORD PTR _pos$[ebp] push ecx mov edx, DWORD PTR _room$[ebp] push edx mov ax, WORD PTR _id$8362[ebp] push eax push 7 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _powerup_handle$[ebp], eax ; Line 7081 jmp $L8365 $L8366: ; Line 7083 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$[ebp] imul eax, 12 ; 0000000cH mov BYTE PTR [edx+eax+72], 0 ; Line 7084 jmp $L8360 $L8361: ; Line 7086 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8374 $L8375: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx $L8374: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] cmp ecx, DWORD PTR [eax+36] jge SHORT $L8376 ; Line 7088 jmp SHORT $L8375 $L8376: ; Line 7089 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+36], 0 ; Line 7091 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8377 $L8378: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx $L8377: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] cmp ecx, DWORD PTR [eax+364] jge $L8379 ; Line 7097 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] xor edx, edx mov dx, WORD PTR [eax+ecx*8+368] mov DWORD PTR -140+[ebp], edx mov eax, DWORD PTR -140+[ebp] sub eax, 1 mov DWORD PTR -140+[ebp], eax cmp DWORD PTR -140+[ebp], 6 ja $L8420 mov ecx, DWORD PTR -140+[ebp] jmp DWORD PTR $L11385[ecx*4] $L8399: ; Line 7099 cmp DWORD PTR _?am_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, -2 ; fffffffeH jne SHORT $L8400 ; Line 7100 push OFFSET FLAT:$SG8401 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _?am_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, eax $L8400: ; Line 7101 mov edx, DWORD PTR _?am_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA mov DWORD PTR _id$8394[ebp], edx ; Line 7102 jmp $L8396 $L8402: ; Line 7104 cmp DWORD PTR _?hl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, -2 ; fffffffeH jne SHORT $L8403 ; Line 7105 push OFFSET FLAT:$SG8404 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _?hl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, eax $L8403: ; Line 7106 mov eax, DWORD PTR _?hl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA mov DWORD PTR _id$8394[ebp], eax ; Line 7107 jmp $L8396 $L8405: ; Line 7109 cmp DWORD PTR _?etos_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, -2 ; fffffffeH jne SHORT $L8406 ; Line 7110 push OFFSET FLAT:$SG8407 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _?etos_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, eax $L8406: ; Line 7111 mov ecx, DWORD PTR _?etos_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA mov DWORD PTR _id$8394[ebp], ecx ; Line 7112 jmp $L8396 $L8408: ; Line 7114 cmp DWORD PTR _?cl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, -2 ; fffffffeH jne SHORT $L8409 ; Line 7115 push OFFSET FLAT:$SG8410 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _?cl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, eax $L8409: ; Line 7116 mov edx, DWORD PTR _?cl_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA mov DWORD PTR _id$8394[ebp], edx ; Line 7117 jmp SHORT $L8396 $L8411: ; Line 7119 cmp DWORD PTR _?iv_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, -2 ; fffffffeH jne SHORT $L8412 ; Line 7120 push OFFSET FLAT:$SG8413 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _?iv_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, eax $L8412: ; Line 7121 mov eax, DWORD PTR _?iv_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA mov DWORD PTR _id$8394[ebp], eax ; Line 7122 jmp SHORT $L8396 $L8414: ; Line 7124 cmp DWORD PTR _?rf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, -2 ; fffffffeH jne SHORT $L8415 ; Line 7125 push OFFSET FLAT:$SG8416 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _?rf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, eax $L8415: ; Line 7126 mov ecx, DWORD PTR _?rf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA mov DWORD PTR _id$8394[ebp], ecx ; Line 7127 jmp SHORT $L8396 $L8417: ; Line 7129 cmp DWORD PTR _?qf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, -2 ; fffffffeH jne SHORT $L8418 ; Line 7130 push OFFSET FLAT:$SG8419 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _?qf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA, eax $L8418: ; Line 7131 mov edx, DWORD PTR _?qf_id@?9??SpewEverything@Thief@@AAEXH@Z@4HA mov DWORD PTR _id$8394[ebp], edx ; Line 7132 jmp SHORT $L8396 $L8420: ; Line 7134 mov DWORD PTR _id$8394[ebp], -1 $L8396: ; Line 7138 cmp DWORD PTR _id$8394[ebp], -1 jle $L8421 ; Line 7140 call _rand mov DWORD PTR -144+[ebp], eax fild DWORD PTR -144+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4003a000000000000000 fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR _speed$8422[ebp] ; Line 7143 call _rand mov DWORD PTR -148+[ebp], eax fild DWORD PTR -148+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$8424[ebp] ; Line 7144 call _rand mov DWORD PTR -152+[ebp], eax fild DWORD PTR -152+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$8424[ebp+4] ; Line 7145 call _rand mov DWORD PTR -156+[ebp], eax fild DWORD PTR -156+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsub DWORD PTR __real@4@3ffe8000000000000000 fstp DWORD PTR _dir$8424[ebp+8] ; Line 7147 lea eax, DWORD PTR _dir$8424[ebp] push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 7148 mov ecx, DWORD PTR _speed$8422[ebp] push ecx lea edx, DWORD PTR _dir$8424[ebp] push edx lea eax, DWORD PTR $T11384[ebp] push eax call ??X@YA?AUvector@@AAU0@M@Z ; operator*= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11383[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11383[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11383[ebp+8], eax ; Line 7150 lea ecx, DWORD PTR _dir$8424[ebp] push ecx push -1 push 0 lea edx, DWORD PTR _pos$[ebp] push edx mov eax, DWORD PTR _room$[ebp] push eax mov cx, WORD PTR _id$8394[ebp] push ecx push 7 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _powerup_handle$[ebp], eax $L8421: ; Line 7152 jmp $L8378 $L8379: ; Line 7153 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+364], 0 ; Line 7154 mov esp, ebp pop ebp ret 4 $L11385: DD $L8399 DD $L8402 DD $L8405 DD $L8408 DD $L8411 DD $L8414 DD $L8417 ?SpewEverything@Thief@@AAEXH@Z ENDP ; Thief::SpewEverything _TEXT ENDS PUBLIC ?DoDestroy@Thief@@AAEXHPAUtOSIRISEVTDESTROY@@@Z ; Thief::DoDestroy _TEXT SEGMENT _me$ = 8 _this$ = -4 ?DoDestroy@Thief@@AAEXHPAUtOSIRISEVTDESTROY@@@Z PROC NEAR ; Thief::DoDestroy ; Line 7157 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 7158 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SpewEverything@Thief@@AAEXH@Z ; Thief::SpewEverything ; Line 7159 mov esp, ebp pop ebp ret 8 ?DoDestroy@Thief@@AAEXHPAUtOSIRISEVTDESTROY@@@Z ENDP ; Thief::DoDestroy _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Thief@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Thief::CallEvent ; Line 7162 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 7164 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja $L8440 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11388[eax] jmp DWORD PTR $L11389[edx*4] $L8443: ; Line 7166 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Thief@@AAEXH@Z ; Thief::DoInit ; Line 7167 jmp SHORT $L8440 $L8444: ; Line 7169 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Thief@@AAEXH@Z ; Thief::DoFrame ; Line 7170 jmp SHORT $L8440 $L8445: ; Line 7172 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@Thief@@AAEXHPAUtOSIRISEVTCOLLIDE@@@Z ; Thief::DoCollide ; Line 7173 jmp SHORT $L8440 $L8446: ; Line 7175 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Thief@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; Thief::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L8438 $L8447: ; Line 7178 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoDestroy@Thief@@AAEXHPAUtOSIRISEVTDESTROY@@@Z ; Thief::DoDestroy ; Line 7179 jmp SHORT $L8440 $L8448: ; Line 7182 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L8440: ; Line 7186 mov ax, 257 ; 00000101H $L8438: ; Line 7187 mov esp, ebp pop ebp ret 8 $L11389: DD $L8444 DD $L8445 DD $L8447 DD $L8446 DD $L8443 DD $L8448 DD $L8440 $L11388: DB 0 DB 6 DB 1 DB 6 DB 2 DB 6 DB 6 DB 6 DB 6 DB 6 DB 6 DB 6 DB 6 DB 6 DB 6 DB 3 DB 4 DB 6 DB 6 DB 6 DB 6 DB 6 DB 6 DB 6 DB 5 ?CallEvent@Thief@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Thief::CallEvent _TEXT ENDS PUBLIC __real@8@4007c800000000000000 PUBLIC __real@4@4000cccccd0000000000 PUBLIC ?SetMode@Sickle@@AAEXHD@Z ; Sickle::SetMode _DATA SEGMENT ORG $+2 $SG8481 DB 'Sickle is all messed up!', 0aH, 00H _DATA ENDS ; COMDAT __real@8@4007c800000000000000 ; File aigame.cpp CONST SEGMENT __real@8@4007c800000000000000 DQ 04079000000000000r ; 400 CONST ENDS ; COMDAT __real@4@4000cccccd0000000000 CONST SEGMENT __real@4@4000cccccd0000000000 DD 0404ccccdr ; 3.2 CONST ENDS _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -136 _flags$8461 = -4 _ray$8463 = -92 _flags$8464 = -20 _fate$8465 = -28 _start_room$8466 = -32 _start_pos$8467 = -104 _end_pos$8468 = -16 _ceiling_room$8469 = -24 _flags$8471 = -108 _movement_type$8472 = -112 _flags$8474 = -128 _vel$8475 = -124 _movement_type$8476 = -132 ?SetMode@Sickle@@AAEXHD@Z PROC NEAR ; Sickle::SetMode ; File aigame.cpp ; Line 7200 push ebp mov ebp, esp sub esp, 144 ; 00000090H mov DWORD PTR _this$[ebp], ecx ; Line 7201 movsx eax, BYTE PTR _mode$[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp eax, DWORD PTR [edx] jne SHORT $L8455 ; Line 7202 jmp $L8454 $L8455: ; Line 7206 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+41], 0 ; Line 7207 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+40], 0 ; Line 7209 push 5 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 7212 movsx edx, BYTE PTR _mode$[ebp] mov DWORD PTR -140+[ebp], edx mov eax, DWORD PTR -140+[ebp] sub eax, 3 mov DWORD PTR -140+[ebp], eax cmp DWORD PTR -140+[ebp], 12 ; 0000000cH ja $L8480 mov edx, DWORD PTR -140+[ebp] xor ecx, ecx mov cl, BYTE PTR $L11395[edx] jmp DWORD PTR $L11396[ecx*4] $L8460: ; Line 7218 mov DWORD PTR _flags$8461[ebp], 33554432 ; 02000000H ; Line 7219 lea eax, DWORD PTR _flags$8461[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7222 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+56] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 44 ; 0000002cH push eax push 4104 ; 00001008H push -1 push 1065353216 ; 3f800000H push 2 push 1048576 ; 00100000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 7223 push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 7225 jmp $L8457 $L8462: ; Line 7240 mov DWORD PTR _flags$8464[ebp], 2 ; Line 7241 push 0 lea eax, DWORD PTR _flags$8464[ebp] push eax push 16 ; 00000010H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7243 push 0 lea edx, DWORD PTR _start_pos$8467[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7244 push 0 lea ecx, DWORD PTR _start_room$8466[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7245 mov eax, DWORD PTR _start_pos$8467[ebp] mov DWORD PTR _end_pos$8468[ebp], eax mov ecx, DWORD PTR _start_pos$8467[ebp+4] mov DWORD PTR _end_pos$8468[ebp+4], ecx mov edx, DWORD PTR _start_pos$8467[ebp+8] mov DWORD PTR _end_pos$8468[ebp+8], edx ; Line 7246 fld DWORD PTR _end_pos$8468[ebp+4] fadd QWORD PTR __real@8@4007c800000000000000 fstp DWORD PTR _end_pos$8468[ebp+4] ; Line 7247 mov DWORD PTR _flags$8464[ebp], 1049353 ; 00100309H ; Line 7248 lea eax, DWORD PTR _ray$8463[ebp] push eax mov ecx, DWORD PTR _flags$8464[ebp] push ecx push 0 mov edx, DWORD PTR _start_room$8466[ebp] push edx lea eax, DWORD PTR _end_pos$8468[ebp] push eax lea ecx, DWORD PTR _start_pos$8467[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast add esp, 28 ; 0000001cH mov DWORD PTR _fate$8465[ebp], eax ; Line 7250 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 8 mov edx, DWORD PTR _ray$8463[ebp+8] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _ray$8463[ebp+12] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _ray$8463[ebp+16] mov DWORD PTR [ecx+8], edx ; Line 7251 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+12] fsub DWORD PTR __real@4@4000cccccd0000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+12] ; Line 7253 lea ecx, DWORD PTR _ray$8463[ebp] push ecx mov edx, DWORD PTR _flags$8464[ebp] push edx push 0 mov eax, DWORD PTR _start_room$8466[ebp] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 8 push edx lea eax, DWORD PTR _start_pos$8467[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?FVI_RayCast@@3P6AHHPAUvector@@0HMHPAUray_info@@@ZA ; FVI_RayCast add esp, 28 ; 0000001cH mov DWORD PTR _fate$8465[ebp], eax ; Line 7254 mov edx, DWORD PTR _ray$8463[ebp+4] mov DWORD PTR _ceiling_room$8469[ebp], edx ; Line 7256 mov eax, DWORD PTR _ceiling_room$8469[ebp] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 8 push edx push 131077 ; 00020005H push -1 push 1065353216 ; 3f800000H push 2 push 1048576 ; 00100000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 7257 push 0 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 7260 mov DWORD PTR _flags$8464[ebp], 262144 ; 00040000H ; Line 7261 push 0 lea edx, DWORD PTR _flags$8464[ebp] push edx push 16 ; 00000010H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7263 mov DWORD PTR _flags$8464[ebp], 528482304 ; 1f800000H ; Line 7264 push 0 lea ecx, DWORD PTR _flags$8464[ebp] push ecx push 16 ; 00000010H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7266 jmp $L8457 $L8470: ; Line 7273 mov DWORD PTR _flags$8471[ebp], 536870976 ; 20000040H ; Line 7274 lea eax, DWORD PTR _flags$8471[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7276 mov BYTE PTR _movement_type$8472[ebp], 0 ; Line 7277 push 0 lea edx, DWORD PTR _movement_type$8472[ebp] push edx push 13 ; 0000000dH push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7279 jmp $L8457 $L8473: ; Line 7286 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx], 12 ; 0000000cH jne SHORT $L8477 ; Line 7288 push 0 lea eax, DWORD PTR _vel$8475[ebp] push eax push 6 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7289 call _rand mov DWORD PTR -144+[ebp], eax fild DWORD PTR -144+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4002f000000000000000 fadd DWORD PTR __real@4@40028000000000000000 fsubr DWORD PTR _vel$8475[ebp+4] fstp DWORD PTR _vel$8475[ebp+4] ; Line 7290 push 0 lea edx, DWORD PTR _vel$8475[ebp] push edx push 6 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L8477: ; Line 7294 mov DWORD PTR _flags$8474[ebp], 528744448 ; 1f840000H ; Line 7295 push 0 lea ecx, DWORD PTR _flags$8474[ebp] push ecx push 16 ; 00000010H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7297 mov DWORD PTR _flags$8474[ebp], 2 ; Line 7298 push 0 lea eax, DWORD PTR _flags$8474[ebp] push eax push 16 ; 00000010H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7300 mov DWORD PTR _flags$8474[ebp], 570425408 ; 22000040H ; Line 7301 lea edx, DWORD PTR _flags$8474[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7303 mov BYTE PTR _movement_type$8476[ebp], 1 ; Line 7304 push 0 lea ecx, DWORD PTR _movement_type$8476[ebp] push ecx push 13 ; 0000000dH push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7306 push 6 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 7308 jmp SHORT $L8457 $L8480: ; Line 7310 push OFFSET FLAT:$SG8481 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 8 $L8457: ; Line 7313 movsx ecx, BYTE PTR _mode$[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax], ecx ; Line 7314 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], 0 $L8454: ; Line 7315 mov esp, ebp pop ebp ret 8 $L11396: DD $L8460 DD $L8462 DD $L8470 DD $L8473 DD $L8480 $L11395: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 4 DB 2 DB 4 DB 4 DB 3 ?SetMode@Sickle@@AAEXHD@Z ENDP ; Sickle::SetMode _TEXT ENDS PUBLIC ?DoInit@Sickle@@AAEXH@Z ; Sickle::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -980 _flags$ = -4 _m$ = -976 _ch$ = -56 _orient$ = -40 ?DoInit@Sickle@@AAEXH@Z PROC NEAR ; Sickle::DoInit ; Line 7318 push ebp mov ebp, esp sub esp, 980 ; 000003d4H mov DWORD PTR _this$[ebp], ecx ; Line 7321 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 7324 mov WORD PTR _ch$[ebp+8], 4 ; Line 7325 mov DWORD PTR _ch$[ebp+12], 72 ; 00000048H ; Line 7326 mov DWORD PTR _ch$[ebp], 0 ; Line 7327 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], ecx ; Line 7329 lea edx, DWORD PTR _ch$[ebp] push edx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 7331 push 5 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 7332 mov DWORD PTR _flags$[ebp], 570425408 ; 22000040H ; Line 7333 lea eax, DWORD PTR _flags$[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7335 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 44 ; 0000002cH push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7336 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 56 ; 00000038H push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7337 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+40], 0 ; Line 7338 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+41], 0 ; Line 7340 mov DWORD PTR _flags$[ebp], 2 ; Line 7341 push 0 lea eax, DWORD PTR _flags$[ebp] push eax push 16 ; 00000010H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7343 mov DWORD PTR _flags$[ebp], 262144 ; 00040000H ; Line 7344 push 0 lea edx, DWORD PTR _flags$[ebp] push edx push 16 ; 00000010H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7347 push 0 lea ecx, DWORD PTR _orient$[ebp] push ecx push 4 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7348 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 60 ; 0000003cH mov edx, DWORD PTR _orient$[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$[ebp+32] mov DWORD PTR [ecx+8], edx ; Line 7349 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+64], 0 ; Line 7350 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 60 ; 0000003cH push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 7352 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], 0 ; Line 7354 push 15 ; 0000000fH mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sickle@@AAEXHD@Z ; Sickle::SetMode ; Line 7355 mov esp, ebp pop ebp ret 4 ?DoInit@Sickle@@AAEXH@Z ENDP ; Sickle::DoInit _TEXT ENDS PUBLIC __real@4@4004dc00000000000000 PUBLIC __real@8@4001e000000000000000 PUBLIC ?DoFrame@Sickle@@AAEXH@Z ; Sickle::DoFrame ; COMDAT __real@4@4004dc00000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4004dc00000000000000 DD 0425c0000r ; 55 CONST ENDS ; COMDAT __real@8@4001e000000000000000 CONST SEGMENT __real@8@4001e000000000000000 DQ 0401c000000000000r ; 7 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -88 _uvec$ = -56 _anim_frame$ = -40 _new_mode$ = -16 _last_see_time$ = -68 _temp_time$ = -60 ?DoFrame@Sickle@@AAEXH@Z PROC NEAR ; Sickle::DoFrame ; File aigame.cpp ; Line 7358 push ebp mov ebp, esp sub esp, 88 ; 00000058H push esi mov DWORD PTR _this$[ebp], ecx ; Line 7373 lea eax, DWORD PTR _temp_time$[ebp] push eax push 25 ; 00000019H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7374 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fsub DWORD PTR _temp_time$[ebp] fstp DWORD PTR _last_see_time$[ebp] ; Line 7376 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR [esi+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+4] ; Line 7378 push 0 lea edx, DWORD PTR _anim_frame$[ebp] push edx push 18 ; 00000012H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7380 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx] mov DWORD PTR _new_mode$[ebp], eax ; Line 7382 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4004c800000000000000 fnstsw ax test ah, 1 jne SHORT $L8511 fld DWORD PTR _anim_frame$[ebp] fcomp DWORD PTR __real@4@4004dc00000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8510 $L8511: fld DWORD PTR _last_see_time$[ebp] fcomp QWORD PTR __real@8@4001e000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8509 $L8510: ; Line 7384 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx], 15 ; 0000000fH jne SHORT $L8512 ; Line 7386 mov DWORD PTR _new_mode$[ebp], 3 $L8512: ; Line 7389 jmp SHORT $L8513 $L8509: ; Line 7391 mov DWORD PTR _new_mode$[ebp], 15 ; 0000000fH $L8513: ; Line 7394 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx] cmp edx, DWORD PTR _new_mode$[ebp] je SHORT $L8514 ; Line 7396 mov al, BYTE PTR _new_mode$[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sickle@@AAEXHD@Z ; Sickle::SetMode $L8514: ; Line 7399 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax], 3 jne SHORT $L8515 ; Line 7403 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor eax, eax mov al, BYTE PTR [edx+41] cmp eax, 1 jne SHORT $L8516 ; Line 7405 push 10 ; 0000000aH mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sickle@@AAEXHD@Z ; Sickle::SetMode $L8516: ; Line 7408 jmp SHORT $L8519 $L8515: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax], 10 ; 0000000aH jne SHORT $L8519 ; Line 7410 mov DWORD PTR _uvec$[ebp], 0 ; Line 7411 mov DWORD PTR _uvec$[ebp+4], -1082130432 ; bf800000H ; Line 7412 mov DWORD PTR _uvec$[ebp+8], 0 ; Line 7418 lea ecx, DWORD PTR _uvec$[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 60 ; 0000003cH push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_TurnTowardsVectors@@3P6AEHPAUvector@@0@ZA ; AI_TurnTowardsVectors add esp, 12 ; 0000000cH and eax, 255 ; 000000ffH neg eax sbb eax, eax neg eax mov edx, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [edx+4] mov BYTE PTR [ecx+40], al ; Line 7420 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cl, BYTE PTR [eax+40] cmp ecx, 1 jne SHORT $L8519 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor ecx, ecx mov cl, BYTE PTR [eax+41] cmp ecx, 1 jne SHORT $L8519 ; Line 7422 push 12 ; 0000000cH mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sickle@@AAEXHD@Z ; Sickle::SetMode $L8519: ; Line 7425 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@Sickle@@AAEXH@Z ENDP ; Sickle::DoFrame _TEXT ENDS PUBLIC ?DoNotify@Sickle@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; Sickle::DoNotify _TEXT SEGMENT _notify$ = 12 _this$ = -4 ?DoNotify@Sickle@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z PROC NEAR ; Sickle::DoNotify ; Line 7428 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 7431 mov eax, DWORD PTR _notify$[ebp] mov ecx, DWORD PTR [eax] push ecx call ?IsGoalFinishedNotify@@YA_NH@Z ; IsGoalFinishedNotify add esp, 4 and eax, 255 ; 000000ffH test eax, eax je SHORT $L8525 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax], 3 je SHORT $L8526 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx], 10 ; 0000000aH jne SHORT $L8525 $L8526: mov eax, DWORD PTR _notify$[ebp] cmp DWORD PTR [eax+8], 2 jne SHORT $L8525 ; Line 7434 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+41], 1 $L8525: ; Line 7437 mov al, 1 ; Line 7438 mov esp, ebp pop ebp ret 8 ?DoNotify@Sickle@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ENDP ; Sickle::DoNotify _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Sickle@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Sickle::CallEvent ; Line 7441 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 7443 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L8533 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11405[eax] jmp DWORD PTR $L11406[edx*4] $L8536: ; Line 7445 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Sickle@@AAEXH@Z ; Sickle::DoInit ; Line 7446 jmp SHORT $L8533 $L8537: ; Line 7448 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Sickle@@AAEXH@Z ; Sickle::DoFrame ; Line 7449 jmp SHORT $L8533 $L8538: ; Line 7451 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Sickle@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; Sickle::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L8531 $L8540: ; Line 7457 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L8533: ; Line 7461 mov ax, 257 ; 00000101H $L8531: ; Line 7462 mov esp, ebp pop ebp ret 8 $L11406: DD $L8537 DD $L8538 DD $L8536 DD $L8540 DD $L8533 $L11405: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Sickle@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Sickle::CallEvent _TEXT ENDS PUBLIC ?DoInit@FireAtDist@@AAEXH@Z ; FireAtDist::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -940 _m$ = -936 _ch$ = -16 ?DoInit@FireAtDist@@AAEXH@Z PROC NEAR ; FireAtDist::DoInit ; Line 7469 push ebp mov ebp, esp sub esp, 940 ; 000003acH mov DWORD PTR _this$[ebp], ecx ; Line 7471 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 7474 mov WORD PTR _ch$[ebp+8], 4 ; Line 7475 mov DWORD PTR _ch$[ebp+12], 16 ; 00000010H ; Line 7476 mov DWORD PTR _ch$[ebp], 0 ; Line 7477 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], ecx ; Line 7479 lea edx, DWORD PTR _ch$[ebp] push edx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 7481 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] ; Line 7482 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+12], 0 ; Line 7483 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _me$[ebp] mov DWORD PTR [ecx], edx ; Line 7485 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 4 push ecx push 7 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7486 mov esp, ebp pop ebp ret 4 ?DoInit@FireAtDist@@AAEXH@Z ENDP ; FireAtDist::DoInit _TEXT ENDS PUBLIC ?DoFrame@FireAtDist@@AAEXH@Z ; FireAtDist::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -856 _pos$8555 = -832 _room$8556 = -820 _scan_objs$8557 = -812 _n_scan$8558 = -12 _i$8559 = -816 _dist$8560 = -8 _type$8564 = -836 _p_pos$8566 = -848 _cur_dist$8567 = -852 _flags$ = -4 ?DoFrame@FireAtDist@@AAEXH@Z PROC NEAR ; FireAtDist::DoFrame ; Line 7489 push ebp mov ebp, esp sub esp, 860 ; 0000035cH mov DWORD PTR _this$[ebp], ecx ; Line 7490 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+8] fadd DWORD PTR __real@4@4000c000000000000000 fstp DWORD PTR -860+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -860+[ebp] fnstsw ax test ah, 65 ; 00000041H jne $L8563 ; Line 7500 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] ; Line 7502 push 0 lea ecx, DWORD PTR _pos$8555[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7503 push 0 lea edx, DWORD PTR _room$8556[ebp] push edx push 5 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7505 lea eax, DWORD PTR _dist$8560[ebp] push eax push 7 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7507 push 1 push 0 push 1 push 0 push 200 ; 000000c8H lea ecx, DWORD PTR _scan_objs$8557[ebp] push ecx mov edx, DWORD PTR _dist$8560[ebp] push edx mov eax, DWORD PTR _room$8556[ebp] push eax lea ecx, DWORD PTR _pos$8555[ebp] push ecx call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$8558[ebp], eax ; Line 7509 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+12], 0 ; Line 7511 mov DWORD PTR _i$8559[ebp], 0 jmp SHORT $L8561 $L8562: mov ecx, DWORD PTR _i$8559[ebp] add ecx, 1 mov DWORD PTR _i$8559[ebp], ecx $L8561: mov edx, DWORD PTR _i$8559[ebp] cmp edx, DWORD PTR _n_scan$8558[ebp] jge $L8563 ; Line 7515 push 0 lea eax, DWORD PTR _type$8564[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _i$8559[ebp] mov edx, DWORD PTR _scan_objs$8557[ebp+ecx*4] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7517 cmp DWORD PTR _type$8564[ebp], 4 jne SHORT $L8568 ; Line 7522 push 0 lea eax, DWORD PTR _p_pos$8566[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _i$8559[ebp] mov edx, DWORD PTR _scan_objs$8557[ebp+ecx*4] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7524 lea eax, DWORD PTR _p_pos$8566[ebp] push eax lea ecx, DWORD PTR _pos$8555[ebp] push ecx call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _cur_dist$8567[ebp] ; Line 7526 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR _cur_dist$8567[ebp] fcomp DWORD PTR [eax+4] fnstsw ax test ah, 65 ; 00000041H je SHORT $L8568 ; Line 7528 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+12], 1 ; Line 7529 jmp SHORT $L8563 $L8568: ; Line 7532 jmp $L8562 $L8563: ; Line 7535 mov DWORD PTR _flags$[ebp], 32 ; 00000020H ; Line 7536 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dl, BYTE PTR [ecx+12] test edx, edx je SHORT $L8570 ; Line 7538 lea eax, DWORD PTR _flags$[ebp] push eax push 52 ; 00000034H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7540 jmp SHORT $L8571 $L8570: ; Line 7542 lea edx, DWORD PTR _flags$[ebp] push edx push 52 ; 00000034H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L8571: ; Line 7544 mov esp, ebp pop ebp ret 4 ?DoFrame@FireAtDist@@AAEXH@Z ENDP ; FireAtDist::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@FireAtDist@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; FireAtDist::CallEvent ; Line 7547 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 7549 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 257 ; 00000101H je SHORT $L8582 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L8581 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L8584 jmp SHORT $L8578 $L8581: ; Line 7551 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@FireAtDist@@AAEXH@Z ; FireAtDist::DoInit ; Line 7552 jmp SHORT $L8578 $L8582: ; Line 7554 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@FireAtDist@@AAEXH@Z ; FireAtDist::DoFrame ; Line 7555 jmp SHORT $L8578 $L8584: ; Line 7560 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L8578: ; Line 7564 mov ax, 257 ; 00000101H ; Line 7565 mov esp, ebp pop ebp ret 8 ?CallEvent@FireAtDist@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; FireAtDist::CallEvent _TEXT ENDS PUBLIC ?DoInit@HatePTMC@@AAEXH@Z ; HatePTMC::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -940 _m$ = -936 _ch$ = -16 ?DoInit@HatePTMC@@AAEXH@Z PROC NEAR ; HatePTMC::DoInit ; Line 7572 push ebp mov ebp, esp sub esp, 944 ; 000003b0H mov DWORD PTR _this$[ebp], ecx ; Line 7574 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 7577 mov WORD PTR _ch$[ebp+8], 4 ; Line 7578 mov DWORD PTR _ch$[ebp+12], 8 ; Line 7579 mov DWORD PTR _ch$[ebp], 0 ; Line 7580 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], ecx ; Line 7582 lea edx, DWORD PTR _ch$[ebp] push edx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 7584 call _rand mov DWORD PTR -944+[ebp], eax fild DWORD PTR -944+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+4] ; Line 7585 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _me$[ebp] mov DWORD PTR [edx], eax ; Line 7586 mov esp, ebp pop ebp ret 4 ?DoInit@HatePTMC@@AAEXH@Z ENDP ; HatePTMC::DoInit _TEXT ENDS PUBLIC __real@4@4004f000000000000000 PUBLIC ?DoFrame@HatePTMC@@AAEXH@Z ; HatePTMC::DoFrame ; COMDAT __real@4@4004f000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4004f000000000000000 DD 042700000r ; 60 CONST ENDS _TEXT SEGMENT $T11412 = -344 $T11413 = -356 _me$ = 8 _this$ = -360 _flags$ = -4 _pos$8605 = -232 _room$8606 = -220 _scan_objs$8607 = -212 _n_scan$8608 = -12 _i$8609 = -216 _dist$8610 = -8 _ctype$8614 = -240 _num_wbs$8615 = -236 _flags$8617 = -244 _target$8618 = -256 _last_see_target_time$8619 = -252 _t_type$8620 = -248 _fov$8624 = -312 _p_pos$8625 = -268 _p_room$8626 = -328 _orient$8627 = -308 _dir$8628 = -324 _dist$8630 = -272 _awareness$8633 = -332 ?DoFrame@HatePTMC@@AAEXH@Z PROC NEAR ; HatePTMC::DoFrame ; File aigame.cpp ; Line 7589 push ebp mov ebp, esp sub esp, 364 ; 0000016cH push esi mov DWORD PTR _this$[ebp], ecx ; Line 7590 mov DWORD PTR _flags$[ebp], 0 ; Line 7592 lea eax, DWORD PTR _flags$[ebp] push eax push 51 ; 00000033H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7594 mov edx, DWORD PTR _flags$[ebp] and edx, 196608 ; 00030000H cmp edx, 65536 ; 00010000H jne $L8613 ; Line 7596 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fsubr DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] ; Line 7598 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 65 ; 00000041H je $L8613 ; Line 7600 call _rand mov DWORD PTR -364+[ebp], eax fild DWORD PTR -364+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+4] ; Line 7608 mov DWORD PTR _dist$8610[ebp], 1128792064 ; 43480000H ; Line 7610 push 0 lea ecx, DWORD PTR _pos$8605[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7611 push 0 lea edx, DWORD PTR _room$8606[ebp] push edx push 5 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7613 push 1 push 0 push 1 push 0 push 50 ; 00000032H lea eax, DWORD PTR _scan_objs$8607[ebp] push eax mov ecx, DWORD PTR _dist$8610[ebp] push ecx mov edx, DWORD PTR _room$8606[ebp] push edx lea eax, DWORD PTR _pos$8605[ebp] push eax call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$8608[ebp], eax ; Line 7615 mov DWORD PTR _i$8609[ebp], 0 jmp SHORT $L8611 $L8612: mov ecx, DWORD PTR _i$8609[ebp] add ecx, 1 mov DWORD PTR _i$8609[ebp], ecx $L8611: mov edx, DWORD PTR _i$8609[ebp] cmp edx, DWORD PTR _n_scan$8608[ebp] jge $L8613 ; Line 7620 push 0 lea eax, DWORD PTR _ctype$8614[ebp] push eax push 12 ; 0000000cH push 1 mov ecx, DWORD PTR _i$8609[ebp] mov edx, DWORD PTR _scan_objs$8607[ebp+ecx*4] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7621 push 0 lea eax, DWORD PTR _num_wbs$8615[ebp] push eax push 14 ; 0000000eH push 1 push 0 mov ecx, DWORD PTR _i$8609[ebp] mov edx, DWORD PTR _scan_objs$8607[ebp+ecx*4] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 7623 cmp DWORD PTR _num_wbs$8615[ebp], 0 jle $L8631 movsx eax, BYTE PTR _ctype$8614[ebp] cmp eax, 1 jne $L8631 ; Line 7628 mov DWORD PTR _t_type$8620[ebp], 255 ; 000000ffH ; Line 7630 lea ecx, DWORD PTR _flags$8617[ebp] push ecx push 51 ; 00000033H push 1 mov edx, DWORD PTR _i$8609[ebp] mov eax, DWORD PTR _scan_objs$8607[ebp+edx*4] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7631 lea ecx, DWORD PTR _target$8618[ebp] push ecx push 19 ; 00000013H push 1 mov edx, DWORD PTR _i$8609[ebp] mov eax, DWORD PTR _scan_objs$8607[ebp+edx*4] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7632 lea ecx, DWORD PTR _last_see_target_time$8619[ebp] push ecx push 25 ; 00000019H push 1 mov edx, DWORD PTR _i$8609[ebp] mov eax, DWORD PTR _scan_objs$8607[ebp+edx*4] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7634 cmp DWORD PTR _target$8618[ebp], -1 je SHORT $L8621 ; Line 7636 push 0 lea ecx, DWORD PTR _t_type$8620[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _target$8618[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L8621: ; Line 7640 mov eax, DWORD PTR _flags$8617[ebp] and eax, 196608 ; 00030000H test eax, eax jne $L8631 cmp DWORD PTR _t_type$8620[ebp], 4 jne SHORT $L8623 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fsub DWORD PTR _last_see_target_time$8619[ebp] fcomp DWORD PTR __real@4@4001e000000000000000 fnstsw ax test ah, 1 jne $L8631 $L8623: ; Line 7643 lea ecx, DWORD PTR _fov$8624[ebp] push ecx push 32 ; 00000020H push 1 mov edx, DWORD PTR _i$8609[ebp] mov eax, DWORD PTR _scan_objs$8607[ebp+edx*4] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7649 push 0 lea ecx, DWORD PTR _p_pos$8625[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _i$8609[ebp] mov eax, DWORD PTR _scan_objs$8607[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7650 push 0 lea ecx, DWORD PTR _p_room$8626[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _i$8609[ebp] mov eax, DWORD PTR _scan_objs$8607[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7652 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _pos$8605[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _pos$8605[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _pos$8605[ebp+8] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _p_pos$8625[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _p_pos$8625[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _p_pos$8625[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11413[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11412[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11412[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11412[ebp+8], eax mov ecx, DWORD PTR $T11412[ebp] mov DWORD PTR _dir$8628[ebp], ecx mov edx, DWORD PTR $T11412[ebp+4] mov DWORD PTR _dir$8628[ebp+4], edx mov eax, DWORD PTR $T11412[ebp+8] mov DWORD PTR _dir$8628[ebp+8], eax ; Line 7653 lea ecx, DWORD PTR _dir$8628[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize add esp, 4 fstp DWORD PTR _dist$8630[ebp] ; Line 7655 push 0 lea edx, DWORD PTR _orient$8627[ebp] push edx push 4 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7657 mov ecx, DWORD PTR _p_room$8626[ebp] cmp ecx, DWORD PTR _room$8606[ebp] je SHORT $L8632 fld DWORD PTR _dist$8630[ebp] fcomp DWORD PTR __real@4@4004f000000000000000 fnstsw ax test ah, 1 jne SHORT $L8632 sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR _dir$8628[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _dir$8628[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _dir$8628[ebp+8] mov DWORD PTR [edx+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$8627[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$8627[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$8627[ebp+32] mov DWORD PTR [ecx+8], edx call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H fcomp DWORD PTR _fov$8624[ebp] fnstsw ax test ah, 1 jne $L8631 $L8632: ; Line 7660 lea eax, DWORD PTR _awareness$8633[ebp] push eax push 50 ; 00000032H push 1 mov ecx, DWORD PTR _i$8609[ebp] mov edx, DWORD PTR _scan_objs$8607[ebp+ecx*4] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7661 fld DWORD PTR _awareness$8633[ebp] fcomp DWORD PTR __real@4@4004f000000000000000 fnstsw ax test ah, 1 je SHORT $L8634 ; Line 7663 mov DWORD PTR _awareness$8633[ebp], 1114636288 ; 42700000H ; Line 7664 lea eax, DWORD PTR _awareness$8633[ebp] push eax push 50 ; 00000032H push 0 mov ecx, DWORD PTR _i$8609[ebp] mov edx, DWORD PTR _scan_objs$8607[ebp+ecx*4] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L8634: ; Line 7666 lea eax, DWORD PTR _me$[ebp] push eax push 19 ; 00000013H push 0 mov ecx, DWORD PTR _i$8609[ebp] mov edx, DWORD PTR _scan_objs$8607[ebp+ecx*4] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L8631: ; Line 7670 jmp $L8612 $L8613: ; Line 7673 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@HatePTMC@@AAEXH@Z ENDP ; HatePTMC::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@HatePTMC@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; HatePTMC::CallEvent ; Line 7676 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 7678 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 256 ; 00000100H je SHORT $L8645 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L8644 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L8647 jmp SHORT $L8641 $L8644: ; Line 7680 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@HatePTMC@@AAEXH@Z ; HatePTMC::DoInit ; Line 7681 jmp SHORT $L8641 $L8645: ; Line 7683 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@HatePTMC@@AAEXH@Z ; HatePTMC::DoFrame ; Line 7684 jmp SHORT $L8641 $L8647: ; Line 7689 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L8641: ; Line 7693 mov ax, 257 ; 00000101H ; Line 7694 mov esp, ebp pop ebp ret 8 ?CallEvent@HatePTMC@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; HatePTMC::CallEvent _TEXT ENDS PUBLIC __real@4@3fff8ccccd0000000000 PUBLIC __real@4@3fffa666660000000000 PUBLIC __real@4@3fffd9999a0000000000 PUBLIC __real@4@3fffe000000000000000 PUBLIC __real@4@4000b333330000000000 PUBLIC __real@4@3fffe666660000000000 PUBLIC ?DoInit@Tubbs@@AAEXH@Z ; Tubbs::DoInit ; COMDAT __real@4@3fff8ccccd0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3fff8ccccd0000000000 DD 03f8ccccdr ; 1.1 CONST ENDS ; COMDAT __real@4@3fffa666660000000000 CONST SEGMENT __real@4@3fffa666660000000000 DD 03fa66666r ; 1.3 CONST ENDS ; COMDAT __real@4@3fffd9999a0000000000 CONST SEGMENT __real@4@3fffd9999a0000000000 DD 03fd9999ar ; 1.7 CONST ENDS ; COMDAT __real@4@3fffe000000000000000 CONST SEGMENT __real@4@3fffe000000000000000 DD 03fe00000r ; 1.75 CONST ENDS ; COMDAT __real@4@4000b333330000000000 CONST SEGMENT __real@4@4000b333330000000000 DD 040333333r ; 2.8 CONST ENDS ; COMDAT __real@4@3fffe666660000000000 CONST SEGMENT __real@4@3fffe666660000000000 DD 03fe66666r ; 1.8 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -24 _ch$ = -20 _diff$ = -4 ?DoInit@Tubbs@@AAEXH@Z PROC NEAR ; Tubbs::DoInit ; File aigame.cpp ; Line 7701 push ebp mov ebp, esp sub esp, 28 ; 0000001cH mov DWORD PTR _this$[ebp], ecx ; Line 7703 mov WORD PTR _ch$[ebp+8], 4 ; Line 7704 mov DWORD PTR _ch$[ebp+12], 20 ; 00000014H ; Line 7705 mov DWORD PTR _ch$[ebp], 0 ; Line 7706 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 7708 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 7710 call DWORD PTR ?Game_GetDiffLevel@@3P6ADXZA ; Game_GetDiffLevel movsx eax, al mov DWORD PTR _diff$[ebp], eax ; Line 7712 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] push edx push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7713 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 4 push edx push 1 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7716 mov ecx, DWORD PTR _diff$[ebp] mov DWORD PTR -28+[ebp], ecx cmp DWORD PTR -28+[ebp], 4 ja $L8658 mov edx, DWORD PTR -28+[ebp] jmp DWORD PTR $L11430[edx*4] $L8661: ; Line 7718 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx] fmul DWORD PTR __real@4@3fff99999a0000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] ; Line 7719 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+4] fmul DWORD PTR __real@4@3fff8ccccd0000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+12] ; Line 7720 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+16], 1102053376 ; 41b00000H ; Line 7721 jmp $L8658 $L8662: ; Line 7723 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx] fmul DWORD PTR __real@4@3fffa666660000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+8] ; Line 7724 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+4] fmul DWORD PTR __real@4@3fffc000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+12] ; Line 7725 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+16], 1101004800 ; 41a00000H ; Line 7726 jmp $L8658 $L8663: ; Line 7728 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax] fmul DWORD PTR __real@4@3fffd9999a0000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] ; Line 7729 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fmul DWORD PTR __real@4@4000a000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+12] ; Line 7730 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+16], 1099956224 ; 41900000H ; Line 7731 jmp SHORT $L8658 $L8664: ; Line 7733 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx] fmul DWORD PTR __real@4@3fffe000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] ; Line 7734 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+4] fmul DWORD PTR __real@4@4000b333330000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+12] ; Line 7735 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+16], 1097859072 ; 41700000H ; Line 7736 jmp SHORT $L8658 $L8665: ; Line 7738 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx] fmul DWORD PTR __real@4@3fffe666660000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+8] ; Line 7739 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+4] fmul DWORD PTR __real@4@4000c000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+12] ; Line 7740 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+16], 1094713344 ; 41400000H $L8658: ; Line 7743 mov esp, ebp pop ebp ret 4 $L11430: DD $L8661 DD $L8662 DD $L8663 DD $L8664 DD $L8665 ?DoInit@Tubbs@@AAEXH@Z ENDP ; Tubbs::DoInit _TEXT ENDS PUBLIC ?DoFrame@Tubbs@@AAEXH@Z ; Tubbs::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -24 _see_time$ = -8 _used$ = -4 _speed$8673 = -12 _acc$8674 = -20 _ft$8675 = -16 ?DoFrame@Tubbs@@AAEXH@Z PROC NEAR ; Tubbs::DoFrame ; Line 7746 push ebp mov ebp, esp sub esp, 28 ; 0000001cH mov DWORD PTR _this$[ebp], ecx ; Line 7748 lea eax, DWORD PTR _see_time$[ebp] push eax push 25 ; 00000019H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7751 push 0 lea edx, DWORD PTR _used$[ebp] push edx push 50 ; 00000032H push 1 push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 7753 fld DWORD PTR _see_time$[ebp] fadd DWORD PTR __real@4@40018000000000000000 fstp DWORD PTR -28+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -28+[ebp] fnstsw ax test ah, 1 je $L8672 mov ecx, DWORD PTR _used$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx jne $L8672 ; Line 7759 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fstp DWORD PTR _ft$8675[ebp] ; Line 7761 lea edx, DWORD PTR _speed$8673[ebp] push edx push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7762 lea ecx, DWORD PTR _acc$8674[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7764 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [ecx+8] fsub DWORD PTR [eax] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR _ft$8675[ebp] fdiv DWORD PTR [edx+16] fmulp ST(1), ST(0) fadd DWORD PTR _speed$8673[ebp] fstp DWORD PTR _speed$8673[ebp] ; Line 7765 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [ecx+12] fsub DWORD PTR [eax+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR _ft$8675[ebp] fdiv DWORD PTR [edx+16] fmulp ST(1), ST(0) fadd DWORD PTR _acc$8674[ebp] fstp DWORD PTR _acc$8674[ebp] ; Line 7767 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR _speed$8673[ebp] fcomp DWORD PTR [ecx+8] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8676 ; Line 7768 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+8] mov DWORD PTR _speed$8673[ebp], ecx $L8676: ; Line 7769 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR _acc$8674[ebp] fcomp DWORD PTR [eax+12] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8677 ; Line 7770 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+12] mov DWORD PTR _acc$8674[ebp], eax $L8677: ; Line 7774 lea ecx, DWORD PTR _speed$8673[ebp] push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7775 lea eax, DWORD PTR _acc$8674[ebp] push eax push 1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7777 jmp SHORT $L8678 $L8672: ; Line 7779 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] push eax push 0 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 7780 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 4 push eax push 1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L8678: ; Line 7782 mov esp, ebp pop ebp ret 4 ?DoFrame@Tubbs@@AAEXH@Z ENDP ; Tubbs::DoFrame _TEXT ENDS PUBLIC ?DoNotify@Tubbs@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; Tubbs::DoNotify _DATA SEGMENT ORG $+2 $SG8689 DB 'TubbsHitBlast', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _notify$ = 12 _this$ = -24 _room$ = -8 _pos$ = -20 _weapon_id$ = -4 ?DoNotify@Tubbs@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z PROC NEAR ; Tubbs::DoNotify ; Line 7785 push ebp mov ebp, esp sub esp, 24 ; 00000018H mov DWORD PTR _this$[ebp], ecx ; Line 7790 mov eax, DWORD PTR _notify$[ebp] cmp DWORD PTR [eax], 24 ; 00000018H jne SHORT $L8688 ; Line 7792 mov ecx, DWORD PTR _notify$[ebp] cmp DWORD PTR [ecx+16], 0 jne SHORT $L8688 ; Line 7794 push 0 lea edx, DWORD PTR _room$[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7795 push 0 lea ecx, DWORD PTR _pos$[ebp] push ecx push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGunPos add esp, 16 ; 00000010H ; Line 7797 push OFFSET FLAT:$SG8689 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$[ebp], eax ; Line 7798 push 0 mov eax, DWORD PTR _me$[ebp] push eax push 0 lea ecx, DWORD PTR _pos$[ebp] push ecx mov edx, DWORD PTR _room$[ebp] push edx mov ax, WORD PTR _weapon_id$[ebp] push eax push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH $L8688: ; Line 7802 mov al, 1 ; Line 7803 mov esp, ebp pop ebp ret 8 ?DoNotify@Tubbs@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ENDP ; Tubbs::DoNotify _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Tubbs@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Tubbs::CallEvent ; Line 7806 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 7808 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L8696 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11434[eax] jmp DWORD PTR $L11435[edx*4] $L8699: ; Line 7810 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Tubbs@@AAEXH@Z ; Tubbs::DoInit ; Line 7811 jmp SHORT $L8696 $L8700: ; Line 7813 mov eax, DWORD PTR _data$[ebp] push eax mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Tubbs@@AAE_NHPAUtOSIRISEVTAINOTIFY@@@Z ; Tubbs::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L8694 $L8701: ; Line 7816 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Tubbs@@AAEXH@Z ; Tubbs::DoFrame ; Line 7817 jmp SHORT $L8696 $L8703: ; Line 7822 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L8696: ; Line 7826 mov ax, 257 ; 00000101H $L8694: ; Line 7827 mov esp, ebp pop ebp ret 8 $L11435: DD $L8701 DD $L8700 DD $L8699 DD $L8703 DD $L8696 $L11434: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Tubbs@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Tubbs::CallEvent _TEXT ENDS PUBLIC __real@4@3ffd99999a0000000000 PUBLIC ?ComputeNextNestPnt@BarnSwallow@@AAEXHPAUvector@@@Z ; BarnSwallow::ComputeNextNestPnt ; COMDAT __real@4@3ffd99999a0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ffd99999a0000000000 DD 03e99999ar ; 0.3 CONST ENDS _TEXT SEGMENT $T11437 = -12 $T11438 = -24 $T11439 = -36 $T11440 = -48 _pos$ = 12 _this$ = -52 ?ComputeNextNestPnt@BarnSwallow@@AAEXHPAUvector@@@Z PROC NEAR ; BarnSwallow::ComputeNextNestPnt ; File aigame.cpp ; Line 7834 push ebp mov ebp, esp sub esp, 64 ; 00000040H mov DWORD PTR _this$[ebp], ecx ; Line 7835 call _rand mov DWORD PTR -56+[ebp], eax fild DWORD PTR -56+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsubr DWORD PTR __real@4@3ffe8000000000000000 mov eax, DWORD PTR _pos$[ebp] fstp DWORD PTR [eax] ; Line 7836 call _rand mov DWORD PTR -60+[ebp], eax fild DWORD PTR -60+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsubr DWORD PTR __real@4@3ffe8000000000000000 mov ecx, DWORD PTR _pos$[ebp] fstp DWORD PTR [ecx+4] ; Line 7837 call _rand mov DWORD PTR -64+[ebp], eax fild DWORD PTR -64+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsubr DWORD PTR __real@4@3ffe8000000000000000 mov edx, DWORD PTR _pos$[ebp] fstp DWORD PTR [edx+8] ; Line 7839 mov eax, DWORD PTR _pos$[ebp] fld DWORD PTR [eax+4] fmul DWORD PTR __real@4@3ffd99999a0000000000 mov ecx, DWORD PTR _pos$[ebp] fstp DWORD PTR [ecx+4] ; Line 7841 mov edx, DWORD PTR _pos$[ebp] push edx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 7843 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+16] push edx sub esp, 12 ; 0000000cH mov eax, DWORD PTR _pos$[ebp] mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax lea ecx, DWORD PTR $T11438[ebp] push ecx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11437[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11437[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11437[ebp+8], edx mov eax, DWORD PTR _pos$[ebp] mov ecx, DWORD PTR $T11437[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11437[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11437[ebp+8] mov DWORD PTR [eax+8], ecx ; Line 7844 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 4 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax mov ecx, DWORD PTR _pos$[ebp] push ecx lea edx, DWORD PTR $T11440[ebp] push edx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11439[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11439[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11439[ebp+8], eax ; Line 7845 mov esp, ebp pop ebp ret 8 ?ComputeNextNestPnt@BarnSwallow@@AAEXHPAUvector@@@Z ENDP ; BarnSwallow::ComputeNextNestPnt _TEXT ENDS PUBLIC ?ReceiveCommand@BarnSwallow@@AAE_NHHPAUgb_com@@@Z ; BarnSwallow::ReceiveCommand PUBLIC ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode _TEXT SEGMENT _me$ = 8 _it$ = 12 _command$ = 16 _this$ = -20 _f_ok$ = -4 _flags$8733 = -8 _room$8734 = -12 _me_room$8735 = -16 ?ReceiveCommand@BarnSwallow@@AAE_NHHPAUgb_com@@@Z PROC NEAR ; BarnSwallow::ReceiveCommand ; Line 7854 push ebp mov ebp, esp sub esp, 24 ; 00000018H mov DWORD PTR _this$[ebp], ecx ; Line 7855 mov BYTE PTR _f_ok$[ebp], 1 ; Line 7858 mov eax, DWORD PTR _command$[ebp] movsx ecx, BYTE PTR [eax] mov DWORD PTR -24+[ebp], ecx cmp DWORD PTR -24+[ebp], 5 ja $L8726 mov edx, DWORD PTR -24+[ebp] jmp DWORD PTR $L11444[edx*4] $L8729: ; Line 7860 mov eax, DWORD PTR _it$[ebp] push eax push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7861 jmp $L8726 $L8730: ; Line 7863 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+20], -1 ; Line 7864 jmp $L8726 $L8731: ; Line 7867 push -1 push 6 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7869 jmp $L8726 $L8732: ; Line 7876 push 0 lea edx, DWORD PTR _flags$8733[ebp] push edx push 10 ; 0000000aH push 1 mov eax, DWORD PTR _it$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7877 push 0 lea ecx, DWORD PTR _room$8734[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _it$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7878 push 0 lea eax, DWORD PTR _me_room$8735[ebp] push eax push 10 ; 0000000aH push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 7880 mov edx, DWORD PTR _flags$8733[ebp] and edx, 16 ; 00000010H test edx, edx je SHORT $L8736 call _rand cdq mov ecx, 10 ; 0000000aH idiv ecx cmp edx, 3 jle SHORT $L8736 ; Line 7882 mov edx, DWORD PTR _it$[ebp] push edx push 3 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7884 jmp SHORT $L8741 $L8736: mov ecx, DWORD PTR _me_room$8735[ebp] cmp ecx, DWORD PTR _room$8734[ebp] jne SHORT $L8738 ; Line 7886 mov edx, DWORD PTR _it$[ebp] push edx push 3 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7888 jmp SHORT $L8741 $L8738: call _rand cdq mov ecx, 10 ; 0000000aH idiv ecx cmp edx, 6 jle SHORT $L8740 ; Line 7890 mov edx, DWORD PTR _it$[ebp] push edx push 3 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7892 jmp SHORT $L8741 $L8740: ; Line 7894 mov BYTE PTR _f_ok$[ebp], 0 $L8741: ; Line 7897 jmp SHORT $L8726 $L8742: ; Line 7900 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+112] mov ecx, DWORD PTR _command$[ebp] movsx edx, BYTE PTR [ecx+1] xor ecx, ecx cmp eax, edx sete cl mov BYTE PTR _f_ok$[ebp], cl ; Line 7902 jmp SHORT $L8726 $L8743: ; Line 7905 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _command$[ebp] movsx edx, BYTE PTR [ecx+1] xor ecx, ecx cmp DWORD PTR [eax+136], edx sete cl mov BYTE PTR _f_ok$[ebp], cl $L8726: ; Line 7909 mov al, BYTE PTR _f_ok$[ebp] ; Line 7910 mov esp, ebp pop ebp ret 12 ; 0000000cH $L11444: DD $L8729 DD $L8730 DD $L8731 DD $L8732 DD $L8742 DD $L8743 ?ReceiveCommand@BarnSwallow@@AAE_NHHPAUgb_com@@@Z ENDP ; BarnSwallow::ReceiveCommand _TEXT ENDS PUBLIC ?SendCommand@BarnSwallow@@AAE_NHHDH@Z ; BarnSwallow::SendCommand _TEXT SEGMENT _me$ = 8 _it$ = 12 _action$ = 16 _value$ = 20 _this$ = -44 _f_ok$ = -40 _data$ = -28 _command$ = -36 ?SendCommand@BarnSwallow@@AAE_NHHDH@Z PROC NEAR ; BarnSwallow::SendCommand ; Line 7913 push ebp mov ebp, esp sub esp, 48 ; 00000030H mov DWORD PTR _this$[ebp], ecx ; Line 7918 mov eax, DWORD PTR _it$[ebp] mov DWORD PTR _data$[ebp+20], eax ; Line 7919 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _data$[ebp+4], ecx ; Line 7921 mov dl, BYTE PTR _action$[ebp] mov BYTE PTR _command$[ebp], dl ; Line 7922 mov al, BYTE PTR _value$[ebp] mov BYTE PTR _command$[ebp+1], al ; Line 7924 lea ecx, DWORD PTR _command$[ebp] mov DWORD PTR _data$[ebp+24], ecx ; Line 7925 mov DWORD PTR _data$[ebp], 16 ; 00000010H ; Line 7927 lea edx, DWORD PTR _data$[ebp] push edx push 272 ; 00000110H mov eax, DWORD PTR _it$[ebp] push eax call DWORD PTR ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Obj_CallEvent add esp, 12 ; 0000000cH mov BYTE PTR _f_ok$[ebp], al ; Line 7928 mov ecx, DWORD PTR _f_ok$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx jne SHORT $L8756 movsx edx, BYTE PTR _command$[ebp] cmp edx, 2 jne SHORT $L8758 $L8756: ; Line 7931 mov al, BYTE PTR _command$[ebp] mov BYTE PTR -48+[ebp], al cmp BYTE PTR -48+[ebp], 0 je SHORT $L8761 cmp BYTE PTR -48+[ebp], 1 je SHORT $L8762 cmp BYTE PTR -48+[ebp], 2 je SHORT $L8763 jmp SHORT $L8758 $L8761: ; Line 7933 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _it$[ebp] mov DWORD PTR [edx+20], eax ; Line 7934 jmp SHORT $L8758 $L8762: ; Line 7936 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], -1 ; Line 7937 jmp SHORT $L8758 $L8763: ; Line 7939 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+20], -1 $L8758: ; Line 7943 mov al, BYTE PTR _f_ok$[ebp] ; Line 7944 mov esp, ebp pop ebp ret 16 ; 00000010H ?SendCommand@BarnSwallow@@AAE_NHHDH@Z ENDP ; BarnSwallow::SendCommand _TEXT ENDS PUBLIC ?DoInit@BarnSwallow@@AAEXH@Z ; BarnSwallow::DoInit PUBLIC ?ComputeNest@BarnSwallow@@AAEXH@Z ; BarnSwallow::ComputeNest _TEXT SEGMENT _me$ = 8 _this$ = -24 _ch$ = -20 ?DoInit@BarnSwallow@@AAEXH@Z PROC NEAR ; BarnSwallow::DoInit ; Line 7947 push ebp mov ebp, esp sub esp, 40 ; 00000028H mov DWORD PTR _this$[ebp], ecx ; Line 7950 mov WORD PTR _ch$[ebp+8], 4 ; Line 7951 mov DWORD PTR _ch$[ebp+12], 144 ; 00000090H ; Line 7952 mov DWORD PTR _ch$[ebp], 0 ; Line 7953 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 7955 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 7957 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+20], -1 ; Line 7959 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?ComputeNest@BarnSwallow@@AAEXH@Z ; BarnSwallow::ComputeNest ; Line 7961 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR -28+[ebp] call _rand mov DWORD PTR -32+[ebp], eax fild DWORD PTR -32+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -28+[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+108] ; Line 7962 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+124] ; Line 7963 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR -36+[ebp] call _rand mov DWORD PTR -40+[ebp], eax fild DWORD PTR -40+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd ST(0), ST(0) fadd DWORD PTR -36+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+128] ; Line 7965 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+112], 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+113], 0 ; Line 7966 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+116], 0 ; Line 7968 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+140], 0 ; Line 7970 push -1 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7971 mov esp, ebp pop ebp ret 4 ?DoInit@BarnSwallow@@AAEXH@Z ENDP ; BarnSwallow::DoInit _TEXT ENDS PUBLIC ?DoNotify@BarnSwallow@@AAE_NHPAUtOSIRISEventInfo@@@Z ; BarnSwallow::DoNotify _TEXT SEGMENT _me$ = 8 _data$ = 12 _this$ = -4 ?DoNotify@BarnSwallow@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; BarnSwallow::DoNotify ; Line 7974 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 7975 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax] push ecx call ?IsGoalFinishedNotify@@YA_NH@Z ; IsGoalFinishedNotify add esp, 4 and eax, 255 ; 000000ffH test eax, eax je $L8781 ; Line 7978 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+112] mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 6 ja $L8783 mov edx, DWORD PTR -8+[ebp] jmp DWORD PTR $L11448[edx*4] $L8786: ; Line 7981 mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax+8], 1 jne SHORT $L8787 ; Line 7983 push -1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7984 xor al, al jmp $L8780 $L8787: ; Line 7987 jmp SHORT $L8783 $L8788: ; Line 7990 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx+8], 1 jne SHORT $L8789 ; Line 7992 push -1 push 6 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 7993 xor al, al jmp SHORT $L8780 $L8789: ; Line 7996 jmp SHORT $L8783 $L8790: ; Line 7999 mov ecx, DWORD PTR _data$[ebp] cmp DWORD PTR [ecx+8], 1 jne SHORT $L8791 ; Line 8001 push -1 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 8002 xor al, al jmp SHORT $L8780 $L8791: ; Line 8005 jmp SHORT $L8783 $L8792: ; Line 8007 mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax+8], 1 jne SHORT $L8793 ; Line 8009 push -1 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 8010 xor al, al jmp SHORT $L8780 $L8793: $L8783: ; Line 8015 jmp SHORT $L8795 $L8781: mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx], 16 ; 00000010H jne SHORT $L8795 ; Line 8017 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+24] push ecx mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+4] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?ReceiveCommand@BarnSwallow@@AAE_NHHPAUgb_com@@@Z ; BarnSwallow::ReceiveCommand jmp SHORT $L8780 $L8795: ; Line 8020 mov al, 1 $L8780: ; Line 8021 mov esp, ebp pop ebp ret 8 $L11448: DD $L8786 DD $L8783 DD $L8788 DD $L8792 DD $L8783 DD $L8783 DD $L8790 ?DoNotify@BarnSwallow@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; BarnSwallow::DoNotify _TEXT ENDS PUBLIC __real@4@3ffee666660000000000 ; COMDAT __real@4@3ffee666660000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ffee666660000000000 DD 03f666666r ; 0.9 CONST ENDS _TEXT SEGMENT $T11450 = -480 $T11451 = -492 $T11452 = -504 $T11453 = -516 _me$ = 8 _this$ = -520 _scan_objs$ = -408 _n_scan$ = -8 _i$ = -412 _pos$ = -432 _room$ = -416 _type$ = -4 _id$ = -420 _c_type$8815 = -440 _c_id$8816 = -436 _c_pos$8818 = -452 _c_pos$8825 = -468 _dist$8826 = -456 ?ComputeNest@BarnSwallow@@AAEXH@Z PROC NEAR ; BarnSwallow::ComputeNest ; File aigame.cpp ; Line 8024 push ebp mov ebp, esp sub esp, 524 ; 0000020cH mov DWORD PTR _this$[ebp], ecx ; Line 8025 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+24], 0 ; Line 8034 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+24], 0 ; Line 8036 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8808 $L8809: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx $L8808: cmp DWORD PTR _i$[ebp], 20 ; 00000014H jge SHORT $L8810 ; Line 8037 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] mov DWORD PTR [eax+ecx*4+28], -1 jmp SHORT $L8809 $L8810: ; Line 8039 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8040 push 0 lea ecx, DWORD PTR _room$[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8041 push 0 lea eax, DWORD PTR _type$[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8042 push 0 lea edx, DWORD PTR _id$[ebp] push edx push 2 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8044 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _room$[ebp] mov DWORD PTR [edx], eax ; Line 8045 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 4 mov eax, DWORD PTR _pos$[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _pos$[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _pos$[ebp+8] mov DWORD PTR [edx+8], eax ; Line 8046 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+16], 0 ; Line 8048 push 1 push 0 push 1 push 0 push 100 ; 00000064H lea eax, DWORD PTR _scan_objs$[ebp] push eax push 1148846080 ; 447a0000H mov ecx, DWORD PTR _room$[ebp] push ecx lea edx, DWORD PTR _pos$[ebp] push edx call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$[ebp], eax ; Line 8050 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8811 $L8812: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L8811: mov ecx, DWORD PTR _i$[ebp] cmp ecx, DWORD PTR _n_scan$[ebp] jge $L8813 ; Line 8052 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+edx*4] cmp eax, DWORD PTR _me$[ebp] je $L8817 ; Line 8056 push 0 lea ecx, DWORD PTR _c_type$8815[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8057 push 0 lea ecx, DWORD PTR _c_id$8816[ebp] push ecx push 2 push 1 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8060 mov ecx, DWORD PTR _type$[ebp] cmp ecx, DWORD PTR _c_type$8815[ebp] jne $L8817 mov edx, DWORD PTR _id$[ebp] and edx, 65535 ; 0000ffffH mov eax, DWORD PTR _c_id$8816[ebp] and eax, 65535 ; 0000ffffH cmp edx, eax jne $L8817 ; Line 8063 push 0 lea ecx, DWORD PTR _c_pos$8818[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8065 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _c_pos$8818[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _c_pos$8818[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _c_pos$8818[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 4 push ecx lea edx, DWORD PTR $T11451[ebp] push edx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11450[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11450[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11450[ebp+8], eax ; Line 8067 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx eax, BYTE PTR [ecx+24] mov ecx, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _scan_objs$[ebp+ecx*4] mov DWORD PTR [edx+eax*4+28], ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR [eax+24] add cl, 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+24], cl $L8817: ; Line 8070 jmp $L8812 $L8813: ; Line 8072 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+24] test eax, eax je SHORT $L8820 ; Line 8073 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+24] add eax, 1 mov DWORD PTR -524+[ebp], eax fild DWORD PTR -524+[ebp] push ecx fstp DWORD PTR [esp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 4 push edx lea eax, DWORD PTR $T11453[ebp] push eax call ??_0@YA?AUvector@@AAU0@M@Z ; operator/= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11452[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11452[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11452[ebp+8], eax $L8820: ; Line 8076 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8822 $L8823: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx $L8822: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+24] cmp DWORD PTR _i$[ebp], ecx jge $L8824 ; Line 8080 push 0 lea edx, DWORD PTR _c_pos$8825[ebp] push edx push 3 push 1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR [ecx+edx*4+28] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8081 lea ecx, DWORD PTR _c_pos$8825[ebp] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 4 push eax call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dist$8826[ebp] ; Line 8083 fld DWORD PTR _dist$8826[ebp] fmul DWORD PTR __real@4@3ffee666660000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fcomp DWORD PTR [edx+16] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8827 ; Line 8084 fld DWORD PTR _dist$8826[ebp] fmul DWORD PTR __real@4@3ffee666660000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+16] $L8827: ; Line 8085 jmp $L8823 $L8824: ; Line 8087 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+16] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 1 je SHORT $L8828 ; Line 8088 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+16], 1084227584 ; 40a00000H $L8828: ; Line 8089 mov esp, ebp pop ebp ret 4 ?ComputeNest@BarnSwallow@@AAEXH@Z ENDP ; BarnSwallow::ComputeNest _TEXT ENDS PUBLIC ?UpdateFriendList@BarnSwallow@@AAEXH@Z ; BarnSwallow::UpdateFriendList _TEXT SEGMENT _this$ = -16 _i$ = -4 _j$ = -8 _type$8838 = -12 ?UpdateFriendList@BarnSwallow@@AAEXH@Z PROC NEAR ; BarnSwallow::UpdateFriendList ; Line 8092 push ebp mov ebp, esp sub esp, 16 ; 00000010H push esi mov DWORD PTR _this$[ebp], ecx ; Line 8096 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8835 $L8836: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L8835: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+24] cmp DWORD PTR _i$[ebp], eax jge $L8837 ; Line 8099 push 0 lea ecx, DWORD PTR _type$8838[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR [eax+ecx*4+28] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8101 cmp DWORD PTR _type$8838[ebp], 255 ; 000000ffH jne SHORT $L8839 ; Line 8103 mov eax, DWORD PTR _i$[ebp] mov DWORD PTR _j$[ebp], eax jmp SHORT $L8840 $L8841: mov ecx, DWORD PTR _j$[ebp] add ecx, 1 mov DWORD PTR _j$[ebp], ecx $L8840: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+24] sub ecx, 1 cmp DWORD PTR _j$[ebp], ecx jge SHORT $L8842 ; Line 8105 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _j$[ebp] mov esi, DWORD PTR _j$[ebp] mov eax, DWORD PTR [eax+esi*4+32] mov DWORD PTR [edx+ecx*4+28], eax ; Line 8106 jmp SHORT $L8841 $L8842: ; Line 8108 mov ecx, DWORD PTR _i$[ebp] sub ecx, 1 mov DWORD PTR _i$[ebp], ecx ; Line 8109 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR [eax+24] sub cl, 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+24], cl $L8839: ; Line 8111 jmp $L8836 $L8837: ; Line 8112 pop esi mov esp, ebp pop ebp ret 4 ?UpdateFriendList@BarnSwallow@@AAEXH@Z ENDP ; BarnSwallow::UpdateFriendList _TEXT ENDS PUBLIC ?DoFrame@BarnSwallow@@AAEXH@Z ; BarnSwallow::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -480 _target$8856 = -12 _room$8857 = -4 _me_room$8858 = -8 _rand_val$8863 = -16 _scan_objs$8867 = -424 _n_scan$8868 = -224 _i$8869 = -428 _n_powerups$8870 = -20 _powerups$8871 = -220 _room$8872 = -432 _pos$8873 = -444 _type$8877 = -448 _index$8880 = -452 _i$8882 = -460 _f_ok$8883 = -464 _p_handle$8884 = -456 _last_see_target_time$8894 = -472 _dist$8896 = -468 _last_see_target_time$8898 = -476 ?DoFrame@BarnSwallow@@AAEXH@Z PROC NEAR ; BarnSwallow::DoFrame ; Line 8115 push ebp mov ebp, esp sub esp, 500 ; 000001f4H push esi mov DWORD PTR _this$[ebp], ecx ; Line 8116 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+108] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8847 ; Line 8118 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR -484+[ebp] call _rand mov DWORD PTR -488+[ebp], eax fild DWORD PTR -488+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -484+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+108] ; Line 8120 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?UpdateFriendList@BarnSwallow@@AAEXH@Z ; BarnSwallow::UpdateFriendList $L8847: ; Line 8124 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+112] mov DWORD PTR -492+[ebp], eax cmp DWORD PTR -492+[ebp], 4 ja $L8851 mov ecx, DWORD PTR -492+[ebp] jmp DWORD PTR $L11458[ecx*4] $L8854: ; Line 8127 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fcomp DWORD PTR [eax+120] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8861 ; Line 8133 lea ecx, DWORD PTR _target$8856[ebp] push ecx push 19 ; 00000013H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8135 cmp DWORD PTR _target$8856[ebp], -1 je SHORT $L8859 ; Line 8137 push 0 lea eax, DWORD PTR _room$8857[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _target$8856[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8138 push 0 lea edx, DWORD PTR _me_room$8858[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L8859: ; Line 8141 cmp DWORD PTR _target$8856[ebp], -1 je SHORT $L8860 mov ecx, DWORD PTR _room$8857[ebp] cmp ecx, DWORD PTR _me_room$8858[ebp] jne SHORT $L8860 ; Line 8142 push -1 push 3 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode ; Line 8143 jmp SHORT $L8861 $L8860: ; Line 8144 push -1 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode $L8861: ; Line 8147 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fcomp DWORD PTR [edx+128] fnstsw ax test ah, 65 ; 00000041H jne $L8889 ; Line 8149 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx mov DWORD PTR _rand_val$8863[ebp], edx ; Line 8151 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR -496+[ebp] call _rand mov DWORD PTR -500+[ebp], eax fild DWORD PTR -500+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd ST(0), ST(0) fadd DWORD PTR -496+[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+128] ; Line 8154 cmp DWORD PTR _rand_val$8863[ebp], 20 ; 00000014H jge $L8879 ; Line 8159 mov DWORD PTR _n_powerups$8870[ebp], 0 ; Line 8164 push 0 lea ecx, DWORD PTR _pos$8873[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8165 push 0 lea eax, DWORD PTR _room$8872[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8167 push 1 push 0 push 0 push 0 push 50 ; 00000032H lea edx, DWORD PTR _scan_objs$8867[ebp] push edx push 1106247680 ; 41f00000H mov eax, DWORD PTR _room$8872[ebp] push eax lea ecx, DWORD PTR _pos$8873[ebp] push ecx call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$8868[ebp], eax ; Line 8169 mov DWORD PTR _i$8869[ebp], 0 jmp SHORT $L8874 $L8875: mov edx, DWORD PTR _i$8869[ebp] add edx, 1 mov DWORD PTR _i$8869[ebp], edx $L8874: mov eax, DWORD PTR _i$8869[ebp] cmp eax, DWORD PTR _n_scan$8868[ebp] jge SHORT $L8876 ; Line 8172 push 0 lea ecx, DWORD PTR _type$8877[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _i$8869[ebp] mov eax, DWORD PTR _scan_objs$8867[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8173 cmp DWORD PTR _type$8877[ebp], 7 jne SHORT $L8878 ; Line 8175 mov ecx, DWORD PTR _n_powerups$8870[ebp] mov edx, DWORD PTR _i$8869[ebp] mov eax, DWORD PTR _scan_objs$8867[ebp+edx*4] mov DWORD PTR _powerups$8871[ebp+ecx*4], eax mov ecx, DWORD PTR _n_powerups$8870[ebp] add ecx, 1 mov DWORD PTR _n_powerups$8870[ebp], ecx $L8878: ; Line 8177 jmp SHORT $L8875 $L8876: ; Line 8179 cmp DWORD PTR _n_powerups$8870[ebp], 0 je SHORT $L8879 ; Line 8181 call _rand cdq idiv DWORD PTR _n_powerups$8870[ebp] mov DWORD PTR _index$8880[ebp], edx ; Line 8182 mov edx, DWORD PTR _index$8880[ebp] mov eax, DWORD PTR _powerups$8871[ebp+edx*4] push eax push 2 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode $L8879: ; Line 8185 cmp DWORD PTR _rand_val$8863[ebp], 95 ; 0000005fH jle $L8889 ; Line 8188 mov BYTE PTR _f_ok$8883[ebp], 1 ; Line 8195 push -1 push 1 push -1 push 7 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_FindObjOfType@@3P6AHHHH_NH@ZA ; AI_FindObjOfType add esp, 20 ; 00000014H mov DWORD PTR _p_handle$8884[ebp], eax ; Line 8197 mov DWORD PTR _i$8882[ebp], 0 jmp SHORT $L8885 $L8886: mov eax, DWORD PTR _i$8882[ebp] add eax, 1 mov DWORD PTR _i$8882[ebp], eax $L8885: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+24] cmp DWORD PTR _i$8882[ebp], eax jge SHORT $L8887 ; Line 8199 mov ecx, DWORD PTR _p_handle$8884[ebp] push ecx push 5 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$8882[ebp] mov edx, DWORD PTR [eax+ecx*4+28] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@BarnSwallow@@AAE_NHHDH@Z ; BarnSwallow::SendCommand and eax, 255 ; 000000ffH test eax, eax je SHORT $L8888 ; Line 8201 mov DWORD PTR _p_handle$8884[ebp], -1 ; Line 8202 jmp SHORT $L8887 $L8888: ; Line 8204 jmp SHORT $L8886 $L8887: ; Line 8206 cmp DWORD PTR _p_handle$8884[ebp], -1 je SHORT $L8889 ; Line 8208 mov ecx, DWORD PTR _p_handle$8884[ebp] push ecx push 2 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode $L8889: ; Line 8213 jmp $L8851 $L8891: ; Line 8220 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [ecx+116] fcomp DWORD PTR [eax+132] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8892 ; Line 8222 push -1 push 6 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode $L8892: ; Line 8225 jmp $L8851 $L8893: ; Line 8229 lea edx, DWORD PTR _last_see_target_time$8894[ebp] push edx push 25 ; 00000019H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8231 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$8894[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 1 je SHORT $L8895 ; Line 8232 push -1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx+113] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode $L8895: ; Line 8234 push 0 lea edx, DWORD PTR _dist$8896[ebp] push edx push 30 ; 0000001eH push 1 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 8236 jmp SHORT $L8851 $L8897: ; Line 8240 lea ecx, DWORD PTR _last_see_target_time$8898[ebp] push ecx push 25 ; 00000019H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8242 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$8898[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 1 je SHORT $L8899 ; Line 8243 push -1 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx+113] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode $L8899: ; Line 8245 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+116] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L8900 ; Line 8246 push -1 push 3 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@BarnSwallow@@AAE_NHDH@Z ; BarnSwallow::SetMode $L8900: $L8851: ; Line 8260 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+116] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+116] ; Line 8261 pop esi mov esp, ebp pop ebp ret 4 $L11458: DD $L8854 DD $L8851 DD $L8891 DD $L8893 DD $L8897 ?DoFrame@BarnSwallow@@AAEXH@Z ENDP ; BarnSwallow::DoFrame _TEXT ENDS PUBLIC __real@4@4004a000000000000000 ; COMDAT __real@4@4004a000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4004a000000000000000 DD 042200000r ; 40 CONST ENDS _TEXT SEGMENT _me$ = 8 _mode$ = 12 _it$ = 16 _this$ = -68 _f_attack_flags$ = -4 _max_speed$8924 = -8 _pos$8925 = -28 _update_time$8926 = -12 _dist$8932 = -32 _dist$8936 = -40 _g_index$8941 = -36 _pos$8943 = -64 _room$8944 = -52 _dist$8945 = -48 _g_index$8946 = -44 ?SetMode@BarnSwallow@@AAE_NHDH@Z PROC NEAR ; BarnSwallow::SetMode ; File aigame.cpp ; Line 8264 push ebp mov ebp, esp sub esp, 112 ; 00000070H mov DWORD PTR _this$[ebp], ecx ; Line 8267 mov DWORD PTR _f_attack_flags$[ebp], 33554688 ; 02000100H ; Line 8269 lea eax, DWORD PTR _f_attack_flags$[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8271 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+112] cmp ecx, 3 je SHORT $L8910 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+112] cmp ecx, 4 je SHORT $L8910 ; Line 8273 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [eax+112] mov BYTE PTR [edx+113], al ; Line 8275 movsx ecx, BYTE PTR _mode$[ebp] cmp ecx, 3 je SHORT $L8911 movsx edx, BYTE PTR _mode$[ebp] cmp edx, 4 je SHORT $L8911 ; Line 8276 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+136], -1 $L8911: ; Line 8278 jmp SHORT $L8913 $L8910: ; Line 8280 movsx edx, BYTE PTR _mode$[ebp] cmp edx, 2 jne SHORT $L8913 ; Line 8281 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+136] mov DWORD PTR _it$[ebp], edx $L8913: ; Line 8285 movsx eax, BYTE PTR _mode$[ebp] test eax, eax jne SHORT $L8914 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+112] test eax, eax je SHORT $L8914 ; Line 8286 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR -72+[ebp] call _rand mov DWORD PTR -76+[ebp], eax fild DWORD PTR -76+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd ST(0), ST(0) fadd DWORD PTR -72+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+128] $L8914: ; Line 8288 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+112] cmp edx, 6 jne SHORT $L8917 ; Line 8290 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_UnattachChildren@@3P6AXH@ZA ; Obj_UnattachChildren add esp, 4 ; Line 8291 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+136], -1 $L8917: ; Line 8294 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 8297 movsx ecx, BYTE PTR _mode$[ebp] mov DWORD PTR -80+[ebp], ecx cmp DWORD PTR -80+[ebp], 6 ja $L8919 mov edx, DWORD PTR -80+[ebp] jmp DWORD PTR $L11462[edx*4] $L8922: ; Line 8304 lea eax, DWORD PTR _max_speed$8924[ebp] push eax push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8305 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+16] fdiv DWORD PTR _max_speed$8924[ebp] fadd DWORD PTR __real@4@3ffd99999a0000000000 fstp DWORD PTR -84+[ebp] call _rand mov DWORD PTR -88+[ebp], eax fild DWORD PTR -88+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fsubr DWORD PTR -84+[ebp] fstp DWORD PTR _update_time$8926[ebp] ; Line 8306 fld DWORD PTR _update_time$8926[ebp] fcomp DWORD PTR __real@4@3ffe99999a0000000000 fnstsw ax test ah, 1 je SHORT $L8929 ; Line 8307 mov DWORD PTR _update_time$8926[ebp], 1058642330 ; 3f19999aH $L8929: ; Line 8309 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR _update_time$8926[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+120] ; Line 8311 lea eax, DWORD PTR _pos$8925[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?ComputeNextNestPnt@BarnSwallow@@AAEXHPAUvector@@@Z ; BarnSwallow::ComputeNextNestPnt ; Line 8313 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] push ecx lea edx, DWORD PTR _pos$8925[ebp] push edx push 4224 ; 00001080H push -1 push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 8314 push 1092616192 ; 41200000H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH ; Line 8316 jmp $L8919 $L8931: ; Line 8323 mov DWORD PTR _dist$8932[ebp], 1101004800 ; 41a00000H ; Line 8325 push 1 push 0 push 1072483532 ; 3fecccccH push -1073741824 ; c0000000H push 0 push 0 mov edx, DWORD PTR _it$[ebp] push edx push 4096 ; 00001000H push -1 push 1065353216 ; 3f800000H push 1 push 8 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 52 ; 00000034H ; Line 8326 push 0 lea ecx, DWORD PTR _dist$8932[ebp] push ecx push 26 ; 0000001aH push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 8329 call _rand mov DWORD PTR -92+[ebp], eax fild DWORD PTR -92+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4003a000000000000000 fadd DWORD PTR __real@4@4002c000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+132] ; Line 8330 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _it$[ebp] mov DWORD PTR [eax+136], ecx ; Line 8332 jmp $L8919 $L8935: ; Line 8335 call _rand mov DWORD PTR -96+[ebp], eax fild DWORD PTR -96+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR __real@4@4004a000000000000000 fstp DWORD PTR _dist$8936[ebp] ; Line 8336 lea edx, DWORD PTR _f_attack_flags$[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8338 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp QWORD PTR -104+[ebp] call _rand mov DWORD PTR -108+[ebp], eax fild DWORD PTR -108+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul QWORD PTR __real@8@4002a000000000000000 fadd QWORD PTR -104+[ebp] fst DWORD PTR -112+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+124] ; Line 8340 push -1 push -1073737584 ; c0001090H push -1 push 1065353216 ; 3f800000H push 1 push 4 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 8341 push 0 lea ecx, DWORD PTR _dist$8936[ebp] push ecx push 26 ; 0000001aH push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 8343 mov DWORD PTR _dist$8936[ebp], 1109393408 ; 42200000H ; Line 8344 push -1 push 4112 ; 00001010H push -1 push 1065353216 ; 3f800000H push 100 ; 00000064H push 4194304 ; 00400000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal add esp, 28 ; 0000001cH call __ftol mov DWORD PTR _g_index$8941[ebp], eax ; Line 8345 push 0 lea ecx, DWORD PTR _dist$8936[ebp] push ecx push 26 ; 0000001aH push 0 mov dl, BYTE PTR _g_index$8941[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 8347 jmp $L8919 $L8942: ; Line 8353 lea ecx, DWORD PTR _f_attack_flags$[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8355 push 0 lea eax, DWORD PTR _pos$8943[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8356 push 0 lea edx, DWORD PTR _room$8944[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8358 mov ecx, DWORD PTR _room$8944[ebp] push ecx lea edx, DWORD PTR _pos$8943[ebp] push edx push -2147479540 ; 8000100cH push -1 push 1065353216 ; 3f800000H push 1 push 64 ; 00000040H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 8360 mov DWORD PTR _dist$8945[ebp], 1109393408 ; 42200000H ; Line 8361 push -1 push 4112 ; 00001010H push -1 push 1065353216 ; 3f800000H push 100 ; 00000064H push 4194304 ; 00400000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal add esp, 28 ; 0000001cH call __ftol mov DWORD PTR _g_index$8946[ebp], eax ; Line 8362 push 0 lea edx, DWORD PTR _dist$8945[ebp] push edx push 26 ; 0000001aH push 0 mov al, BYTE PTR _g_index$8946[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 8364 jmp SHORT $L8919 $L8948: ; Line 8371 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax] push ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 4 push eax push -2147479424 ; 80001080H push -1 push 1065353216 ; 3f800000H push 1 push 1048576 ; 00100000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 8372 push 1084227584 ; 40a00000H push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetGoalCircleDist@@3P6AXHHM@ZA ; AI_SetGoalCircleDist add esp, 12 ; 0000000cH $L8919: ; Line 8377 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _mode$[ebp] mov BYTE PTR [ecx+112], dl ; Line 8379 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+116], 0 ; Line 8380 mov al, 1 ; Line 8381 mov esp, ebp pop ebp ret 12 ; 0000000cH $L11462: DD $L8922 DD $L8919 DD $L8931 DD $L8935 DD $L8942 DD $L8919 DD $L8948 ?SetMode@BarnSwallow@@AAE_NHDH@Z ENDP ; BarnSwallow::SetMode _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@BarnSwallow@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; BarnSwallow::CallEvent ; Line 8384 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 8386 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L8955 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11464[eax] jmp DWORD PTR $L11465[edx*4] $L8958: ; Line 8388 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@BarnSwallow@@AAEXH@Z ; BarnSwallow::DoFrame ; Line 8389 jmp SHORT $L8955 $L8959: ; Line 8391 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@BarnSwallow@@AAEXH@Z ; BarnSwallow::DoInit ; Line 8392 jmp SHORT $L8955 $L8960: ; Line 8394 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@BarnSwallow@@AAE_NHPAUtOSIRISEventInfo@@@Z ; BarnSwallow::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L8953 $L8962: ; Line 8400 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L8955: ; Line 8404 mov ax, 257 ; 00000101H $L8953: ; Line 8405 mov esp, ebp pop ebp ret 8 $L11465: DD $L8958 DD $L8960 DD $L8959 DD $L8962 DD $L8955 $L11464: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@BarnSwallow@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; BarnSwallow::CallEvent _TEXT ENDS PUBLIC ?DoInit@GBPowerup@@AAEXH@Z ; GBPowerup::DoInit _DATA SEGMENT ORG $+2 $SG8975 DB 'Buddyextinguisher', 00H ORG $+2 $SG8976 DB 'buddywingnut', 00H ORG $+3 $SG8977 DB 'buddycontrol', 00H ORG $+3 $SG8978 DB 'buddyassist', 00H $SG8979 DB 'buddyantivirus', 00H ORG $+1 $SG8980 DB 'buddyspeed', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -40 _i$ = -4 _ch$ = -20 _short_id$ = -36 _id$ = -24 ?DoInit@GBPowerup@@AAEXH@Z PROC NEAR ; GBPowerup::DoInit ; Line 8413 push ebp mov ebp, esp sub esp, 48 ; 00000030H mov DWORD PTR _this$[ebp], ecx ; Line 8416 mov WORD PTR _ch$[ebp+8], 4 ; Line 8417 mov DWORD PTR _ch$[ebp+12], 12 ; 0000000cH ; Line 8418 mov DWORD PTR _ch$[ebp], 0 ; Line 8419 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 8421 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 8422 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -44+[ebp] call _rand mov DWORD PTR -48+[ebp], eax fild DWORD PTR -48+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR -44+[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+4] ; Line 8423 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+8], 0 ; Line 8427 push OFFSET FLAT:$SG8975 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov WORD PTR _short_id$[ebp], ax ; Line 8428 push OFFSET FLAT:$SG8976 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov WORD PTR _short_id$[ebp+2], ax ; Line 8429 push OFFSET FLAT:$SG8977 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov WORD PTR _short_id$[ebp+4], ax ; Line 8430 push OFFSET FLAT:$SG8978 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov WORD PTR _short_id$[ebp+6], ax ; Line 8431 push OFFSET FLAT:$SG8979 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov WORD PTR _short_id$[ebp+8], ax ; Line 8432 push OFFSET FLAT:$SG8980 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov WORD PTR _short_id$[ebp+10], ax ; Line 8435 push 0 lea ecx, DWORD PTR _id$[ebp] push ecx push 2 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8437 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx], 5 ; Line 8438 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L8982 $L8983: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L8982: cmp DWORD PTR _i$[ebp], 6 jge SHORT $L8984 ; Line 8440 mov eax, DWORD PTR _id$[ebp] and eax, 65535 ; 0000ffffH mov ecx, DWORD PTR _i$[ebp] xor edx, edx mov dx, WORD PTR _short_id$[ebp+ecx*2] cmp eax, edx jne SHORT $L8985 ; Line 8442 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _i$[ebp] mov BYTE PTR [ecx], dl $L8985: ; Line 8444 jmp SHORT $L8983 $L8984: ; Line 8445 mov esp, ebp pop ebp ret 4 ?DoInit@GBPowerup@@AAEXH@Z ENDP ; GBPowerup::DoInit _TEXT ENDS PUBLIC ?DoFrame@GBPowerup@@AAEXH@Z ; GBPowerup::DoFrame PUBLIC __real@4@3ffccccccd0000000000 ; COMDAT __real@4@3ffccccccd0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ffccccccd0000000000 DD 03e4ccccdr ; 0.2 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -188 _pos$8991 = -124 _room$8992 = -112 _scan_objs$8993 = -104 _n_scan$8994 = -4 _i$8995 = -108 _type$9001 = -128 _id$9002 = -132 _g_pos$9004 = -148 _dist$9005 = -136 _command$9007 = -184 _data$9008 = -176 ?DoFrame@GBPowerup@@AAEXH@Z PROC NEAR ; GBPowerup::DoFrame ; File aigame.cpp ; Line 8448 push ebp mov ebp, esp sub esp, 196 ; 000000c4H push esi mov DWORD PTR _this$[ebp], ecx ; Line 8449 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+4] fnstsw ax test ah, 1 jne $L9000 ; Line 8457 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@3ffccccccd0000000000 fstp DWORD PTR -192+[ebp] call _rand mov DWORD PTR -196+[ebp], eax fild DWORD PTR -196+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@3ffd99999a0000000000 fadd DWORD PTR -192+[ebp] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] ; Line 8459 push 0 lea eax, DWORD PTR _pos$8991[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8460 push 0 lea edx, DWORD PTR _room$8992[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8462 push 1 push 0 push 1 push 0 push 25 ; 00000019H lea ecx, DWORD PTR _scan_objs$8993[ebp] push ecx push 1084227584 ; 40a00000H mov edx, DWORD PTR _room$8992[ebp] push edx lea eax, DWORD PTR _pos$8991[ebp] push eax call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$8994[ebp], eax ; Line 8464 mov DWORD PTR _i$8995[ebp], 0 jmp SHORT $L8998 $L8999: mov ecx, DWORD PTR _i$8995[ebp] add ecx, 1 mov DWORD PTR _i$8995[ebp], ecx $L8998: mov edx, DWORD PTR _i$8995[ebp] cmp edx, DWORD PTR _n_scan$8994[ebp] jge $L9000 ; Line 8468 push 0 lea eax, DWORD PTR _type$9001[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _i$8995[ebp] mov edx, DWORD PTR _scan_objs$8993[ebp+ecx*4] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8469 push 0 lea eax, DWORD PTR _id$9002[ebp] push eax push 2 push 1 mov ecx, DWORD PTR _i$8995[ebp] mov edx, DWORD PTR _scan_objs$8993[ebp+ecx*4] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8471 cmp DWORD PTR _type$9001[ebp], 2 jne $L9006 movsx eax, WORD PTR _id$9002[ebp] test eax, eax jne $L9006 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx test edx, edx je $L9006 ; Line 8474 push 0 lea edx, DWORD PTR _g_pos$9004[ebp] push edx push 3 push 1 mov eax, DWORD PTR _i$8995[ebp] mov ecx, DWORD PTR _scan_objs$8993[ebp+eax*4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8476 lea edx, DWORD PTR _g_pos$9004[ebp] push edx lea eax, DWORD PTR _pos$8991[ebp] push eax call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dist$9005[ebp] ; Line 8478 fld DWORD PTR _dist$9005[ebp] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 1 je SHORT $L9006 ; Line 8481 mov BYTE PTR _command$9007[ebp], 5 ; Line 8482 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx] mov BYTE PTR _command$9007[ebp+1], al ; Line 8485 mov ecx, DWORD PTR _i$8995[ebp] mov edx, DWORD PTR _scan_objs$8993[ebp+ecx*4] mov DWORD PTR _data$9008[ebp+20], edx ; Line 8486 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _data$9008[ebp+4], eax ; Line 8488 lea ecx, DWORD PTR _command$9007[ebp] mov DWORD PTR _data$9008[ebp+24], ecx ; Line 8489 mov DWORD PTR _data$9008[ebp], 16 ; 00000010H ; Line 8491 lea edx, DWORD PTR _data$9008[ebp] push edx push 272 ; 00000110H mov eax, DWORD PTR _i$8995[ebp] mov ecx, DWORD PTR _scan_objs$8993[ebp+eax*4] push ecx call DWORD PTR ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Obj_CallEvent add esp, 12 ; 0000000cH ; Line 8493 jmp SHORT $L9000 $L9006: ; Line 8496 jmp $L8999 $L9000: ; Line 8498 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@GBPowerup@@AAEXH@Z ENDP ; GBPowerup::DoFrame _event$ = 8 _data$ = 12 _this$ = -8 _type$9024 = -4 ?CallEvent@GBPowerup@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; GBPowerup::CallEvent ; Line 8501 push ebp mov ebp, esp sub esp, 12 ; 0000000cH push esi mov DWORD PTR _this$[ebp], ecx ; Line 8503 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -12+[ebp], eax mov ecx, DWORD PTR -12+[ebp] sub ecx, 256 ; 00000100H mov DWORD PTR -12+[ebp], ecx cmp DWORD PTR -12+[ebp], 25 ; 00000019H ja $L9016 mov eax, DWORD PTR -12+[ebp] xor edx, edx mov dl, BYTE PTR $L11471[eax] jmp DWORD PTR $L11472[edx*4] $L9019: ; Line 8505 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fsubr DWORD PTR [esi+8] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] ; Line 8506 jmp $L9016 $L9020: ; Line 8508 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@GBPowerup@@AAEXH@Z ; GBPowerup::DoInit ; Line 8509 jmp SHORT $L9016 $L9021: ; Line 8511 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@GBPowerup@@AAEXH@Z ; GBPowerup::DoFrame ; Line 8512 jmp SHORT $L9016 $L9022: ; Line 8515 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+8] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9025 ; Line 8519 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+8], 1065353216 ; 3f800000H ; Line 8520 push 0 lea eax, DWORD PTR _type$9024[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8522 cmp DWORD PTR _type$9024[ebp], 4 jne SHORT $L9025 ; Line 8524 push 93 ; 0000005dH call ?GetStringFromTable@@YAPADH@Z ; GetStringFromTable add esp, 4 push eax mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax] push ecx call DWORD PTR ?Player_AddHudMessage@@3P6AXHPAD@ZA ; Player_AddHudMessage add esp, 8 $L9025: ; Line 8528 jmp SHORT $L9016 $L9026: ; Line 8531 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9016: ; Line 8535 mov ax, 257 ; 00000101H ; Line 8536 pop esi mov esp, ebp pop ebp ret 8 $L11472: DD $L9019 DD $L9021 DD $L9022 DD $L9020 DD $L9026 DD $L9016 $L11471: DB 0 DB 1 DB 5 DB 2 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 3 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 4 ?CallEvent@GBPowerup@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; GBPowerup::CallEvent _TEXT ENDS PUBLIC __real@4@400ec350000000000000 PUBLIC ?DoNotify@Sparky@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Sparky::DoNotify ; COMDAT __real@4@400ec350000000000000 ; File aigame.cpp CONST SEGMENT __real@4@400ec350000000000000 DD 047435000r ; 50000 CONST ENDS _TEXT SEGMENT _me_handle$ = 8 _data$ = 12 _this$ = -28 _rvel$9034 = -12 _dir$9037 = -24 ?DoNotify@Sparky@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Sparky::DoNotify ; File aigame.cpp ; Line 8543 push ebp mov ebp, esp sub esp, 28 ; 0000001cH mov DWORD PTR _this$[ebp], ecx ; Line 8545 mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax+8], 0 jne $L9033 mov ecx, DWORD PTR _data$[ebp] cmp DWORD PTR [ecx], 19 ; 00000013H jne $L9033 ; Line 8548 push 0 lea edx, DWORD PTR _rvel$9034[ebp] push edx push 7 push 1 mov eax, DWORD PTR _me_handle$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8550 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+60] cmp eax, 1 jne SHORT $L9035 ; Line 8552 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fmul DWORD PTR __real@4@400ec350000000000000 fsubr DWORD PTR _rvel$9034[ebp+4] fstp DWORD PTR _rvel$9034[ebp+4] ; Line 8554 jmp SHORT $L9036 $L9035: ; Line 8556 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fmul DWORD PTR __real@4@400ec350000000000000 fadd DWORD PTR _rvel$9034[ebp+4] fstp DWORD PTR _rvel$9034[ebp+4] $L9036: ; Line 8559 push 0 lea ecx, DWORD PTR _rvel$9034[ebp] push ecx push 7 push 0 mov edx, DWORD PTR _me_handle$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8561 mov eax, DWORD PTR _Zero_vector mov DWORD PTR _dir$9037[ebp], eax mov ecx, DWORD PTR _Zero_vector+4 mov DWORD PTR _dir$9037[ebp+4], ecx mov edx, DWORD PTR _Zero_vector+8 mov DWORD PTR _dir$9037[ebp+8], edx ; Line 8562 lea eax, DWORD PTR _dir$9037[ebp] push eax push 30 ; 0000001eH push 0 mov ecx, DWORD PTR _me_handle$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9033: ; Line 8565 mov al, 1 ; Line 8566 mov esp, ebp pop ebp ret 8 ?DoNotify@Sparky@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; Sparky::DoNotify _TEXT ENDS PUBLIC ?SetMode@Sparky@@AAEXHD@Z ; Sparky::SetMode _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -8 _drag$9049 = -4 ?SetMode@Sparky@@AAEXHD@Z PROC NEAR ; Sparky::SetMode ; Line 8569 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 8570 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 8573 mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR -12+[ebp], cl cmp BYTE PTR -12+[ebp], 0 je SHORT $L9047 cmp BYTE PTR -12+[ebp], 1 je SHORT $L9048 jmp SHORT $L9044 $L9047: ; Line 8576 push 0 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 12 ; 0000000cH push eax push 15 ; 0000000fH push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8577 push 6 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 8579 jmp SHORT $L9044 $L9048: ; Line 8582 push 0 push 131073 ; 00020001H push -1 push 1148846080 ; 447a0000H push 0 push 65536 ; 00010000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 8584 mov DWORD PTR _drag$9049[ebp], 0 ; Line 8585 push 0 lea ecx, DWORD PTR _drag$9049[ebp] push ecx push 15 ; 0000000fH push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L9044: ; Line 8590 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+16] ; Line 8591 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+64], 0 ; Line 8592 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+4], 0 ; Line 8593 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _mode$[ebp] mov BYTE PTR [ecx], dl ; Line 8594 mov esp, ebp pop ebp ret 8 ?SetMode@Sparky@@AAEXHD@Z ENDP ; Sparky::SetMode _TEXT ENDS PUBLIC ?DoInit@Sparky@@AAEXH@Z ; Sparky::DoInit _DATA SEGMENT ORG $+1 $SG9058 DB 'FunkyEffect2', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -940 _ch$ = -16 _mstruct$ = -936 ?DoInit@Sparky@@AAEXH@Z PROC NEAR ; Sparky::DoInit ; Line 8597 push ebp mov ebp, esp sub esp, 940 ; 000003acH mov DWORD PTR _this$[ebp], ecx ; Line 8599 mov WORD PTR _ch$[ebp+8], 4 ; Line 8600 mov DWORD PTR _ch$[ebp+12], 68 ; 00000044H ; Line 8601 mov DWORD PTR _ch$[ebp], 0 ; Line 8602 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 8604 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 8606 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+8], 1 ; Line 8607 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+20], -1 ; Line 8608 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx], 0 ; Line 8609 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 8610 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+60], 0 ; Line 8611 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+64], 0 ; Line 8613 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 15 ; 0000000fH push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8614 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 24 ; 00000018H push ecx push 4 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8618 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _mstruct$[ebp+44], eax ; Line 8619 mov DWORD PTR _mstruct$[ebp+616], 0 ; Line 8620 mov DWORD PTR _mstruct$[ebp+628], 1065353216 ; 3f800000H ; Line 8621 mov DWORD PTR _mstruct$[ebp+576], 1315859240 ; 4e6e6b28H ; Line 8622 mov DWORD PTR _mstruct$[ebp+580], 1084437299 ; 40a33333H ; Line 8624 push 0 lea ecx, DWORD PTR _mstruct$[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8625 push 0 lea eax, DWORD PTR _mstruct$[ebp+176] push eax push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGunPos add esp, 16 ; 00000010H ; Line 8626 push 0 lea edx, DWORD PTR _mstruct$[ebp+652] push edx push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGunPos add esp, 16 ; 00000010H ; Line 8628 mov BYTE PTR _mstruct$[ebp+276], 0 ; Line 8629 mov DWORD PTR _mstruct$[ebp+272], 1056964608 ; 3f000000H ; Line 8630 mov DWORD PTR _mstruct$[ebp+588], 2 ; Line 8631 mov DWORD PTR _mstruct$[ebp+264], 2 ; Line 8632 push OFFSET FLAT:$SG9058 call DWORD PTR ?Scrpt_FindTextureName@@3P6AHPAD@ZA ; Scrpt_FindTextureName add esp, 4 mov WORD PTR _mstruct$[ebp+6], ax ; Line 8634 mov DWORD PTR _mstruct$[ebp+568], 16912 ; 00004210H ; Line 8635 mov DWORD PTR _mstruct$[ebp+592], 1 ; Line 8636 lea ecx, DWORD PTR _mstruct$[ebp] push ecx push 103 ; 00000067H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 8638 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+16] ; Line 8639 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+64], 0 ; Line 8640 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 8641 mov esp, ebp pop ebp ret 4 ?DoInit@Sparky@@AAEXH@Z ENDP ; Sparky::DoInit _TEXT ENDS PUBLIC __real@4@400effff000000000000 PUBLIC __real@4@400bbb80000000000000 PUBLIC __real@4@3ffbcccccd0000000000 PUBLIC __real@8@4000a000000000000000 PUBLIC ?DoFrame@Sparky@@AAEXH@Z ; Sparky::DoFrame ; COMDAT __real@4@400effff000000000000 ; File aigame.cpp CONST SEGMENT __real@4@400effff000000000000 DD 0477fff00r ; 65535 CONST ENDS ; COMDAT __real@4@400bbb80000000000000 CONST SEGMENT __real@4@400bbb80000000000000 DD 045bb8000r ; 6000 CONST ENDS ; COMDAT __real@4@3ffbcccccd0000000000 CONST SEGMENT __real@4@3ffbcccccd0000000000 DD 03dcccccdr ; 0.1 CONST ENDS ; COMDAT __real@8@4000a000000000000000 CONST SEGMENT __real@8@4000a000000000000000 DQ 04004000000000000r ; 2.5 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -996 _spin_dir$9064 = -52 _orient$9065 = -44 _dot$9066 = -8 _ang$9070 = -4 _aps$9071 = -48 _tdot$9073 = -56 _room$9086 = -60 _pos$9087 = -72 _mstruct$9089 = -992 ?DoFrame@Sparky@@AAEXH@Z PROC NEAR ; Sparky::DoFrame ; File aigame.cpp ; Line 8644 push ebp mov ebp, esp sub esp, 1008 ; 000003f0H push esi push edi mov DWORD PTR _this$[ebp], ecx ; Line 8646 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx] test edx, edx jne $L9063 ; Line 8650 push 0 lea eax, DWORD PTR _orient$9065[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8652 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 24 ; 00000018H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$9065[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$9065[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$9065[ebp+8] mov DWORD PTR [ecx+8], edx call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H fstp DWORD PTR _dot$9066[ebp] ; Line 8653 fld DWORD PTR _dot$9066[ebp] fcomp DWORD PTR __real@4@bfff8000000000000000 fnstsw ax test ah, 1 je SHORT $L9067 mov DWORD PTR _dot$9066[ebp], -1082130432 ; bf800000H ; Line 8654 jmp SHORT $L9069 $L9067: fld DWORD PTR _dot$9066[ebp] fcomp DWORD PTR __real@4@3fff8000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9069 mov DWORD PTR _dot$9066[ebp], 1065353216 ; 3f800000H $L9069: ; Line 8656 fld DWORD PTR _dot$9066[ebp] sub esp, 8 fstp QWORD PTR [esp] call _acos add esp, 8 fst DWORD PTR _ang$9070[ebp] ; Line 8658 fmul DWORD PTR __real@4@400effff000000000000 fstp QWORD PTR -1004+[ebp] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fmul QWORD PTR __real@8@4001c90fdaa2922a8000 fdivr QWORD PTR -1004+[ebp] fstp DWORD PTR _aps$9071[ebp] ; Line 8660 fld DWORD PTR _aps$9071[ebp] fcomp DWORD PTR __real@4@400bbb80000000000000 fnstsw ax test ah, 1 jne SHORT $L9072 ; Line 8662 sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9065[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9065[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9065[ebp+32] mov DWORD PTR [eax+8], ecx mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 24 ; 00000018H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR [eax] mov DWORD PTR [ecx], edx mov edx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR [ecx+8], eax call ??D@YAMUvector@@0@Z ; operator* add esp, 24 ; 00000018H fstp DWORD PTR _tdot$9073[ebp] ; Line 8663 fld DWORD PTR _tdot$9073[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 je SHORT $L9074 ; Line 8664 mov BYTE PTR _spin_dir$9064[ebp], 1 ; Line 8665 jmp SHORT $L9077 $L9074: fld DWORD PTR _tdot$9073[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9076 ; Line 8666 mov BYTE PTR _spin_dir$9064[ebp], 2 ; Line 8667 jmp SHORT $L9077 $L9076: ; Line 8668 mov BYTE PTR _spin_dir$9064[ebp], 0 $L9077: ; Line 8670 jmp SHORT $L9078 $L9072: ; Line 8672 mov BYTE PTR _spin_dir$9064[ebp], 0 $L9078: ; Line 8675 movsx ecx, BYTE PTR _spin_dir$9064[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx edx, BYTE PTR [eax+60] cmp ecx, edx jne SHORT $L9079 ; Line 8677 movsx eax, BYTE PTR _spin_dir$9064[ebp] test eax, eax jne SHORT $L9080 ; Line 8678 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+64], 0 ; Line 8679 jmp SHORT $L9081 $L9080: ; Line 8680 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+64] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+64] $L9081: ; Line 8682 jmp SHORT $L9082 $L9079: ; Line 8684 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _spin_dir$9064[ebp] mov BYTE PTR [ecx+60], dl ; Line 8685 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+64], 0 $L9082: ; Line 8688 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _spin_dir$9064[ebp] mov BYTE PTR [eax+60], cl ; Line 8689 mov edx, DWORD PTR _this$[ebp] mov edi, DWORD PTR [edx+4] add edi, 24 ; 00000018H mov ecx, 9 lea esi, DWORD PTR _orient$9065[ebp] rep movsd ; Line 8693 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+64] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9083 ; Line 8695 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sparky@@AAEXHD@Z ; Sparky::SetMode $L9083: ; Line 8698 jmp $L9090 $L9063: ; Line 8700 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+16] fadd DWORD PTR __real@4@3ffbcccccd0000000000 fstp DWORD PTR -1008+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -1008+[ebp] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9085 ; Line 8702 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+16] ; Line 8707 push 0 lea ecx, DWORD PTR _room$9086[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8708 push 0 lea eax, DWORD PTR _pos$9087[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8710 push 1065353216 ; 3f800000H push -1 mov edx, DWORD PTR _room$9086[ebp] push edx lea eax, DWORD PTR _pos$9087[ebp] push eax push 5 call DWORD PTR ?Game_CreateRandomSparks@@3P6AXHPAUvector@@HHM@ZA ; Game_CreateRandomSparks add esp, 20 ; 00000014H $L9085: ; Line 8713 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR [edx+4] fcomp QWORD PTR __real@8@4000a000000000000000 fnstsw ax test ah, 1 je $L9088 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] fcomp QWORD PTR __real@8@4000a000000000000000 fnstsw ax test ah, 1 jne $L9088 ; Line 8717 mov BYTE PTR _mstruct$9089[ebp+229], 21 ; 00000015H ; Line 8718 mov BYTE PTR _mstruct$9089[ebp+228], 0 ; Line 8719 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _mstruct$9089[ebp+44], ecx ; Line 8720 mov BYTE PTR _mstruct$9089[ebp+231], 1 ; Line 8721 mov BYTE PTR _mstruct$9089[ebp+232], 7 ; Line 8722 mov BYTE PTR _mstruct$9089[ebp+233], 0 ; Line 8723 mov DWORD PTR _mstruct$9089[ebp+236], 981668463 ; 3a83126fH ; Line 8724 mov DWORD PTR _mstruct$9089[ebp+240], 981668463 ; 3a83126fH ; Line 8725 mov DWORD PTR _mstruct$9089[ebp+272], 1028443341 ; 3d4ccccdH ; Line 8726 mov DWORD PTR _mstruct$9089[ebp+572], 1203982336 ; 47c35000H ; Line 8727 mov DWORD PTR _mstruct$9089[ebp+576], 1065353216 ; 3f800000H ; Line 8728 mov DWORD PTR _mstruct$9089[ebp+580], 1090519040 ; 41000000H ; Line 8729 mov DWORD PTR _mstruct$9089[ebp+584], 1123024896 ; 42f00000H ; Line 8731 lea edx, DWORD PTR _mstruct$9089[ebp] push edx push 33 ; 00000021H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L9088: ; Line 8734 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9090 ; Line 8736 push 0 push 0 push 67296 ; 000106e0H push 1148846080 ; 447a0000H push -1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H $L9090: ; Line 8740 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] ; Line 8741 pop edi pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@Sparky@@AAEXH@Z ENDP ; Sparky::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Sparky@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Sparky::CallEvent ; Line 8744 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 8746 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9097 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11488[eax] jmp DWORD PTR $L11489[edx*4] $L9100: ; Line 8748 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Sparky@@AAEXH@Z ; Sparky::DoInit ; Line 8749 jmp SHORT $L9097 $L9101: ; Line 8751 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Sparky@@AAEXH@Z ; Sparky::DoFrame ; Line 8752 jmp SHORT $L9097 $L9102: ; Line 8754 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Sparky@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Sparky::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9095 $L9103: ; Line 8758 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9097: ; Line 8762 mov ax, 257 ; 00000101H $L9095: ; Line 8763 mov esp, ebp pop ebp ret 8 $L11489: DD $L9101 DD $L9102 DD $L9100 DD $L9103 DD $L9097 $L11488: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Sparky@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Sparky::CallEvent _TEXT ENDS PUBLIC ?DoNotify@Hellion@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Hellion::DoNotify PUBLIC ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode _TEXT SEGMENT _me$ = 8 _data$ = 12 _this$ = -4 ?DoNotify@Hellion@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Hellion::DoNotify ; Line 8770 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 8772 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx+4] mov BYTE PTR -8+[ebp], dl cmp BYTE PTR -8+[ebp], 0 je SHORT $L9114 cmp BYTE PTR -8+[ebp], 1 je SHORT $L9116 jmp SHORT $L9111 $L9114: ; Line 8775 mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax], 27 ; 0000001bH jne SHORT $L9115 ; Line 8777 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode $L9115: ; Line 8780 jmp SHORT $L9111 $L9116: ; Line 8783 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx], 28 ; 0000001cH jne SHORT $L9117 ; Line 8785 push 2 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode $L9117: $L9111: ; Line 8791 mov al, 1 ; Line 8792 mov esp, ebp pop ebp ret 8 ?DoNotify@Hellion@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; Hellion::DoNotify _TEXT ENDS PUBLIC ?RemapAlert@Hellion@@AAEXHMMM@Z ; Hellion::RemapAlert _TEXT SEGMENT _me$ = 8 _start$ = 12 _end$ = 16 _time$ = 20 _this$ = -4 ?RemapAlert@Hellion@@AAEXHMMM@Z PROC NEAR ; Hellion::RemapAlert ; Line 8795 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 8796 push 0 lea eax, DWORD PTR _start$[ebp] push eax push 21 ; 00000015H push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8797 push 0 lea edx, DWORD PTR _end$[ebp] push edx push 22 ; 00000016H push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8798 push 0 lea ecx, DWORD PTR _time$[ebp] push ecx push 23 ; 00000017H push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8799 mov esp, ebp pop ebp ret 16 ; 00000010H ?RemapAlert@Hellion@@AAEXHMMM@Z ENDP ; Hellion::RemapAlert _TEXT ENDS PUBLIC ?RemapWB@Hellion@@AAEXHMMHMMMHGD@Z ; Hellion::RemapWB _TEXT SEGMENT _me$ = 8 _start$ = 12 _fire$ = 16 _fire_sound$ = 20 _end$ = 24 _time$ = 28 _latency$ = 32 _index$ = 36 _w_id$ = 40 _f_mask$ = 44 _this$ = -12 _num_gps$ = -8 _i$ = -4 ?RemapWB@Hellion@@AAEXHMMHMMMHGD@Z PROC NEAR ; Hellion::RemapWB ; Line 8802 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 8803 mov al, BYTE PTR _index$[ebp] push eax lea ecx, DWORD PTR _start$[ebp] push ecx push 11 ; 0000000bH push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8804 mov al, BYTE PTR _index$[ebp] push eax lea ecx, DWORD PTR _fire$[ebp] push ecx push 12 ; 0000000cH push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8805 mov al, BYTE PTR _index$[ebp] push eax lea ecx, DWORD PTR _fire_sound$[ebp] push ecx push 8 push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8806 mov al, BYTE PTR _index$[ebp] push eax lea ecx, DWORD PTR _end$[ebp] push ecx push 13 ; 0000000dH push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8807 mov al, BYTE PTR _index$[ebp] push eax lea ecx, DWORD PTR _time$[ebp] push ecx push 10 ; 0000000aH push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8808 mov al, BYTE PTR _index$[ebp] push eax lea ecx, DWORD PTR _latency$[ebp] push ecx push 9 push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8809 push 0 lea eax, DWORD PTR _f_mask$[ebp] push eax push 7 push 0 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8812 push 0 lea edx, DWORD PTR _num_gps$[ebp] push edx push 3 push 1 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8815 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L9140 $L9141: mov ecx, DWORD PTR _i$[ebp] add ecx, 1 mov DWORD PTR _i$[ebp], ecx $L9140: movsx edx, BYTE PTR _num_gps$[ebp] cmp DWORD PTR _i$[ebp], edx jge SHORT $L9142 ; Line 8817 mov al, BYTE PTR _i$[ebp] push eax lea ecx, DWORD PTR _w_id$[ebp] push ecx push 4 push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_WBValue@@3P6AXHDDDPAXD@ZA ; Obj_WBValue add esp, 24 ; 00000018H ; Line 8818 jmp SHORT $L9141 $L9142: ; Line 8819 mov esp, ebp pop ebp ret 40 ; 00000028H ?RemapWB@Hellion@@AAEXHMMHMMMHGD@Z ENDP ; Hellion::RemapWB _TEXT ENDS _DATA SEGMENT ORG $+3 $SG9168 DB 'Concussion', 00H ORG $+1 $SG9169 DB 'concmissilefire71', 00H ORG $+2 $SG9171 DB 'JuggNapalm', 00H ORG $+1 $SG9172 DB 'WpnbotNapalmTemp', 00H ORG $+3 $SG9174 DB 'homing', 00H ORG $+1 $SG9175 DB 'HomingfireB1', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -28 _flags$9158 = -4 _flags$9179 = -20 _vel$9180 = -16 _circle_dist$9181 = -24 ?SetMode@Hellion@@AAEXHD@Z PROC NEAR ; Hellion::SetMode ; Line 8822 push ebp mov ebp, esp sub esp, 40 ; 00000028H mov DWORD PTR _this$[ebp], ecx ; Line 8823 push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 8826 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx+4] mov BYTE PTR -32+[ebp], al cmp BYTE PTR -32+[ebp], 2 jl SHORT $L9149 cmp BYTE PTR -32+[ebp], 5 jle SHORT $L9152 jmp SHORT $L9149 $L9152: ; Line 8831 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR _mode$[ebp] mov BYTE PTR [edx+5], al ; Line 8832 mov BYTE PTR _mode$[ebp], 8 $L9149: ; Line 8837 movsx ecx, BYTE PTR _mode$[ebp] mov DWORD PTR -36+[ebp], ecx mov edx, DWORD PTR -36+[ebp] sub edx, 2 mov DWORD PTR -36+[ebp], edx cmp DWORD PTR -36+[ebp], 6 ja $L9182 mov eax, DWORD PTR -36+[ebp] jmp DWORD PTR $L11494[eax*4] $L9157: ; Line 8840 push 1065353216 ; 3f800000H push 1092616192 ; 41200000H push 1065353216 ; 3f800000H mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?RemapAlert@Hellion@@AAEXHMMM@Z ; Hellion::RemapAlert ; Line 8842 mov DWORD PTR _flags$9158[ebp], 8388608 ; 00800000H ; Line 8843 lea edx, DWORD PTR _flags$9158[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8846 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] mov DWORD PTR -40+[ebp], eax mov ecx, DWORD PTR -40+[ebp] sub ecx, 2 mov DWORD PTR -40+[ebp], ecx cmp DWORD PTR -40+[ebp], 3 ja $L9160 mov edx, DWORD PTR -40+[ebp] jmp DWORD PTR $L11495[edx*4] $L9163: ; Line 8848 push 0 push -1 push 2 push 1075838976 ; 40200000H push 1124859904 ; 430c0000H push 1123024896 ; 42f00000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8849 jmp SHORT $L9160 $L9164: ; Line 8851 push 0 push -1 push 2 push 1084227584 ; 40a00000H push 1131413504 ; 43700000H push 1128792064 ; 43480000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8852 jmp SHORT $L9160 $L9165: ; Line 8854 push 0 push -1 push 2 push 1075000115 ; 40133333H push 1117782016 ; 42a00000H push 1115160576 ; 42780000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8855 jmp SHORT $L9160 $L9166: ; Line 8857 push 0 push -1 push 2 push 1071225242 ; 3fd9999aH push 1135640576 ; 43b08000H push 1135149056 ; 43a90000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L9160: ; Line 8861 jmp $L9154 $L9167: ; Line 8864 push 1065353216 ; 3f800000H push 1136656384 ; 43c00000H push 1136361472 ; 43bb8000H mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?RemapAlert@Hellion@@AAEXHMMM@Z ; Hellion::RemapAlert ; Line 8865 push 30 ; 0000001eH push OFFSET FLAT:$SG9168 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 push eax push 0 push 1056964608 ; 3f000000H push 1075838976 ; 40200000H push 1123024896 ; 42f00000H push OFFSET FLAT:$SG9169 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 1123024896 ; 42f00000H push 1120403456 ; 42c80000H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?RemapWB@Hellion@@AAEXHMMHMMMHGD@Z ; Hellion::RemapWB ; Line 8866 push 0 push -1 push 2 push 1076677837 ; 402ccccdH push 1120403456 ; 42c80000H push 1117782016 ; 42a00000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8867 jmp $L9154 $L9170: ; Line 8869 push 1065353216 ; 3f800000H push 1136164864 ; 43b88000H push 1135869952 ; 43b40000H mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?RemapAlert@Hellion@@AAEXHMMM@Z ; Hellion::RemapAlert ; Line 8870 push 6 push OFFSET FLAT:$SG9171 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 push eax push 0 push 1041865114 ; 3e19999aH push 1073741824 ; 40000000H push 1115160576 ; 42780000H push OFFSET FLAT:$SG9172 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 1115160576 ; 42780000H push 1111490560 ; 42400000H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?RemapWB@Hellion@@AAEXHMMHMMMHGD@Z ; Hellion::RemapWB ; Line 8871 push 0 push -1 push 2 push 1084227584 ; 40a00000H push 1111490560 ; 42400000H push 1092616192 ; 41200000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8872 jmp $L9154 $L9173: ; Line 8874 push 1065353216 ; 3f800000H push 1137180672 ; 43c80000H push 1136852992 ; 43c30000H mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?RemapAlert@Hellion@@AAEXHMMM@Z ; Hellion::RemapAlert ; Line 8875 push 30 ; 0000001eH push OFFSET FLAT:$SG9174 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 push eax push 0 push 1061997773 ; 3f4ccccdH push 1076677837 ; 402ccccdH push 1128792064 ; 43480000H push OFFSET FLAT:$SG9175 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 push eax push 1128792064 ; 43480000H push 1127415808 ; 43330000H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?RemapWB@Hellion@@AAEXHMMHMMMHGD@Z ; Hellion::RemapWB ; Line 8876 push 0 push -1 push 2 push 1084227584 ; 40a00000H push 1127415808 ; 43330000H push 1124859904 ; 430c0000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8877 jmp $L9154 $L9176: ; Line 8879 push 1075838976 ; 40200000H push 1133543424 ; 43908000H push 1132953600 ; 43878000H mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?RemapAlert@Hellion@@AAEXHMMM@Z ; Hellion::RemapAlert ; Line 8880 push 0 push -1 push 2 push 1082130432 ; 40800000H push 1132953600 ; 43878000H push 1131413504 ; 43700000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8881 jmp $L9154 $L9177: ; Line 8883 push 0 push -1 push 2 push 1087373312 ; 40d00000H push 1135149056 ; 43a90000H push 1133543424 ; 43908000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH ; Line 8884 jmp $L9154 $L9178: ; Line 8887 mov DWORD PTR _flags$9179[ebp], 25165824 ; 01800000H ; Line 8888 lea ecx, DWORD PTR _flags$9179[ebp] push ecx push 51 ; 00000033H push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8889 mov DWORD PTR _flags$9179[ebp], 256 ; 00000100H ; Line 8890 lea eax, DWORD PTR _flags$9179[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8892 mov DWORD PTR _vel$9180[ebp], 0 mov DWORD PTR _vel$9180[ebp+4], 0 mov DWORD PTR _vel$9180[ebp+8], 0 ; Line 8893 push 0 lea edx, DWORD PTR _vel$9180[ebp] push edx push 6 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8895 mov DWORD PTR _circle_dist$9181[ebp], -1082130432 ; bf800000H ; Line 8896 lea ecx, DWORD PTR _circle_dist$9181[ebp] push ecx push 7 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8898 push -1 push -1 push 0 push 1097859072 ; 41700000H push 1143111680 ; 44228000H push 1140293632 ; 43f78000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L9182: $L9154: ; Line 8905 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+8], 0 ; Line 8906 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _mode$[ebp] mov BYTE PTR [ecx+4], dl ; Line 8907 mov esp, ebp pop ebp ret 8 $L11494: DD $L9167 DD $L9173 DD $L9170 DD $L9176 DD $L9177 DD $L9178 DD $L9157 $L11495: DD $L9163 DD $L9164 DD $L9165 DD $L9166 ?SetMode@Hellion@@AAEXHD@Z ENDP ; Hellion::SetMode _TEXT ENDS PUBLIC ?DoInit@Hellion@@AAEXH@Z ; Hellion::DoInit _DATA SEGMENT ORG $+3 $SG9190 DB 'Hellionhead', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@Hellion@@AAEXH@Z PROC NEAR ; Hellion::DoInit ; Line 8910 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 8912 mov WORD PTR _ch$[ebp+8], 4 ; Line 8913 mov DWORD PTR _ch$[ebp+12], 12 ; 0000000cH ; Line 8914 mov DWORD PTR _ch$[ebp], 0 ; Line 8915 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 8917 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 8918 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx], 0 ; Line 8919 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+4], 0 ; Line 8921 push 1 push 1 push 0 push 0 push 2 push OFFSET FLAT:$SG9190 mov ecx, DWORD PTR _me$[ebp] push ecx call ?CreateAndAttach@@YAHHPADEDD_N1@Z ; CreateAndAttach add esp, 28 ; 0000001cH ; Line 8922 push 1065353216 ; 3f800000H push 1092616192 ; 41200000H push 1065353216 ; 3f800000H mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?RemapAlert@Hellion@@AAEXHMMM@Z ; Hellion::RemapAlert ; Line 8924 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode ; Line 8925 mov esp, ebp pop ebp ret 4 ?DoInit@Hellion@@AAEXH@Z ENDP ; Hellion::DoInit _TEXT ENDS PUBLIC __real@4@4007bb80000000000000 PUBLIC __real@4@4007c000000000000000 PUBLIC __real@4@400a9c40000000000000 PUBLIC __real@4@4007b880000000000000 PUBLIC __real@4@40099c40000000000000 PUBLIC __real@4@4007c300000000000000 PUBLIC __real@4@4007c800000000000000 PUBLIC ?DoFrame@Hellion@@AAEXH@Z ; Hellion::DoFrame _DATA SEGMENT $SG9200 DB 'Mode is %d', 0aH, 00H _DATA ENDS ; COMDAT __real@4@4007bb80000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4007bb80000000000000 DD 043bb8000r ; 375 CONST ENDS ; COMDAT __real@4@4007c000000000000000 CONST SEGMENT __real@4@4007c000000000000000 DD 043c00000r ; 384 CONST ENDS ; COMDAT __real@4@400a9c40000000000000 CONST SEGMENT __real@4@400a9c40000000000000 DD 0451c4000r ; 2500 CONST ENDS ; COMDAT __real@4@4007b880000000000000 CONST SEGMENT __real@4@4007b880000000000000 DD 043b88000r ; 369 CONST ENDS ; COMDAT __real@4@40099c40000000000000 CONST SEGMENT __real@4@40099c40000000000000 DD 0449c4000r ; 1250 CONST ENDS ; COMDAT __real@4@4007c300000000000000 CONST SEGMENT __real@4@4007c300000000000000 DD 043c30000r ; 390 CONST ENDS ; COMDAT __real@4@4007c800000000000000 CONST SEGMENT __real@4@4007c800000000000000 DD 043c80000r ; 400 CONST ENDS _TEXT SEGMENT _flags$9219 = -32 _flags$9225 = -36 _flags$9231 = -40 _offset$9236 = -44 _me$ = 8 _this$ = -48 _flags$ = -4 _frame$ = -16 _shields$ = -12 _anim_type$ = -8 _f_ok_to_animate$ = -20 _flags$9207 = -24 _awareness$9208 = -28 ?DoFrame@Hellion@@AAEXH@Z PROC NEAR ; Hellion::DoFrame ; File aigame.cpp ; Line 8928 push ebp mov ebp, esp sub esp, 52 ; 00000034H push esi mov DWORD PTR _this$[ebp], ecx ; Line 8934 lea eax, DWORD PTR _anim_type$[ebp] push eax push 15 ; 0000000fH push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8936 movsx edx, BYTE PTR _anim_type$[ebp] cmp edx, 27 ; 0000001bH je SHORT $L11498 movsx eax, BYTE PTR _anim_type$[ebp] cmp eax, 6 je SHORT $L11498 movsx ecx, BYTE PTR _anim_type$[ebp] cmp ecx, 8 je SHORT $L11498 mov DWORD PTR -52+[ebp], 1 jmp SHORT $L11499 $L11498: mov DWORD PTR -52+[ebp], 0 $L11499: mov dl, BYTE PTR -52+[ebp] mov BYTE PTR _f_ok_to_animate$[ebp], dl ; Line 8938 push 0 lea eax, DWORD PTR _flags$[ebp] push eax push 10 ; 0000000aH push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8939 push 0 lea edx, DWORD PTR _frame$[ebp] push edx push 18 ; 00000012H push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8940 push 0 lea ecx, DWORD PTR _shields$[ebp] push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 8942 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+4] push edx push OFFSET FLAT:$SG9200 push 0 call DWORD PTR ?mprintf@@3P6AXHPADZZA ; mprintf add esp, 12 ; 0000000cH ; Line 8944 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+4] cmp edx, 7 je SHORT $L9202 mov eax, DWORD PTR _flags$[ebp] and eax, 8388608 ; 00800000H test eax, eax je SHORT $L9202 ; Line 8946 mov ecx, DWORD PTR _f_ok_to_animate$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L9202 ; Line 8948 push 7 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode $L9202: ; Line 8952 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+4] test edx, edx jne SHORT $L9203 ; Line 8955 jmp $L9234 $L9203: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+4] cmp edx, 1 jne SHORT $L9205 ; Line 8957 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+8] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 1 je SHORT $L9206 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+8] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 1 jne SHORT $L9206 ; Line 8959 mov DWORD PTR _flags$9207[ebp], 536871936 ; 20000400H ; Line 8960 lea eax, DWORD PTR _flags$9207[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 8962 mov DWORD PTR _awareness$9208[ebp], 1120403456 ; 42c80000H ; Line 8963 lea edx, DWORD PTR _awareness$9208[ebp] push edx push 50 ; 00000032H push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9206: ; Line 8966 jmp $L9234 $L9205: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] cmp eax, 8 jne SHORT $L9210 ; Line 8968 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@00000000000000000000 fnstsw ax test ah, 1 jne SHORT $L9211 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9211 ; Line 8970 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx+5] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode $L9211: ; Line 8973 jmp $L9234 $L9210: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+4] cmp ecx, 7 jne SHORT $L9213 ; Line 8975 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+8] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 1 je SHORT $L9214 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+8] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 1 jne SHORT $L9214 ; Line 8977 push 1065353216 ; 3f800000H push 1232348160 ; 49742400H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Burning@@3P6AXHMM@ZA ; Obj_Burning add esp, 12 ; 0000000cH $L9214: ; Line 8980 cmp DWORD PTR _frame$[ebp], 1143111680 ; 44228000H jne SHORT $L9215 ; Line 8982 push 0 push 0 push 68320 ; 00010ae0H push 1148846080 ; 447a0000H push -1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Kill@@3P6AXHHMHMM@ZA ; Obj_Kill add esp, 24 ; 00000018H $L9215: ; Line 8985 jmp $L9234 $L9213: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] cmp eax, 2 jne SHORT $L9217 ; Line 8987 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4007bb80000000000000 fnstsw ax test ah, 1 jne SHORT $L9218 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4007c000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9218 ; Line 8989 mov DWORD PTR _flags$9219[ebp], 8388608 ; 00800000H ; Line 8990 lea ecx, DWORD PTR _flags$9219[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9218: ; Line 8993 fld DWORD PTR _shields$[ebp] fcomp DWORD PTR __real@4@400a9c40000000000000 fnstsw ax test ah, 1 je SHORT $L9221 ; Line 8995 mov eax, DWORD PTR _f_ok_to_animate$[ebp] and eax, 255 ; 000000ffH test eax, eax je SHORT $L9221 ; Line 8997 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode $L9221: ; Line 9001 jmp $L9234 $L9217: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax+4] cmp ecx, 4 jne SHORT $L9223 ; Line 9003 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4007b400000000000000 fnstsw ax test ah, 1 jne SHORT $L9224 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4007b880000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9224 ; Line 9005 mov DWORD PTR _flags$9225[ebp], 8388608 ; 00800000H ; Line 9006 lea edx, DWORD PTR _flags$9225[ebp] push edx push 51 ; 00000033H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9224: ; Line 9009 fld DWORD PTR _shields$[ebp] fcomp DWORD PTR __real@4@40099c40000000000000 fnstsw ax test ah, 1 je SHORT $L9227 ; Line 9011 mov ecx, DWORD PTR _f_ok_to_animate$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L9227 ; Line 9013 push 3 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode $L9227: ; Line 9017 jmp $L9234 $L9223: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx+4] cmp edx, 3 jne SHORT $L9229 ; Line 9019 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4007c300000000000000 fnstsw ax test ah, 1 jne SHORT $L9230 fld DWORD PTR _frame$[ebp] fcomp DWORD PTR __real@4@4007c800000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9230 ; Line 9021 mov DWORD PTR _flags$9231[ebp], 8388608 ; 00800000H ; Line 9022 lea eax, DWORD PTR _flags$9231[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9230: ; Line 9030 jmp $L9234 $L9229: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+8] fcomp DWORD PTR __real@4@4003a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9234 ; Line 9032 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] cmp eax, 2 je SHORT $L9235 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] cmp eax, 3 je SHORT $L9235 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] cmp eax, 4 je SHORT $L9235 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] cmp eax, 5 jne SHORT $L9234 $L9235: ; Line 9034 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx+4] sub eax, 1 and eax, -2147483645 ; 80000003H jns SHORT $L11514 dec eax or eax, -4 ; fffffffcH inc eax $L11514: mov DWORD PTR _offset$9236[ebp], eax ; Line 9035 mov ecx, DWORD PTR _offset$9236[ebp] add ecx, 2 push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Hellion@@AAEXHD@Z ; Hellion::SetMode $L9234: ; Line 9039 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+8] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] ; Line 9040 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@Hellion@@AAEXH@Z ENDP ; Hellion::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Hellion@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Hellion::CallEvent ; Line 9043 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 9045 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9243 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11516[eax] jmp DWORD PTR $L11517[edx*4] $L9246: ; Line 9047 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Hellion@@AAEXH@Z ; Hellion::DoInit ; Line 9048 jmp SHORT $L9243 $L9247: ; Line 9050 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Hellion@@AAEXH@Z ; Hellion::DoFrame ; Line 9051 jmp SHORT $L9243 $L9248: ; Line 9053 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Hellion@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Hellion::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9241 $L9249: ; Line 9057 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9243: ; Line 9061 mov ax, 257 ; 00000101H $L9241: ; Line 9062 mov esp, ebp pop ebp ret 8 $L11517: DD $L9247 DD $L9248 DD $L9246 DD $L9249 DD $L9243 $L11516: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Hellion@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Hellion::CallEvent _TEXT ENDS PUBLIC ?SendCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::SendCommand _TEXT SEGMENT _me$ = 8 _it$ = 12 _command$ = 16 _ptr$ = 20 _this$ = -40 _com$ = -8 _ei$ = -36 ?SendCommand@MantaRay@@AAE_NHHDPAX@Z PROC NEAR ; MantaRay::SendCommand ; Line 9069 push ebp mov ebp, esp sub esp, 40 ; 00000028H mov DWORD PTR _this$[ebp], ecx ; Line 9072 mov al, BYTE PTR _command$[ebp] mov BYTE PTR _com$[ebp], al ; Line 9073 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR _com$[ebp+4], ecx ; Line 9077 mov edx, DWORD PTR _it$[ebp] mov DWORD PTR _ei$[ebp+20], edx ; Line 9078 lea eax, DWORD PTR _command$[ebp] mov DWORD PTR _ei$[ebp+24], eax ; Line 9079 mov DWORD PTR _ei$[ebp], 16 ; 00000010H ; Line 9080 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _ei$[ebp+4], ecx ; Line 9082 lea edx, DWORD PTR _ei$[ebp] push edx push 272 ; 00000110H mov eax, DWORD PTR _it$[ebp] push eax call DWORD PTR ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Obj_CallEvent add esp, 12 ; 0000000cH ; Line 9083 mov esp, ebp pop ebp ret 16 ; 00000010H ?SendCommand@MantaRay@@AAE_NHHDPAX@Z ENDP ; MantaRay::SendCommand _TEXT ENDS PUBLIC ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= PUBLIC ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode PUBLIC ?ReceiveCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::ReceiveCommand _TEXT SEGMENT _me$ = 8 _it$ = 12 _command$ = 16 _ptr$ = 20 _this$ = -536 _i$9276 = -4 _goal_pos$9281 = -16 _orient$9282 = -52 $T11520 = -64 $T11521 = -76 $T11522 = -88 $T11523 = -100 $T11524 = -112 $T11525 = -124 $T11526 = -136 $T11527 = -148 $T11528 = -160 $T11529 = -172 $T11530 = -184 $T11531 = -196 $T11532 = -208 $T11533 = -220 $T11534 = -232 $T11535 = -244 $T11536 = -256 $T11537 = -268 $T11538 = -280 $T11539 = -292 $T11540 = -304 $T11541 = -316 $T11542 = -328 $T11543 = -340 $T11544 = -352 $T11545 = -364 $T11546 = -376 $T11547 = -388 $T11548 = -400 $T11549 = -412 $T11550 = -424 $T11551 = -436 $T11552 = -448 $T11553 = -460 $T11554 = -472 $T11555 = -484 $T11556 = -496 $T11557 = -508 $T11558 = -520 $T11559 = -532 ?ReceiveCommand@MantaRay@@AAE_NHHDPAX@Z PROC NEAR ; MantaRay::ReceiveCommand ; Line 9086 push ebp mov ebp, esp sub esp, 544 ; 00000220H mov DWORD PTR _this$[ebp], ecx ; Line 9088 movsx eax, BYTE PTR _command$[ebp] mov DWORD PTR -540+[ebp], eax mov ecx, DWORD PTR -540+[ebp] sub ecx, 11 ; 0000000bH mov DWORD PTR -540+[ebp], ecx cmp DWORD PTR -540+[ebp], 4 ja $L9269 mov edx, DWORD PTR -540+[ebp] jmp DWORD PTR $L11560[edx*4] $L9272: ; Line 9091 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+20], 0 jne SHORT $L9273 ; Line 9093 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _it$[ebp] mov DWORD PTR [eax+28], ecx ; Line 9094 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+20] or ecx, 2 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+20], ecx ; Line 9096 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode ; Line 9098 mov al, 1 jmp $L9267 $L9273: ; Line 9101 jmp $L9269 $L9275: ; Line 9107 mov DWORD PTR _i$9276[ebp], 0 jmp SHORT $L9277 $L9278: mov edx, DWORD PTR _i$9276[ebp] add edx, 1 mov DWORD PTR _i$9276[ebp], edx $L9277: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$9276[ebp] cmp edx, DWORD PTR [ecx+32] jge $L9279 ; Line 9109 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$9276[ebp] mov eax, DWORD PTR [ecx+edx*4+36] cmp eax, DWORD PTR _it$[ebp] jne $L9280 ; Line 9113 push 0 lea ecx, DWORD PTR _goal_pos$9281[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9114 push 0 lea eax, DWORD PTR _orient$9282[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9117 mov edx, DWORD PTR _i$9276[ebp] mov DWORD PTR -544+[ebp], edx cmp DWORD PTR -544+[ebp], 3 ja $L9284 mov eax, DWORD PTR -544+[ebp] jmp DWORD PTR $L11561[eax*4] $L9287: ; Line 9119 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$9282[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$9282[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$9282[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11522[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11521[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11521[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11521[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11521[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11521[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11521[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11523[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11520[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11520[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11520[ebp+8], edx ; Line 9120 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9282[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9282[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9282[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11526[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11525[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11525[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11525[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11525[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11525[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11525[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11527[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11524[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11524[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11524[ebp+8], edx ; Line 9121 jmp $L9284 $L9292: ; Line 9123 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9282[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9282[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9282[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11530[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11529[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11529[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11529[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11529[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11529[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11529[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11531[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11528[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11528[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11528[ebp+8], edx ; Line 9124 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9282[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9282[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9282[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11534[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11533[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11533[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11533[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11533[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11533[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11533[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11535[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11532[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11532[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11532[ebp+8], edx ; Line 9125 jmp $L9284 $L9297: ; Line 9127 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9282[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9282[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9282[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11539[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11538[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11538[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11538[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11538[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11538[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11538[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11540[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11537[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11537[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11537[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11537[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11537[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11537[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11541[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11536[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11536[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11536[ebp+8], edx ; Line 9128 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9282[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9282[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9282[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11545[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11544[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11544[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11544[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11544[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11544[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11544[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11546[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11543[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11543[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11543[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11543[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11543[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11543[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11547[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11542[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11542[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11542[ebp+8], edx ; Line 9129 jmp $L9284 $L9304: ; Line 9131 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9282[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9282[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9282[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11551[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11550[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11550[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11550[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11550[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11550[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11550[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11552[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11549[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11549[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11549[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11549[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11549[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11549[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11553[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11548[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11548[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11548[ebp+8], edx ; Line 9132 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9282[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9282[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9282[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11557[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11556[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11556[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11556[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11556[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11556[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11556[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11558[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11555[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11555[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11555[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11555[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11555[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11555[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9281[ebp] push eax lea ecx, DWORD PTR $T11559[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11554[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11554[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11554[ebp+8], edx $L9284: ; Line 9136 mov eax, DWORD PTR _ptr$[ebp] mov ecx, DWORD PTR _goal_pos$9281[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _goal_pos$9281[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _goal_pos$9281[ebp+8] mov DWORD PTR [eax+8], ecx ; Line 9137 mov al, 1 jmp SHORT $L9267 $L9280: ; Line 9139 jmp $L9278 $L9279: ; Line 9141 jmp SHORT $L9269 $L9312: ; Line 9144 push 0 mov edx, DWORD PTR _ptr$[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9145 mov al, 1 jmp SHORT $L9267 $L9314: ; Line 9150 mov al, 1 jmp SHORT $L9267 $L9269: ; Line 9156 xor al, al $L9267: ; Line 9157 mov esp, ebp pop ebp ret 16 ; 00000010H $L11560: DD $L9272 DD $L9269 DD $L9275 DD $L9312 DD $L9314 $L11561: DD $L9287 DD $L9292 DD $L9297 DD $L9304 ?ReceiveCommand@MantaRay@@AAE_NHHDPAX@Z ENDP ; MantaRay::ReceiveCommand _TEXT ENDS ; COMDAT ??Z@YA?AUvector@@AAU0@U0@@Z _TEXT SEGMENT _a$ = 12 _b$ = 16 $T11563 = 8 $T11564 = -12 $T11565 = -24 ??Z@YA?AUvector@@AAU0@U0@@Z PROC NEAR ; operator-=, COMDAT ; File ../../main/lib/vecmat_external.h ; Line 151 push ebp mov ebp, esp sub esp, 24 ; 00000018H ; Line 152 sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _b$[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _b$[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _b$[ebp+8] mov DWORD PTR [eax+8], ecx sub esp, 12 ; 0000000cH mov edx, DWORD PTR _a$[ebp] mov eax, esp mov ecx, DWORD PTR [edx] mov DWORD PTR [eax], ecx mov ecx, DWORD PTR [edx+4] mov DWORD PTR [eax+4], ecx mov edx, DWORD PTR [edx+8] mov DWORD PTR [eax+8], edx lea eax, DWORD PTR $T11565[ebp] push eax call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11564[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11564[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11564[ebp+8], eax mov ecx, DWORD PTR _a$[ebp] mov edx, DWORD PTR $T11564[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11564[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11564[ebp+8] mov DWORD PTR [ecx+8], edx mov eax, DWORD PTR $T11563[ebp] mov ecx, DWORD PTR $T11564[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11564[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11564[ebp+8] mov DWORD PTR [eax+8], ecx mov eax, DWORD PTR $T11563[ebp] ; Line 153 mov esp, ebp pop ebp ret 0 ??Z@YA?AUvector@@AAU0@U0@@Z ENDP ; operator-= _TEXT ENDS PUBLIC ?UpdateSquadList@MantaRay@@AAEXH@Z ; MantaRay::UpdateSquadList _TEXT SEGMENT _this$ = -16 _i$ = -4 _type$9323 = -8 _j$9324 = -12 ?UpdateSquadList@MantaRay@@AAEXH@Z PROC NEAR ; MantaRay::UpdateSquadList ; File aigame.cpp ; Line 9160 push ebp mov ebp, esp sub esp, 16 ; 00000010H push esi mov DWORD PTR _this$[ebp], ecx ; Line 9163 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L9320 $L9321: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L9320: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR [edx+32] jge $L9322 ; Line 9168 push 0 lea ecx, DWORD PTR _type$9323[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR [eax+ecx*4+36] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9169 cmp DWORD PTR _type$9323[ebp], 255 ; 000000ffH jne SHORT $L9325 ; Line 9171 mov eax, DWORD PTR _i$[ebp] mov DWORD PTR _j$9324[ebp], eax jmp SHORT $L9326 $L9327: mov ecx, DWORD PTR _j$9324[ebp] add ecx, 1 mov DWORD PTR _j$9324[ebp], ecx $L9326: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+32] sub ecx, 1 cmp DWORD PTR _j$9324[ebp], ecx jge SHORT $L9328 ; Line 9173 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _j$9324[ebp] mov esi, DWORD PTR _j$9324[ebp] mov eax, DWORD PTR [eax+esi*4+40] mov DWORD PTR [edx+ecx*4+36], eax ; Line 9174 jmp SHORT $L9327 $L9328: ; Line 9176 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+32] sub eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+32], eax ; Line 9177 mov eax, DWORD PTR _i$[ebp] sub eax, 1 mov DWORD PTR _i$[ebp], eax $L9325: ; Line 9179 jmp $L9321 $L9322: ; Line 9180 pop esi mov esp, ebp pop ebp ret 4 ?UpdateSquadList@MantaRay@@AAEXH@Z ENDP ; MantaRay::UpdateSquadList _TEXT ENDS PUBLIC ?UpdateSquad@MantaRay@@AAEXH@Z ; MantaRay::UpdateSquad _TEXT SEGMENT _me$ = 8 _this$ = -144 _scan_objs$ = -104 _n_scan$ = -4 _room$ = -112 _pos$ = -124 _i$ = -108 _id$9345 = -128 _type$9347 = -132 _f_on_team$9349 = -136 _j$9351 = -140 ?UpdateSquad@MantaRay@@AAEXH@Z PROC NEAR ; MantaRay::UpdateSquad ; Line 9183 push ebp mov ebp, esp sub esp, 144 ; 00000090H mov DWORD PTR _this$[ebp], ecx ; Line 9184 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, 2 test edx, edx je SHORT $L9333 ; Line 9185 jmp $L9332 $L9333: ; Line 9187 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, 1 test edx, edx je SHORT $L9336 ; Line 9189 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?UpdateSquadList@MantaRay@@AAEXH@Z ; MantaRay::UpdateSquadList ; Line 9191 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx+32], 0 jne SHORT $L9335 ; Line 9192 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, -2 ; fffffffeH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+20], edx $L9335: ; Line 9194 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+32], 4 jl SHORT $L9336 ; Line 9195 jmp $L9332 $L9336: ; Line 9204 push 0 lea ecx, DWORD PTR _pos$[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9205 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9207 push 1 push 0 push 1 push 0 push 25 ; 00000019H lea edx, DWORD PTR _scan_objs$[ebp] push edx push 1128792064 ; 43480000H mov eax, DWORD PTR _room$[ebp] push eax lea ecx, DWORD PTR _pos$[ebp] push ecx call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$[ebp], eax ; Line 9209 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L9342 $L9343: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L9342: mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR _n_scan$[ebp] jge $L9344 ; Line 9212 push 0 lea ecx, DWORD PTR _id$9345[ebp] push ecx push 2 push 1 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9215 mov ecx, DWORD PTR _id$9345[ebp] and ecx, 65535 ; 0000ffffH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor edx, edx mov dx, WORD PTR [eax+24] cmp ecx, edx jne $L9357 ; Line 9218 push 0 lea eax, DWORD PTR _type$9347[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _scan_objs$[ebp+ecx*4] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9219 cmp DWORD PTR _type$9347[ebp], 2 jne $L9357 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _scan_objs$[ebp+eax*4] cmp ecx, DWORD PTR _me$[ebp] je $L9357 ; Line 9221 mov BYTE PTR _f_on_team$9349[ebp], 0 ; Line 9222 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+20] and ecx, 1 test ecx, ecx je SHORT $L9354 ; Line 9225 mov DWORD PTR _j$9351[ebp], 0 jmp SHORT $L9352 $L9353: mov edx, DWORD PTR _j$9351[ebp] add edx, 1 mov DWORD PTR _j$9351[ebp], edx $L9352: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _j$9351[ebp] cmp edx, DWORD PTR [ecx+32] jge SHORT $L9354 ; Line 9227 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _j$9351[ebp] mov edx, DWORD PTR _scan_objs$[ebp+edx*4] cmp edx, DWORD PTR [ecx+eax*4+36] jne SHORT $L9355 ; Line 9229 mov BYTE PTR _f_on_team$9349[ebp], 1 ; Line 9230 jmp SHORT $L9354 $L9355: ; Line 9232 jmp SHORT $L9353 $L9354: ; Line 9235 mov eax, DWORD PTR _f_on_team$9349[ebp] and eax, 255 ; 000000ffH test eax, eax jne SHORT $L9357 ; Line 9237 push 0 push 11 ; 0000000bH mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _scan_objs$[ebp+ecx*4] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::SendCommand and eax, 255 ; 000000ffH test eax, eax je SHORT $L9357 ; Line 9239 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+20] or al, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], eax ; Line 9240 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR [eax+32] mov eax, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+eax*4] mov DWORD PTR [ecx+edx*4+36], eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+32] add eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+32], eax $L9357: ; Line 9246 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+32], 4 jl SHORT $L9358 ; Line 9247 jmp SHORT $L9332 $L9358: ; Line 9248 jmp $L9343 $L9344: $L9332: ; Line 9249 mov esp, ebp pop ebp ret 4 ?UpdateSquad@MantaRay@@AAEXH@Z ENDP ; MantaRay::UpdateSquad _TEXT ENDS PUBLIC ?DoInit@MantaRay@@AAEXH@Z ; MantaRay::DoInit _DATA SEGMENT $SG9368 DB 'Manta Ray', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@MantaRay@@AAEXH@Z PROC NEAR ; MantaRay::DoInit ; Line 9252 push ebp mov ebp, esp sub esp, 28 ; 0000001cH mov DWORD PTR _this$[ebp], ecx ; Line 9254 mov WORD PTR _ch$[ebp+8], 4 ; Line 9255 mov DWORD PTR _ch$[ebp+12], 72 ; 00000048H ; Line 9256 mov DWORD PTR _ch$[ebp], 0 ; Line 9257 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 9259 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 9261 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9262 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR __real@4@3fffe666660000000000 fmul DWORD PTR [ecx+12] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+16] ; Line 9264 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], 0 ; Line 9265 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+28], -1 ; Line 9266 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+32], 0 ; Line 9269 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -24+[ebp] call _rand mov DWORD PTR -28+[ebp], eax fild DWORD PTR -28+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@3ffe8000000000000000 fadd DWORD PTR -24+[ebp] fadd DWORD PTR __real@4@3ffbcccccd0000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+52] ; Line 9271 push OFFSET FLAT:$SG9368 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+24], ax ; Line 9273 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode ; Line 9274 mov esp, ebp pop ebp ret 4 ?DoInit@MantaRay@@AAEXH@Z ENDP ; MantaRay::DoInit _me$ = 8 _mode$ = 12 _this$ = -64 _f_attack_flags$ = -4 _cd$9376 = -8 _pos$9383 = -28 _room$9384 = -16 _dist$9385 = -12 _dist$9387 = -36 _g_index$9390 = -32 _pos$9392 = -60 _room$9393 = -48 _dist$9395 = -44 _g_index$9396 = -40 ?SetMode@MantaRay@@AAEXHD@Z PROC NEAR ; MantaRay::SetMode ; Line 9277 push ebp mov ebp, esp sub esp, 72 ; 00000048H mov DWORD PTR _this$[ebp], ecx ; Line 9278 mov DWORD PTR _f_attack_flags$[ebp], 33554688 ; 02000100H ; Line 9279 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 9281 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+20] and eax, 2 test eax, eax je $L9375 ; Line 9284 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 56 ; 00000038H push edx push 13 ; 0000000dH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+28] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::SendCommand ; Line 9285 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 56 ; 00000038H push edx push 12 ; 0000000cH push 0 push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9286 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 68 ; 00000044H push edx push 14 ; 0000000eH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+28] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::SendCommand ; Line 9287 push 0 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 68 ; 00000044H push edx push 6 push 0 push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9289 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+68] push eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 56 ; 00000038H push edx push 4100 ; 00001004H push -1 push 1065353216 ; 3f800000H push 2 push 1048576 ; 00100000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 9290 mov DWORD PTR _cd$9376[ebp], 1036831949 ; 3dcccccdH ; Line 9291 push 0 lea ecx, DWORD PTR _cd$9376[ebp] push ecx push 26 ; 0000001aH push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9293 jmp SHORT $L9377 $L9375: ; Line 9295 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9377: ; Line 9299 mov al, BYTE PTR _mode$[ebp] mov BYTE PTR -68+[ebp], al cmp BYTE PTR -68+[ebp], 0 je SHORT $L9382 cmp BYTE PTR -68+[ebp], 1 je SHORT $L9386 cmp BYTE PTR -68+[ebp], 2 je $L9391 jmp $L9379 $L9382: ; Line 9303 mov DWORD PTR _room$9384[ebp], 0 ; Line 9304 mov DWORD PTR _dist$9385[ebp], 1097859072 ; 41700000H ; Line 9306 lea ecx, DWORD PTR _f_attack_flags$[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9307 mov eax, DWORD PTR _room$9384[ebp] push eax lea ecx, DWORD PTR _pos$9383[ebp] push ecx push 4108 ; 0000100cH push -1 push 1065353216 ; 3f800000H push 1 push 64 ; 00000040H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 9308 push 0 lea eax, DWORD PTR _dist$9385[ebp] push eax push 26 ; 0000001aH push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9310 jmp $L9379 $L9386: ; Line 9314 lea edx, DWORD PTR _f_attack_flags$[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9318 call _rand mov DWORD PTR -72+[ebp], eax fild DWORD PTR -72+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR __real@4@4004f000000000000000 fstp DWORD PTR _dist$9387[ebp] ; Line 9319 push -1 push 4245 ; 00001095H push -1 push 1065353216 ; 3f800000H push 1 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 9320 push 0 lea edx, DWORD PTR _dist$9387[ebp] push edx push 26 ; 0000001aH push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9322 mov DWORD PTR _dist$9387[ebp], 1092616192 ; 41200000H ; Line 9323 push -1 push 4117 ; 00001015H push -1 push 1065353216 ; 3f800000H push 100 ; 00000064H push 4194304 ; 00400000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal add esp, 28 ; 0000001cH call __ftol mov DWORD PTR _g_index$9390[ebp], eax ; Line 9324 push 0 lea edx, DWORD PTR _dist$9387[ebp] push edx push 26 ; 0000001aH push 0 mov al, BYTE PTR _g_index$9390[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9326 jmp $L9379 $L9391: ; Line 9331 mov DWORD PTR _room$9393[ebp], 0 ; Line 9333 lea edx, DWORD PTR _f_attack_flags$[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9335 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+20] and eax, 2 test eax, eax jne SHORT $L9394 ; Line 9337 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 16 ; 00000010H push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9394: ; Line 9340 push 0 lea ecx, DWORD PTR _pos$9392[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9341 push 0 lea eax, DWORD PTR _room$9393[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9343 mov DWORD PTR _dist$9395[ebp], 1092616192 ; 41200000H ; Line 9345 mov edx, DWORD PTR _room$9393[ebp] push edx lea eax, DWORD PTR _pos$9392[ebp] push eax push 4109 ; 0000100dH push -1 push 1065353216 ; 3f800000H push 1 push 64 ; 00000040H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 9346 push 0 lea edx, DWORD PTR _dist$9395[ebp] push edx push 26 ; 0000001aH push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9348 push -1 push 4117 ; 00001015H push -1 push 1065353216 ; 3f800000H push 100 ; 00000064H push 4194304 ; 00400000H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal add esp, 28 ; 0000001cH call __ftol mov DWORD PTR _g_index$9396[ebp], eax ; Line 9349 push 0 lea edx, DWORD PTR _dist$9395[ebp] push edx push 26 ; 0000001aH push 0 mov al, BYTE PTR _g_index$9396[ebp] push eax mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H $L9379: ; Line 9354 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR [eax], cl ; Line 9355 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+4], 0 ; Line 9356 mov esp, ebp pop ebp ret 8 ?SetMode@MantaRay@@AAEXHD@Z ENDP ; MantaRay::SetMode _TEXT ENDS PUBLIC __real@4@3ffceb851f0000000000 PUBLIC ?DoSquadieFrame@MantaRay@@AAEXH@Z ; MantaRay::DoSquadieFrame ; COMDAT __real@4@3ffceb851f0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ffceb851f0000000000 DD 03e6b851fr ; 0.23 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -44 _type$ = -24 _cd$ = -20 _my_pos$ = -16 _dist$ = -4 _catchup_speed$9407 = -32 _scaled_speed$9408 = -28 _catchup_speed$9411 = -40 _scaled_speed$9412 = -36 ?DoSquadieFrame@MantaRay@@AAEXH@Z PROC NEAR ; MantaRay::DoSquadieFrame ; File aigame.cpp ; Line 9359 push ebp mov ebp, esp sub esp, 44 ; 0000002cH mov DWORD PTR _this$[ebp], ecx ; Line 9361 push 0 lea eax, DWORD PTR _type$[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+28] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9364 cmp DWORD PTR _type$[ebp], 255 ; 000000ffH jne SHORT $L9402 ; Line 9367 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 12 ; 0000000cH push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9369 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], 0 ; Line 9370 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+28], -1 ; Line 9372 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode ; Line 9373 jmp $L9400 $L9402: ; Line 9377 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 13 ; 0000000dH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::SendCommand ; Line 9378 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 12 ; 0000000cH push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9379 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 68 ; 00000044H push ecx push 14 ; 0000000eH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::SendCommand ; Line 9380 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 68 ; 00000044H push ecx push 6 push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9382 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+68] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 4100 ; 00001004H push -1 push 1065353216 ; 3f800000H push 2 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 9383 mov DWORD PTR _cd$[ebp], 1036831949 ; 3dcccccdH ; Line 9384 push 0 lea eax, DWORD PTR _cd$[ebp] push eax push 26 ; 0000001aH push 0 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9387 push 0 lea edx, DWORD PTR _my_pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9389 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 56 ; 00000038H push edx lea eax, DWORD PTR _my_pos$[ebp] push eax call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dist$[ebp] ; Line 9391 fld DWORD PTR _dist$[ebp] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9406 ; Line 9394 lea ecx, DWORD PTR _catchup_speed$9407[ebp] push ecx push 0 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9396 fld DWORD PTR _dist$[ebp] fdiv DWORD PTR __real@4@4001a000000000000000 fmul DWORD PTR __real@4@3ffceb851f0000000000 fmul DWORD PTR _catchup_speed$9407[ebp] fstp DWORD PTR _scaled_speed$9408[ebp] ; Line 9397 fld DWORD PTR _catchup_speed$9407[ebp] fadd DWORD PTR _scaled_speed$9408[ebp] fstp DWORD PTR _catchup_speed$9407[ebp] ; Line 9399 lea edx, DWORD PTR _catchup_speed$9407[ebp] push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9401 jmp SHORT $L9410 $L9406: fld DWORD PTR _dist$[ebp] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9410 ; Line 9404 lea ecx, DWORD PTR _catchup_speed$9411[ebp] push ecx push 0 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9406 fld DWORD PTR __real@4@3ffceb851f0000000000 fmul DWORD PTR _catchup_speed$9411[ebp] fstp DWORD PTR _scaled_speed$9412[ebp] ; Line 9407 fld DWORD PTR _catchup_speed$9411[ebp] fadd DWORD PTR _scaled_speed$9412[ebp] fstp DWORD PTR _catchup_speed$9411[ebp] ; Line 9409 lea edx, DWORD PTR _catchup_speed$9411[ebp] push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9410: $L9400: ; Line 9415 mov esp, ebp pop ebp ret 4 ?DoSquadieFrame@MantaRay@@AAEXH@Z ENDP ; MantaRay::DoSquadieFrame _TEXT ENDS PUBLIC __real@4@4001b000000000000000 PUBLIC ?DoFrame@MantaRay@@AAEXH@Z ; MantaRay::DoFrame ; COMDAT __real@4@4001b000000000000000 ; File aigame.cpp CONST SEGMENT __real@4@4001b000000000000000 DD 040b00000r ; 5.5 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -8 _last_see_target_time$ = -4 ?DoFrame@MantaRay@@AAEXH@Z PROC NEAR ; MantaRay::DoFrame ; File aigame.cpp ; Line 9418 push ebp mov ebp, esp sub esp, 20 ; 00000014H push esi mov DWORD PTR _this$[ebp], ecx ; Line 9420 lea eax, DWORD PTR _last_see_target_time$[ebp] push eax push 25 ; 00000019H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9423 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+52] fnstsw ax test ah, 1 jne SHORT $L9418 ; Line 9426 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -12+[ebp] call _rand mov DWORD PTR -16+[ebp], eax fild DWORD PTR -16+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -12+[ebp] fadd DWORD PTR __real@4@4000c000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+52] ; Line 9427 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?UpdateSquad@MantaRay@@AAEXH@Z ; MantaRay::UpdateSquad $L9418: ; Line 9431 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, 2 test edx, edx je SHORT $L9421 ; Line 9433 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?DoSquadieFrame@MantaRay@@AAEXH@Z ; MantaRay::DoSquadieFrame $L9421: ; Line 9451 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx] mov BYTE PTR -20+[ebp], al cmp BYTE PTR -20+[ebp], 0 je $L9431 cmp BYTE PTR -20+[ebp], 1 je SHORT $L9426 cmp BYTE PTR -20+[ebp], 2 je SHORT $L9428 jmp $L9423 $L9426: ; Line 9455 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 1 je SHORT $L9427 ; Line 9456 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode $L9427: ; Line 9461 jmp SHORT $L9423 $L9428: ; Line 9466 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 1 je SHORT $L9429 ; Line 9467 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode $L9429: ; Line 9469 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+4] fcomp DWORD PTR __real@4@4001b000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9430 ; Line 9470 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode $L9430: ; Line 9472 jmp SHORT $L9423 $L9431: ; Line 9477 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9432 ; Line 9478 push 1 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode $L9432: $L9423: ; Line 9483 mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+4] ; Line 9484 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@MantaRay@@AAEXH@Z ENDP ; MantaRay::DoFrame _TEXT ENDS PUBLIC ?DoNotify@MantaRay@@AAE_NHPAUtOSIRISEventInfo@@@Z ; MantaRay::DoNotify _TEXT SEGMENT _me$ = 8 _data$ = 12 _this$ = -8 _com$9449 = -4 ?DoNotify@MantaRay@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; MantaRay::DoNotify ; Line 9487 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 9488 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax] push ecx call ?IsGoalFinishedNotify@@YA_NH@Z ; IsGoalFinishedNotify add esp, 4 and eax, 255 ; 000000ffH test eax, eax je SHORT $L9438 ; Line 9491 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR [eax] mov BYTE PTR -12+[ebp], cl cmp BYTE PTR -12+[ebp], 1 je SHORT $L9443 cmp BYTE PTR -12+[ebp], 2 je SHORT $L9445 jmp SHORT $L9440 $L9443: ; Line 9493 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx+8], 1 jne SHORT $L9444 ; Line 9495 push 2 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode ; Line 9496 xor al, al jmp SHORT $L9437 $L9444: ; Line 9498 jmp SHORT $L9440 $L9445: ; Line 9500 mov ecx, DWORD PTR _data$[ebp] cmp DWORD PTR [ecx+8], 1 jne SHORT $L9446 ; Line 9502 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@MantaRay@@AAEXHD@Z ; MantaRay::SetMode ; Line 9503 xor al, al jmp SHORT $L9437 $L9446: $L9440: ; Line 9508 jmp SHORT $L9448 $L9438: mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax], 16 ; 00000010H jne SHORT $L9448 ; Line 9510 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+24] mov DWORD PTR _com$9449[ebp], edx ; Line 9512 mov eax, DWORD PTR _com$9449[ebp] mov ecx, DWORD PTR [eax+4] push ecx mov edx, DWORD PTR _com$9449[ebp] mov al, BYTE PTR [edx] push eax mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?ReceiveCommand@MantaRay@@AAE_NHHDPAX@Z ; MantaRay::ReceiveCommand jmp SHORT $L9437 $L9448: ; Line 9515 mov al, 1 $L9437: ; Line 9516 mov esp, ebp pop ebp ret 8 ?DoNotify@MantaRay@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; MantaRay::DoNotify _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@MantaRay@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; MantaRay::CallEvent ; Line 9519 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 9521 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9457 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11578[eax] jmp DWORD PTR $L11579[edx*4] $L9460: ; Line 9523 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@MantaRay@@AAEXH@Z ; MantaRay::DoInit ; Line 9524 jmp SHORT $L9457 $L9461: ; Line 9526 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@MantaRay@@AAEXH@Z ; MantaRay::DoFrame ; Line 9527 jmp SHORT $L9457 $L9462: ; Line 9529 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@MantaRay@@AAE_NHPAUtOSIRISEventInfo@@@Z ; MantaRay::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9455 $L9463: ; Line 9533 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9457: ; Line 9537 mov ax, 257 ; 00000101H $L9455: ; Line 9538 mov esp, ebp pop ebp ret 8 $L11579: DD $L9461 DD $L9462 DD $L9460 DD $L9463 DD $L9457 $L11578: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@MantaRay@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; MantaRay::CallEvent _TEXT ENDS PUBLIC ?SendCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::SendCommand _TEXT SEGMENT _me$ = 8 _it$ = 12 _command$ = 16 _ptr$ = 20 _this$ = -40 _com$ = -8 _ei$ = -36 ?SendCommand@Skiff@@AAE_NHHDPAX@Z PROC NEAR ; Skiff::SendCommand ; Line 9545 push ebp mov ebp, esp sub esp, 40 ; 00000028H mov DWORD PTR _this$[ebp], ecx ; Line 9548 mov al, BYTE PTR _command$[ebp] mov BYTE PTR _com$[ebp], al ; Line 9549 mov ecx, DWORD PTR _ptr$[ebp] mov DWORD PTR _com$[ebp+4], ecx ; Line 9553 mov edx, DWORD PTR _it$[ebp] mov DWORD PTR _ei$[ebp+20], edx ; Line 9554 lea eax, DWORD PTR _command$[ebp] mov DWORD PTR _ei$[ebp+24], eax ; Line 9555 mov DWORD PTR _ei$[ebp], 16 ; 00000010H ; Line 9556 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _ei$[ebp+4], ecx ; Line 9558 lea edx, DWORD PTR _ei$[ebp] push edx push 272 ; 00000110H mov eax, DWORD PTR _it$[ebp] push eax call DWORD PTR ?Obj_CallEvent@@3P6A_NHHPAUtOSIRISEventInfo@@@ZA ; Obj_CallEvent add esp, 12 ; 0000000cH ; Line 9559 mov esp, ebp pop ebp ret 16 ; 00000010H ?SendCommand@Skiff@@AAE_NHHDPAX@Z ENDP ; Skiff::SendCommand _TEXT ENDS PUBLIC ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode PUBLIC ?ReceiveCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::ReceiveCommand _TEXT SEGMENT _me$ = 8 _it$ = 12 _command$ = 16 _ptr$ = 20 _this$ = -536 _i$9490 = -4 _goal_pos$9495 = -16 _orient$9496 = -52 $T11582 = -64 $T11583 = -76 $T11584 = -88 $T11585 = -100 $T11586 = -112 $T11587 = -124 $T11588 = -136 $T11589 = -148 $T11590 = -160 $T11591 = -172 $T11592 = -184 $T11593 = -196 $T11594 = -208 $T11595 = -220 $T11596 = -232 $T11597 = -244 $T11598 = -256 $T11599 = -268 $T11600 = -280 $T11601 = -292 $T11602 = -304 $T11603 = -316 $T11604 = -328 $T11605 = -340 $T11606 = -352 $T11607 = -364 $T11608 = -376 $T11609 = -388 $T11610 = -400 $T11611 = -412 $T11612 = -424 $T11613 = -436 $T11614 = -448 $T11615 = -460 $T11616 = -472 $T11617 = -484 $T11618 = -496 $T11619 = -508 $T11620 = -520 $T11621 = -532 ?ReceiveCommand@Skiff@@AAE_NHHDPAX@Z PROC NEAR ; Skiff::ReceiveCommand ; Line 9562 push ebp mov ebp, esp sub esp, 544 ; 00000220H mov DWORD PTR _this$[ebp], ecx ; Line 9564 movsx eax, BYTE PTR _command$[ebp] mov DWORD PTR -540+[ebp], eax mov ecx, DWORD PTR -540+[ebp] sub ecx, 11 ; 0000000bH mov DWORD PTR -540+[ebp], ecx cmp DWORD PTR -540+[ebp], 4 ja $L9483 mov edx, DWORD PTR -540+[ebp] jmp DWORD PTR $L11622[edx*4] $L9486: ; Line 9567 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+20], 0 jne SHORT $L9487 ; Line 9569 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _it$[ebp] mov DWORD PTR [eax+28], ecx ; Line 9570 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+20] or ecx, 2 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+20], ecx ; Line 9572 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov al, BYTE PTR [edx] push eax mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode ; Line 9574 mov al, 1 jmp $L9481 $L9487: ; Line 9577 jmp $L9483 $L9489: ; Line 9583 mov DWORD PTR _i$9490[ebp], 0 jmp SHORT $L9491 $L9492: mov edx, DWORD PTR _i$9490[ebp] add edx, 1 mov DWORD PTR _i$9490[ebp], edx $L9491: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$9490[ebp] cmp edx, DWORD PTR [ecx+32] jge $L9493 ; Line 9585 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$9490[ebp] mov eax, DWORD PTR [ecx+edx*4+36] cmp eax, DWORD PTR _it$[ebp] jne $L9494 ; Line 9589 push 0 lea ecx, DWORD PTR _goal_pos$9495[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9590 push 0 lea eax, DWORD PTR _orient$9496[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9593 mov edx, DWORD PTR _i$9490[ebp] mov DWORD PTR -544+[ebp], edx cmp DWORD PTR -544+[ebp], 3 ja $L9498 mov eax, DWORD PTR -544+[ebp] jmp DWORD PTR $L11623[eax*4] $L9501: ; Line 9595 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$9496[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$9496[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$9496[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11584[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11583[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11583[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11583[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11583[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11583[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11583[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11585[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11582[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11582[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11582[ebp+8], edx ; Line 9596 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9496[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9496[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9496[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11588[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11587[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11587[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11587[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11587[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11587[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11587[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11589[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11586[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11586[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11586[ebp+8], edx ; Line 9597 jmp $L9498 $L9506: ; Line 9599 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9496[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9496[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9496[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11592[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11591[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11591[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11591[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11591[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11591[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11591[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11593[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11590[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11590[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11590[ebp+8], edx ; Line 9600 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9496[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9496[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9496[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11596[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11595[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11595[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11595[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11595[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11595[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11595[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11597[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11594[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11594[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11594[ebp+8], edx ; Line 9601 jmp $L9498 $L9511: ; Line 9603 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9496[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9496[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9496[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11601[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11600[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11600[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11600[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11600[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11600[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11600[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11602[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11599[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11599[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11599[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11599[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11599[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11599[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11603[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11598[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11598[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11598[ebp+8], edx ; Line 9604 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9496[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9496[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9496[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11607[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11606[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11606[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11606[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11606[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11606[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11606[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11608[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11605[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11605[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11605[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11605[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11605[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11605[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11609[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11604[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11604[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11604[ebp+8], edx ; Line 9605 jmp $L9498 $L9518: ; Line 9607 push 1092616192 ; 41200000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9496[ebp+24] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9496[ebp+28] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9496[ebp+32] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11613[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11612[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11612[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11612[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11612[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11612[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11612[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11614[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11611[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11611[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11611[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11611[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11611[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11611[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11615[ebp] push ecx call ??Z@YA?AUvector@@AAU0@U0@@Z ; operator-= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11610[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11610[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11610[ebp+8], edx ; Line 9608 push 1101004800 ; 41a00000H sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$9496[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$9496[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$9496[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11619[ebp] push edx call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11618[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11618[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11618[ebp+8], eax push 1073741824 ; 40000000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11618[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11618[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11618[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11620[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11617[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11617[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11617[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11617[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11617[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11617[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _goal_pos$9495[ebp] push eax lea ecx, DWORD PTR $T11621[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11616[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11616[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11616[ebp+8], edx $L9498: ; Line 9612 mov eax, DWORD PTR _ptr$[ebp] mov ecx, DWORD PTR _goal_pos$9495[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _goal_pos$9495[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _goal_pos$9495[ebp+8] mov DWORD PTR [eax+8], ecx ; Line 9613 mov al, 1 jmp SHORT $L9481 $L9494: ; Line 9615 jmp $L9492 $L9493: ; Line 9617 jmp SHORT $L9483 $L9526: ; Line 9620 push 0 mov edx, DWORD PTR _ptr$[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9621 mov al, 1 jmp SHORT $L9481 $L9528: ; Line 9626 mov al, 1 jmp SHORT $L9481 $L9483: ; Line 9632 xor al, al $L9481: ; Line 9633 mov esp, ebp pop ebp ret 16 ; 00000010H $L11622: DD $L9486 DD $L9483 DD $L9489 DD $L9526 DD $L9528 $L11623: DD $L9501 DD $L9506 DD $L9511 DD $L9518 ?ReceiveCommand@Skiff@@AAE_NHHDPAX@Z ENDP ; Skiff::ReceiveCommand _TEXT ENDS PUBLIC ?UpdateSquadList@Skiff@@AAEXH@Z ; Skiff::UpdateSquadList _TEXT SEGMENT _this$ = -16 _i$ = -4 _type$9537 = -8 _j$9538 = -12 ?UpdateSquadList@Skiff@@AAEXH@Z PROC NEAR ; Skiff::UpdateSquadList ; Line 9636 push ebp mov ebp, esp sub esp, 16 ; 00000010H push esi mov DWORD PTR _this$[ebp], ecx ; Line 9639 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L9534 $L9535: mov eax, DWORD PTR _i$[ebp] add eax, 1 mov DWORD PTR _i$[ebp], eax $L9534: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR [edx+32] jge $L9536 ; Line 9644 push 0 lea ecx, DWORD PTR _type$9537[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR [eax+ecx*4+36] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9645 cmp DWORD PTR _type$9537[ebp], 255 ; 000000ffH jne SHORT $L9539 ; Line 9647 mov eax, DWORD PTR _i$[ebp] mov DWORD PTR _j$9538[ebp], eax jmp SHORT $L9540 $L9541: mov ecx, DWORD PTR _j$9538[ebp] add ecx, 1 mov DWORD PTR _j$9538[ebp], ecx $L9540: mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+32] sub ecx, 1 cmp DWORD PTR _j$9538[ebp], ecx jge SHORT $L9542 ; Line 9649 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov ecx, DWORD PTR _j$9538[ebp] mov esi, DWORD PTR _j$9538[ebp] mov eax, DWORD PTR [eax+esi*4+40] mov DWORD PTR [edx+ecx*4+36], eax ; Line 9650 jmp SHORT $L9541 $L9542: ; Line 9652 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+32] sub eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+32], eax ; Line 9653 mov eax, DWORD PTR _i$[ebp] sub eax, 1 mov DWORD PTR _i$[ebp], eax $L9539: ; Line 9655 jmp $L9535 $L9536: ; Line 9656 pop esi mov esp, ebp pop ebp ret 4 ?UpdateSquadList@Skiff@@AAEXH@Z ENDP ; Skiff::UpdateSquadList _TEXT ENDS PUBLIC ?UpdateSquad@Skiff@@AAEXH@Z ; Skiff::UpdateSquad _TEXT SEGMENT _me$ = 8 _this$ = -144 _scan_objs$ = -104 _n_scan$ = -4 _room$ = -112 _pos$ = -124 _i$ = -108 _id$9559 = -128 _type$9561 = -132 _f_on_team$9563 = -136 _j$9565 = -140 ?UpdateSquad@Skiff@@AAEXH@Z PROC NEAR ; Skiff::UpdateSquad ; Line 9659 push ebp mov ebp, esp sub esp, 144 ; 00000090H mov DWORD PTR _this$[ebp], ecx ; Line 9660 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, 2 test edx, edx je SHORT $L9547 ; Line 9661 jmp $L9546 $L9547: ; Line 9663 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, 1 test edx, edx je SHORT $L9550 ; Line 9665 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?UpdateSquadList@Skiff@@AAEXH@Z ; Skiff::UpdateSquadList ; Line 9667 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] cmp DWORD PTR [edx+32], 0 jne SHORT $L9549 ; Line 9668 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, -2 ; fffffffeH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+20], edx $L9549: ; Line 9670 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] cmp DWORD PTR [eax+32], 4 jl SHORT $L9550 ; Line 9671 jmp $L9546 $L9550: ; Line 9680 push 0 lea ecx, DWORD PTR _pos$[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9681 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9683 push 1 push 0 push 1 push 0 push 25 ; 00000019H lea edx, DWORD PTR _scan_objs$[ebp] push edx push 1128792064 ; 43480000H mov eax, DWORD PTR _room$[ebp] push eax lea ecx, DWORD PTR _pos$[ebp] push ecx call DWORD PTR ?AI_GetNearbyObjs@@3P6AHPAUvector@@HMPAHH_N222@ZA ; AI_GetNearbyObjs add esp, 36 ; 00000024H mov DWORD PTR _n_scan$[ebp], eax ; Line 9685 mov DWORD PTR _i$[ebp], 0 jmp SHORT $L9556 $L9557: mov edx, DWORD PTR _i$[ebp] add edx, 1 mov DWORD PTR _i$[ebp], edx $L9556: mov eax, DWORD PTR _i$[ebp] cmp eax, DWORD PTR _n_scan$[ebp] jge $L9558 ; Line 9688 push 0 lea ecx, DWORD PTR _id$9559[ebp] push ecx push 2 push 1 mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+edx*4] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9691 mov ecx, DWORD PTR _id$9559[ebp] and ecx, 65535 ; 0000ffffH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] xor edx, edx mov dx, WORD PTR [eax+24] cmp ecx, edx jne $L9571 ; Line 9694 push 0 lea eax, DWORD PTR _type$9561[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _scan_objs$[ebp+ecx*4] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9695 cmp DWORD PTR _type$9561[ebp], 2 jne $L9571 mov eax, DWORD PTR _i$[ebp] mov ecx, DWORD PTR _scan_objs$[ebp+eax*4] cmp ecx, DWORD PTR _me$[ebp] je $L9571 ; Line 9697 mov BYTE PTR _f_on_team$9563[ebp], 0 ; Line 9698 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+20] and ecx, 1 test ecx, ecx je SHORT $L9568 ; Line 9701 mov DWORD PTR _j$9565[ebp], 0 jmp SHORT $L9566 $L9567: mov edx, DWORD PTR _j$9565[ebp] add edx, 1 mov DWORD PTR _j$9565[ebp], edx $L9566: mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _j$9565[ebp] cmp edx, DWORD PTR [ecx+32] jge SHORT $L9568 ; Line 9703 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _i$[ebp] mov eax, DWORD PTR _j$9565[ebp] mov edx, DWORD PTR _scan_objs$[ebp+edx*4] cmp edx, DWORD PTR [ecx+eax*4+36] jne SHORT $L9569 ; Line 9705 mov BYTE PTR _f_on_team$9563[ebp], 1 ; Line 9706 jmp SHORT $L9568 $L9569: ; Line 9708 jmp SHORT $L9567 $L9568: ; Line 9711 mov eax, DWORD PTR _f_on_team$9563[ebp] and eax, 255 ; 000000ffH test eax, eax jne SHORT $L9571 ; Line 9713 push 0 push 11 ; 0000000bH mov ecx, DWORD PTR _i$[ebp] mov edx, DWORD PTR _scan_objs$[ebp+ecx*4] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::SendCommand and eax, 255 ; 000000ffH test eax, eax je SHORT $L9571 ; Line 9715 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+20] or al, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], eax ; Line 9716 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov edx, DWORD PTR [eax+32] mov eax, DWORD PTR _i$[ebp] mov eax, DWORD PTR _scan_objs$[ebp+eax*4] mov DWORD PTR [ecx+edx*4+36], eax mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+32] add eax, 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+32], eax $L9571: ; Line 9722 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] cmp DWORD PTR [ecx+32], 4 jl SHORT $L9572 ; Line 9723 jmp SHORT $L9546 $L9572: ; Line 9724 jmp $L9557 $L9558: $L9546: ; Line 9725 mov esp, ebp pop ebp ret 4 ?UpdateSquad@Skiff@@AAEXH@Z ENDP ; Skiff::UpdateSquad _TEXT ENDS PUBLIC __real@4@3fffcccccd0000000000 PUBLIC ?DoInit@Skiff@@AAEXH@Z ; Skiff::DoInit _DATA SEGMENT ORG $+2 $SG9582 DB 'Skiff', 00H _DATA ENDS ; COMDAT __real@4@3fffcccccd0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3fffcccccd0000000000 DD 03fcccccdr ; 1.6 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@Skiff@@AAEXH@Z PROC NEAR ; Skiff::DoInit ; File aigame.cpp ; Line 9728 push ebp mov ebp, esp sub esp, 28 ; 0000001cH mov DWORD PTR _this$[ebp], ecx ; Line 9730 mov WORD PTR _ch$[ebp+8], 4 ; Line 9731 mov DWORD PTR _ch$[ebp+12], 72 ; 00000048H ; Line 9732 mov DWORD PTR _ch$[ebp], 0 ; Line 9733 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 9735 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 9737 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9738 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR __real@4@3fffcccccd0000000000 fmul DWORD PTR [ecx+12] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+16] ; Line 9740 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], 0 ; Line 9741 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+28], -1 ; Line 9742 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+32], 0 ; Line 9745 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -24+[ebp] call _rand mov DWORD PTR -28+[ebp], eax fild DWORD PTR -28+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@3ffe8000000000000000 fadd DWORD PTR -24+[ebp] fadd DWORD PTR __real@4@3ffbcccccd0000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+52] ; Line 9747 push OFFSET FLAT:$SG9582 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+24], ax ; Line 9749 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode ; Line 9750 mov esp, ebp pop ebp ret 4 ?DoInit@Skiff@@AAEXH@Z ENDP ; Skiff::DoInit _me$ = 8 _mode$ = 12 _this$ = -60 _f_attack_flags$ = -4 _pos$9594 = -24 _room$9595 = -12 _dist$9596 = -8 _dist$9598 = -32 _g_index$9601 = -28 _pos$9603 = -56 _room$9604 = -44 _dist$9605 = -40 _g_index$9606 = -36 ?SetMode@Skiff@@AAEXHD@Z PROC NEAR ; Skiff::SetMode ; Line 9753 push ebp mov ebp, esp sub esp, 68 ; 00000044H mov DWORD PTR _this$[ebp], ecx ; Line 9754 mov DWORD PTR _f_attack_flags$[ebp], 33554688 ; 02000100H ; Line 9755 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 9757 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 12 ; 0000000cH push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9760 mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR -64+[ebp], cl cmp BYTE PTR -64+[ebp], 0 je SHORT $L9593 cmp BYTE PTR -64+[ebp], 1 je SHORT $L9597 cmp BYTE PTR -64+[ebp], 2 je $L9602 jmp $L9590 $L9593: ; Line 9764 mov DWORD PTR _room$9595[ebp], 0 ; Line 9765 mov DWORD PTR _dist$9596[ebp], 1097859072 ; 41700000H ; Line 9767 lea edx, DWORD PTR _f_attack_flags$[ebp] push edx push 51 ; 00000033H push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9768 mov ecx, DWORD PTR _room$9595[ebp] push ecx lea edx, DWORD PTR _pos$9594[ebp] push edx push 4108 ; 0000100cH push -1 push 1065353216 ; 3f800000H push 1 push 64 ; 00000040H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 9769 push 0 lea ecx, DWORD PTR _dist$9596[ebp] push ecx push 26 ; 0000001aH push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9771 jmp $L9590 $L9597: ; Line 9775 lea eax, DWORD PTR _f_attack_flags$[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9779 call _rand mov DWORD PTR -68+[ebp], eax fild DWORD PTR -68+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4002a000000000000000 fadd DWORD PTR __real@4@4004f000000000000000 fstp DWORD PTR _dist$9598[ebp] ; Line 9780 push -1 push 4245 ; 00001095H push -1 push 1065353216 ; 3f800000H push 1 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 9781 push 0 lea eax, DWORD PTR _dist$9598[ebp] push eax push 26 ; 0000001aH push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9783 mov DWORD PTR _dist$9598[ebp], 1092616192 ; 41200000H ; Line 9784 push -1 push 4117 ; 00001015H push -1 push 1065353216 ; 3f800000H push 100 ; 00000064H push 4194304 ; 00400000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal add esp, 28 ; 0000001cH call __ftol mov DWORD PTR _g_index$9601[ebp], eax ; Line 9785 push 0 lea eax, DWORD PTR _dist$9598[ebp] push eax push 26 ; 0000001aH push 0 mov cl, BYTE PTR _g_index$9601[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9787 jmp $L9590 $L9602: ; Line 9792 mov DWORD PTR _room$9604[ebp], 0 ; Line 9794 lea eax, DWORD PTR _f_attack_flags$[ebp] push eax push 51 ; 00000033H push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9796 push 0 lea edx, DWORD PTR _pos$9603[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9797 push 0 lea ecx, DWORD PTR _room$9604[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9799 mov DWORD PTR _dist$9605[ebp], 1092616192 ; 41200000H ; Line 9801 mov eax, DWORD PTR _room$9604[ebp] push eax lea ecx, DWORD PTR _pos$9603[ebp] push ecx push 4109 ; 0000100dH push -1 push 1065353216 ; 3f800000H push 1 push 64 ; 00000040H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 9802 push 0 lea eax, DWORD PTR _dist$9605[ebp] push eax push 26 ; 0000001aH push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9804 push -1 push 4117 ; 00001015H push -1 push 1065353216 ; 3f800000H push 100 ; 00000064H push 4194304 ; 00400000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal add esp, 28 ; 0000001cH call __ftol mov DWORD PTR _g_index$9606[ebp], eax ; Line 9805 push 0 lea eax, DWORD PTR _dist$9605[ebp] push eax push 26 ; 0000001aH push 0 mov cl, BYTE PTR _g_index$9606[ebp] push ecx mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9807 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 16 ; 00000010H push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9590: ; Line 9812 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+20] and edx, 2 test edx, edx je $L9607 ; Line 9815 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 13 ; 0000000dH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::SendCommand ; Line 9816 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 12 ; 0000000cH push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9817 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 68 ; 00000044H push ecx push 14 ; 0000000eH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::SendCommand ; Line 9818 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 68 ; 00000044H push ecx push 6 push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9821 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+68] push edx mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 4101 ; 00001005H push -1 push 1082130432 ; 40800000H push 2 push 1048576 ; 00100000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H $L9607: ; Line 9824 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR _mode$[ebp] mov BYTE PTR [ecx], dl ; Line 9825 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 9826 mov esp, ebp pop ebp ret 8 ?SetMode@Skiff@@AAEXHD@Z ENDP ; Skiff::SetMode _TEXT ENDS PUBLIC __real@4@3ffcb851ec0000000000 PUBLIC __real@4@3ffacccccd0000000000 PUBLIC ?DoSquadieFrame@Skiff@@AAEXH@Z ; Skiff::DoSquadieFrame ; COMDAT __real@4@3ffcb851ec0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ffcb851ec0000000000 DD 03e3851ecr ; 0.18 CONST ENDS ; COMDAT __real@4@3ffacccccd0000000000 CONST SEGMENT __real@4@3ffacccccd0000000000 DD 03d4ccccdr ; 0.05 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -36 _type$ = -20 _my_pos$ = -16 _dist$ = -4 _scaled_speed$9618 = -28 _speed$9619 = -24 _catchup_speed$9622 = -32 ?DoSquadieFrame@Skiff@@AAEXH@Z PROC NEAR ; Skiff::DoSquadieFrame ; File aigame.cpp ; Line 9829 push ebp mov ebp, esp sub esp, 48 ; 00000030H mov DWORD PTR _this$[ebp], ecx ; Line 9831 push 0 lea eax, DWORD PTR _type$[ebp] push eax push 1 push 1 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+28] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9834 cmp DWORD PTR _type$[ebp], 255 ; 000000ffH jne SHORT $L9613 ; Line 9836 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+20] and eax, 4 test eax, eax je SHORT $L9614 ; Line 9838 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 12 ; 0000000cH push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9614: ; Line 9841 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+20], 0 ; Line 9842 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+28], -1 ; Line 9844 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode ; Line 9845 jmp $L9611 $L9613: ; Line 9849 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 13 ; 0000000dH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::SendCommand ; Line 9850 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 56 ; 00000038H push ecx push 12 ; 0000000cH push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9851 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 68 ; 00000044H push ecx push 14 ; 0000000eH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SendCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::SendCommand ; Line 9852 push 0 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 68 ; 00000044H push ecx push 6 push 0 push 2 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 9855 push 0 lea eax, DWORD PTR _my_pos$[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 9857 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] add eax, 56 ; 00000038H push eax lea ecx, DWORD PTR _my_pos$[ebp] push ecx call ?vm_VectorDistance@@YAMPBUvector@@0@Z ; vm_VectorDistance add esp, 8 fstp DWORD PTR _dist$[ebp] ; Line 9859 fld DWORD PTR _dist$[ebp] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9617 ; Line 9861 fld DWORD PTR _dist$[ebp] fdiv DWORD PTR __real@4@4001a000000000000000 fmul DWORD PTR __real@4@3ffcb851ec0000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fmul DWORD PTR [eax+12] fstp DWORD PTR _scaled_speed$9618[ebp] ; Line 9864 lea ecx, DWORD PTR _speed$9619[ebp] push ecx push 0 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9866 fld DWORD PTR _speed$9619[ebp] fadd DWORD PTR _scaled_speed$9618[ebp] fstp DWORD PTR _speed$9619[ebp] ; Line 9868 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+20] and ecx, -5 ; fffffffbH mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+20], ecx ; Line 9869 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 12 ; 0000000cH push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9871 jmp $L9621 $L9617: mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR [edx+20] and eax, 4 test eax, eax jne $L9621 fld DWORD PTR _dist$[ebp] fcomp DWORD PTR __real@4@4001a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9621 ; Line 9875 lea ecx, DWORD PTR _catchup_speed$9622[ebp] push ecx push 0 push 1 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+28] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9876 fld DWORD PTR _catchup_speed$9622[ebp] fmul DWORD PTR __real@4@3ffcb851ec0000000000 fstp DWORD PTR -40+[ebp] fld DWORD PTR _catchup_speed$9622[ebp] fmul DWORD PTR __real@4@3ffacccccd0000000000 fstp DWORD PTR -44+[ebp] call _rand mov DWORD PTR -48+[ebp], eax fild DWORD PTR -48+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR -44+[ebp] fadd DWORD PTR -40+[ebp] fadd DWORD PTR _catchup_speed$9622[ebp] fstp DWORD PTR _catchup_speed$9622[ebp] ; Line 9878 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+20] or ecx, 4 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+20], ecx ; Line 9879 lea ecx, DWORD PTR _catchup_speed$9622[ebp] push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9621: $L9611: ; Line 9885 mov esp, ebp pop ebp ret 4 ?DoSquadieFrame@Skiff@@AAEXH@Z ENDP ; Skiff::DoSquadieFrame _TEXT ENDS PUBLIC ?DoFrame@Skiff@@AAEXH@Z ; Skiff::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -8 _last_see_target_time$ = -4 ?DoFrame@Skiff@@AAEXH@Z PROC NEAR ; Skiff::DoFrame ; Line 9888 push ebp mov ebp, esp sub esp, 20 ; 00000014H push esi mov DWORD PTR _this$[ebp], ecx ; Line 9890 lea eax, DWORD PTR _last_see_target_time$[ebp] push eax push 25 ; 00000019H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 9893 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR [esi+52] fnstsw ax test ah, 1 jne SHORT $L9630 ; Line 9896 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fstp DWORD PTR -12+[ebp] call _rand mov DWORD PTR -16+[ebp], eax fild DWORD PTR -16+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul DWORD PTR __real@4@4000c000000000000000 fadd DWORD PTR -12+[ebp] fadd DWORD PTR __real@4@4000c000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+52] $L9630: ; Line 9901 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov ecx, DWORD PTR [eax+20] and ecx, 2 test ecx, ecx je SHORT $L9633 ; Line 9903 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoSquadieFrame@Skiff@@AAEXH@Z ; Skiff::DoSquadieFrame $L9633: ; Line 9907 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx] mov BYTE PTR -20+[ebp], dl cmp BYTE PTR -20+[ebp], 0 je $L9643 cmp BYTE PTR -20+[ebp], 1 je SHORT $L9638 cmp BYTE PTR -20+[ebp], 2 je SHORT $L9640 jmp $L9635 $L9638: ; Line 9911 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 1 je SHORT $L9639 ; Line 9912 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode $L9639: ; Line 9917 jmp SHORT $L9635 $L9640: ; Line 9922 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 1 je SHORT $L9641 ; Line 9923 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode $L9641: ; Line 9925 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+4] fcomp DWORD PTR __real@4@40018000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9642 ; Line 9926 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode $L9642: ; Line 9928 jmp SHORT $L9635 $L9643: ; Line 9933 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fld DWORD PTR _last_see_target_time$[ebp] fadd DWORD PTR __real@4@4001e000000000000000 fcompp fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9644 ; Line 9934 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode $L9644: $L9635: ; Line 9939 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] ; Line 9940 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@Skiff@@AAEXH@Z ENDP ; Skiff::DoFrame _TEXT ENDS PUBLIC ?DoNotify@Skiff@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Skiff::DoNotify _TEXT SEGMENT _me$ = 8 _data$ = 12 _this$ = -8 _com$9661 = -4 ?DoNotify@Skiff@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Skiff::DoNotify ; Line 9943 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 9944 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax] push ecx call ?IsGoalFinishedNotify@@YA_NH@Z ; IsGoalFinishedNotify add esp, 4 and eax, 255 ; 000000ffH test eax, eax je SHORT $L9650 ; Line 9947 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR [eax] mov BYTE PTR -12+[ebp], cl cmp BYTE PTR -12+[ebp], 1 je SHORT $L9655 cmp BYTE PTR -12+[ebp], 2 je SHORT $L9657 jmp SHORT $L9652 $L9655: ; Line 9949 mov edx, DWORD PTR _data$[ebp] cmp DWORD PTR [edx+8], 1 jne SHORT $L9656 ; Line 9951 push 2 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode ; Line 9952 xor al, al jmp SHORT $L9649 $L9656: ; Line 9954 jmp SHORT $L9652 $L9657: ; Line 9956 mov ecx, DWORD PTR _data$[ebp] cmp DWORD PTR [ecx+8], 1 jne SHORT $L9658 ; Line 9958 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Skiff@@AAEXHD@Z ; Skiff::SetMode ; Line 9959 xor al, al jmp SHORT $L9649 $L9658: $L9652: ; Line 9964 jmp SHORT $L9660 $L9650: mov eax, DWORD PTR _data$[ebp] cmp DWORD PTR [eax], 16 ; 00000010H jne SHORT $L9660 ; Line 9966 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+24] mov DWORD PTR _com$9661[ebp], edx ; Line 9968 mov eax, DWORD PTR _com$9661[ebp] mov ecx, DWORD PTR [eax+4] push ecx mov edx, DWORD PTR _com$9661[ebp] mov al, BYTE PTR [edx] push eax mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+4] push edx mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?ReceiveCommand@Skiff@@AAE_NHHDPAX@Z ; Skiff::ReceiveCommand jmp SHORT $L9649 $L9660: ; Line 9971 mov al, 1 $L9649: ; Line 9972 mov esp, ebp pop ebp ret 8 ?DoNotify@Skiff@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; Skiff::DoNotify _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Skiff@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Skiff::CallEvent ; Line 9975 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 9977 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9669 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11638[eax] jmp DWORD PTR $L11639[edx*4] $L9672: ; Line 9979 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Skiff@@AAEXH@Z ; Skiff::DoInit ; Line 9980 jmp SHORT $L9669 $L9673: ; Line 9982 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Skiff@@AAEXH@Z ; Skiff::DoFrame ; Line 9983 jmp SHORT $L9669 $L9674: ; Line 9985 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Skiff@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Skiff::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9667 $L9675: ; Line 9989 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9669: ; Line 9993 mov ax, 257 ; 00000101H $L9667: ; Line 9994 mov esp, ebp pop ebp ret 8 $L11639: DD $L9673 DD $L9674 DD $L9672 DD $L9675 DD $L9669 $L11638: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Skiff@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Skiff::CallEvent _TEXT ENDS PUBLIC ?DoInit@SpyHunter@@AAEXH@Z ; SpyHunter::DoInit PUBLIC ?SetMode@SpyHunter@@AAEXHD@Z ; SpyHunter::SetMode _DATA SEGMENT ORG $+2 $SG9684 DB 'EMDblob', 00H $SG9685 DB 'WpnBmbTickElectricalA', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@SpyHunter@@AAEXH@Z PROC NEAR ; SpyHunter::DoInit ; Line 10001 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 10003 mov WORD PTR _ch$[ebp+8], 4 ; Line 10004 mov DWORD PTR _ch$[ebp+12], 32 ; 00000020H ; Line 10005 mov DWORD PTR _ch$[ebp], 0 ; Line 10006 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 10008 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 10009 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx+20], 1 ; Line 10010 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax+12], 0 ; Line 10011 push OFFSET FLAT:$SG9684 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov WORD PTR [edx+22], ax ; Line 10012 push OFFSET FLAT:$SG9685 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov DWORD PTR [edx+24], eax ; Line 10013 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+28] ; Line 10015 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SpyHunter@@AAEXHD@Z ; SpyHunter::SetMode ; Line 10016 mov esp, ebp pop ebp ret 4 ?DoInit@SpyHunter@@AAEXH@Z ENDP ; SpyHunter::DoInit _me$ = 8 _mode$ = 12 _this$ = -32 _f_attack_flags$ = -4 _pos$9699 = -24 _room$9700 = -12 _dist$9701 = -8 _dist$9704 = -28 ?SetMode@SpyHunter@@AAEXHD@Z PROC NEAR ; SpyHunter::SetMode ; Line 10019 push ebp mov ebp, esp sub esp, 44 ; 0000002cH mov DWORD PTR _this$[ebp], ecx ; Line 10020 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 10022 mov DWORD PTR _f_attack_flags$[ebp], 33554688 ; 02000100H ; Line 10024 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] cmp eax, 1 je SHORT $L9693 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] cmp eax, 2 jne SHORT $L9692 $L9693: ; Line 10026 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [edx] mov BYTE PTR [ecx+20], dl $L9692: ; Line 10030 mov al, BYTE PTR _mode$[ebp] mov BYTE PTR -36+[ebp], al cmp BYTE PTR -36+[ebp], 0 je SHORT $L9698 cmp BYTE PTR -36+[ebp], 1 je SHORT $L9702 cmp BYTE PTR -36+[ebp], 2 je $L9703 jmp $L9695 $L9698: ; Line 10034 mov DWORD PTR _room$9700[ebp], 0 ; Line 10035 mov DWORD PTR _dist$9701[ebp], 1084227584 ; 40a00000H ; Line 10037 lea ecx, DWORD PTR _f_attack_flags$[ebp] push ecx push 51 ; 00000033H push 3 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10040 mov eax, DWORD PTR _room$9700[ebp] push eax lea ecx, DWORD PTR _pos$9699[ebp] push ecx push 65804 ; 0001010cH push -1 push 1065353216 ; 3f800000H push 1 push 64 ; 00000040H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 10041 push 0 lea eax, DWORD PTR _dist$9701[ebp] push eax push 26 ; 0000001aH push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10043 jmp $L9695 $L9702: ; Line 10046 lea edx, DWORD PTR _f_attack_flags$[ebp] push edx push 51 ; 00000033H push 2 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10047 push 2 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 10049 jmp SHORT $L9695 $L9703: ; Line 10052 mov DWORD PTR _dist$9704[ebp], -998637568 ; c47a0000H ; Line 10054 mov edx, DWORD PTR _f_attack_flags$[ebp] or dl, -128 ; ffffff80H mov DWORD PTR _f_attack_flags$[ebp], edx ; Line 10055 lea eax, DWORD PTR _f_attack_flags$[ebp] push eax push 51 ; 00000033H push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10057 push -1 push 4372 ; 00001114H push -1 push 1065353216 ; 3f800000H push 1 push 4 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 10058 push 0 lea eax, DWORD PTR _dist$9704[ebp] push eax push 26 ; 0000001aH push 0 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H $L9695: ; Line 10063 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR [eax], cl ; Line 10064 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+16], 0 ; Line 10065 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+28] ; Line 10066 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fadd DWORD PTR __real@4@4001a000000000000000 fstp DWORD PTR -40+[ebp] call _rand mov DWORD PTR -44+[ebp], eax fild DWORD PTR -44+[ebp] fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR -40+[ebp] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+8] ; Line 10067 mov esp, ebp pop ebp ret 8 ?SetMode@SpyHunter@@AAEXHD@Z ENDP ; SpyHunter::SetMode _TEXT ENDS PUBLIC ?DoNotify@SpyHunter@@AAE_NHPAUtOSIRISEventInfo@@@Z ; SpyHunter::DoNotify _DATA SEGMENT ORG $+2 $SG9730 DB 'FragBarrel', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _data$ = 12 _this$ = -968 _notify$ = -4 _type$9714 = -8 _id$9716 = -12 _room$9725 = -16 _pos$9726 = -28 _velocity$9728 = -964 _weapon_id$9729 = -952 _mstruct$9731 = -948 ?DoNotify@SpyHunter@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; SpyHunter::DoNotify ; Line 10070 push ebp mov ebp, esp sub esp, 968 ; 000003c8H mov DWORD PTR _this$[ebp], ecx ; Line 10071 mov eax, DWORD PTR _data$[ebp] mov DWORD PTR _notify$[ebp], eax ; Line 10073 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor eax, eax mov al, BYTE PTR [edx+12] test eax, eax jne SHORT $L9717 mov ecx, DWORD PTR _notify$[ebp] cmp DWORD PTR [ecx], 14 ; 0000000eH jne SHORT $L9717 ; Line 10076 push 0 lea edx, DWORD PTR _type$9714[ebp] push edx push 1 push 1 mov eax, DWORD PTR _notify$[ebp] mov ecx, DWORD PTR [eax+4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10078 cmp DWORD PTR _type$9714[ebp], 5 jne SHORT $L9717 ; Line 10082 push 0 lea edx, DWORD PTR _id$9716[ebp] push edx push 2 push 1 mov eax, DWORD PTR _notify$[ebp] mov ecx, DWORD PTR [eax+4] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10083 mov edx, DWORD PTR _id$9716[ebp] and edx, 65535 ; 0000ffffH mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor eax, eax mov ax, WORD PTR [ecx+22] cmp edx, eax jne SHORT $L9717 ; Line 10085 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx+12], 1 $L9717: ; Line 10090 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx] test edx, edx je SHORT $L9719 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] movsx edx, BYTE PTR [ecx] cmp edx, 1 jne SHORT $L9723 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+16] fcomp DWORD PTR __real@4@4002a000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9723 $L9719: ; Line 10092 mov edx, DWORD PTR _notify$[ebp] cmp DWORD PTR [edx], 8 je SHORT $L9721 mov eax, DWORD PTR _notify$[ebp] cmp DWORD PTR [eax], 14 ; 0000000eH je SHORT $L9721 mov ecx, DWORD PTR _notify$[ebp] cmp DWORD PTR [ecx], 22 ; 00000016H jne SHORT $L9723 $L9721: ; Line 10094 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax] test ecx, ecx jne SHORT $L9722 ; Line 10096 push 1 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SpyHunter@@AAEXHD@Z ; SpyHunter::SetMode ; Line 10097 mov al, 1 jmp $L9711 $L9722: ; Line 10101 push 2 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SpyHunter@@AAEXHD@Z ; SpyHunter::SetMode ; Line 10102 mov al, 1 jmp $L9711 $L9723: ; Line 10107 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] cmp eax, 2 jne $L9724 mov ecx, DWORD PTR _notify$[ebp] cmp DWORD PTR [ecx], 22 ; 00000016H jne $L9724 ; Line 10112 push 0 lea edx, DWORD PTR _room$9725[ebp] push edx push 5 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10113 push 0 lea ecx, DWORD PTR _pos$9726[ebp] push ecx push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?Obj_GetGunPos@@3P6AXHHPAUvector@@0@ZA ; Obj_GetGunPos add esp, 16 ; 00000010H ; Line 10115 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dl, BYTE PTR [ecx+12] test edx, edx jne SHORT $L9727 ; Line 10118 push 0 lea eax, DWORD PTR _velocity$9728[ebp] push eax push 6 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10120 push OFFSET FLAT:$SG9730 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$9729[ebp], eax ; Line 10121 lea edx, DWORD PTR _velocity$9728[ebp] push edx mov eax, DWORD PTR _me$[ebp] push eax push 0 lea ecx, DWORD PTR _pos$9726[ebp] push ecx mov edx, DWORD PTR _room$9725[ebp] push edx mov ax, WORD PTR _weapon_id$9729[ebp] push eax push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH $L9727: ; Line 10126 mov ecx, DWORD PTR _me$[ebp] mov DWORD PTR _mstruct$9731[ebp+44], ecx ; Line 10127 mov DWORD PTR _mstruct$9731[ebp+100], -1 ; Line 10128 mov BYTE PTR _mstruct$9731[ebp+96], 0 ; Line 10129 mov DWORD PTR _mstruct$9731[ebp+92], 1148846080 ; 447a0000H ; Line 10131 lea edx, DWORD PTR _mstruct$9731[ebp] push edx push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 $L9724: ; Line 10134 mov al, 1 $L9711: ; Line 10135 mov esp, ebp pop ebp ret 8 ?DoNotify@SpyHunter@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; SpyHunter::DoNotify _TEXT ENDS PUBLIC __real@4@3ffaf5c28f0000000000 PUBLIC __real@4@400afa00000000000000 PUBLIC ?DoFrame@SpyHunter@@AAEXH@Z ; SpyHunter::DoFrame ; COMDAT __real@4@3ffaf5c28f0000000000 ; File aigame.cpp CONST SEGMENT __real@4@3ffaf5c28f0000000000 DD 03d75c28fr ; 0.06 CONST ENDS ; COMDAT __real@4@400afa00000000000000 CONST SEGMENT __real@4@400afa00000000000000 DD 0457a0000r ; 4000 CONST ENDS _TEXT SEGMENT _me$ = 8 _this$ = -16 _tick_interval$9743 = -4 _p_explode$9745 = -8 _max_speed$9749 = -12 ?DoFrame@SpyHunter@@AAEXH@Z PROC NEAR ; SpyHunter::DoFrame ; File aigame.cpp ; Line 10138 push ebp mov ebp, esp sub esp, 24 ; 00000018H push esi mov DWORD PTR _this$[ebp], ecx ; Line 10142 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov dl, BYTE PTR [ecx] mov BYTE PTR -20+[ebp], dl cmp BYTE PTR -20+[ebp], 2 je SHORT $L9742 jmp $L9737 $L9742: ; Line 10167 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+16] fcomp QWORD PTR __real@8@4001a000000000000000 fnstsw ax test ah, 1 je SHORT $L9744 ; Line 10169 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+16] fsubr QWORD PTR __real@8@4001a000000000000000 fdiv QWORD PTR __real@8@4001a000000000000000 fstp DWORD PTR _p_explode$9745[ebp] ; Line 10171 fld DWORD PTR __real@4@3ffe8000000000000000 fmul DWORD PTR _p_explode$9745[ebp] fld DWORD PTR __real@4@3fff8000000000000000 fsub DWORD PTR _p_explode$9745[ebp] fmul DWORD PTR __real@4@3ffaf5c28f0000000000 faddp ST(1), ST(0) fstp DWORD PTR _tick_interval$9743[ebp] ; Line 10173 jmp SHORT $L9746 $L9744: ; Line 10175 mov DWORD PTR _tick_interval$9743[ebp], 1031127695 ; 3d75c28fH $L9746: ; Line 10178 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fld DWORD PTR _tick_interval$9743[ebp] fadd DWORD PTR [edx+28] fstp DWORD PTR -24+[ebp] call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime fcomp DWORD PTR -24+[ebp] fnstsw ax test ah, 65 ; 00000041H jne SHORT $L9747 ; Line 10180 push 1065353216 ; 3f800000H mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR [ecx+24] push edx mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH ; Line 10181 call DWORD PTR ?Game_GetTime@@3P6AMXZA ; Game_GetTime mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+28] $L9747: ; Line 10184 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fld DWORD PTR [ecx+16] fcomp DWORD PTR __real@4@4002f000000000000000 fnstsw ax test ah, 1 je $L9748 ; Line 10188 lea edx, DWORD PTR _max_speed$9749[ebp] push edx push 0 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10189 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fmul DWORD PTR __real@4@40028000000000000000 fadd DWORD PTR _max_speed$9749[ebp] fstp DWORD PTR _max_speed$9749[ebp] ; Line 10190 lea ecx, DWORD PTR _max_speed$9749[ebp] push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10192 lea eax, DWORD PTR _max_speed$9749[ebp] push eax push 2 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10193 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fmul DWORD PTR __real@4@400afa00000000000000 fadd DWORD PTR _max_speed$9749[ebp] fstp DWORD PTR _max_speed$9749[ebp] ; Line 10194 lea edx, DWORD PTR _max_speed$9749[ebp] push edx push 2 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10197 lea ecx, DWORD PTR _max_speed$9749[ebp] push ecx push 1 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10198 call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fmul DWORD PTR __real@4@40028000000000000000 fadd DWORD PTR _max_speed$9749[ebp] fstp DWORD PTR _max_speed$9749[ebp] ; Line 10199 lea eax, DWORD PTR _max_speed$9749[ebp] push eax push 1 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H $L9748: $L9737: ; Line 10205 mov edx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [edx+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+16] mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+16] ; Line 10206 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@SpyHunter@@AAEXH@Z ENDP ; SpyHunter::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@SpyHunter@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; SpyHunter::CallEvent ; Line 10209 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 10211 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9756 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11649[eax] jmp DWORD PTR $L11650[edx*4] $L9759: ; Line 10213 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@SpyHunter@@AAEXH@Z ; SpyHunter::DoInit ; Line 10214 jmp SHORT $L9756 $L9760: ; Line 10216 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@SpyHunter@@AAEXH@Z ; SpyHunter::DoFrame ; Line 10217 jmp SHORT $L9756 $L9761: ; Line 10219 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@SpyHunter@@AAE_NHPAUtOSIRISEventInfo@@@Z ; SpyHunter::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9754 $L9762: ; Line 10223 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9756: ; Line 10227 mov ax, 257 ; 00000101H $L9754: ; Line 10228 mov esp, ebp pop ebp ret 8 $L11650: DD $L9760 DD $L9761 DD $L9759 DD $L9762 DD $L9756 $L11649: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@SpyHunter@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; SpyHunter::CallEvent _TEXT ENDS PUBLIC ?DoNotify@Sniper@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Sniper::DoNotify _TEXT SEGMENT _this$ = -4 ?DoNotify@Sniper@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Sniper::DoNotify ; Line 10235 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 10236 mov al, 1 ; Line 10237 mov esp, ebp pop ebp ret 8 ?DoNotify@Sniper@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; Sniper::DoNotify _TEXT ENDS PUBLIC __real@8@3ffe8000000000000000 PUBLIC ?SetMode@Sniper@@AAEXHD@Z ; Sniper::SetMode ; COMDAT __real@8@3ffe8000000000000000 ; File aigame.cpp CONST SEGMENT __real@8@3ffe8000000000000000 DQ 03fe0000000000000r ; 0.5 CONST ENDS _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -44 _pos$9779 = -20 _room$9780 = -8 _flags$9781 = -4 _timescaler$9786 = -28 _speed$9789 = -24 _delta_vel$9792 = -32 _used$9798 = -36 _flags$9800 = -40 ?SetMode@Sniper@@AAEXHD@Z PROC NEAR ; Sniper::SetMode ; File aigame.cpp ; Line 10240 push ebp mov ebp, esp sub esp, 84 ; 00000054H push esi mov DWORD PTR _this$[ebp], ecx ; Line 10242 mov al, BYTE PTR _mode$[ebp] mov BYTE PTR -48+[ebp], al cmp BYTE PTR -48+[ebp], 0 je $L9797 cmp BYTE PTR -48+[ebp], 1 je SHORT $L9778 jmp $L9775 $L9778: ; Line 10246 mov DWORD PTR _room$9780[ebp], 0 ; Line 10248 mov DWORD PTR _flags$9781[ebp], 8 ; Line 10250 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx cmp edx, 50 ; 00000032H jle SHORT $L9782 ; Line 10252 mov edx, DWORD PTR _flags$9781[ebp] or edx, 65536 ; 00010000H mov DWORD PTR _flags$9781[ebp], edx ; Line 10253 push 1 push 0 push -1073741804 ; c0000014H push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 10254 call _rand mov DWORD PTR -52+[ebp], eax fild DWORD PTR -52+[ebp] fmul DWORD PTR __real@4@40018000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] ; Line 10256 jmp $L9785 $L9782: ; Line 10258 mov DWORD PTR _timescaler$9786[ebp], 1065353216 ; 3f800000H ; Line 10260 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx cmp edx, 94 ; 0000005eH jl SHORT $L9787 ; Line 10262 mov edx, DWORD PTR _flags$9781[ebp] or edx, -2147479552 ; 80001000H mov DWORD PTR _flags$9781[ebp], edx ; Line 10263 mov DWORD PTR _timescaler$9786[ebp], 1073741824 ; 40000000H ; Line 10265 jmp SHORT $L9788 $L9787: ; Line 10267 mov eax, DWORD PTR _flags$9781[ebp] or eax, -1073741824 ; c0000000H mov DWORD PTR _flags$9781[ebp], eax $L9788: ; Line 10270 mov ecx, DWORD PTR _room$9780[ebp] push ecx lea edx, DWORD PTR _pos$9779[ebp] push edx mov eax, DWORD PTR _flags$9781[ebp] push eax push -1 push 1065353216 ; 3f800000H push 3 push 64 ; 00000040H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 10272 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+12] fstp QWORD PTR -60+[ebp] mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call _rand mov DWORD PTR -64+[ebp], eax fild DWORD PTR -64+[ebp] fmul DWORD PTR [esi+12] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul QWORD PTR __real@8@3ffe8000000000000000 fadd QWORD PTR -60+[ebp] fstp DWORD PTR _speed$9789[ebp] ; Line 10273 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+16] fstp QWORD PTR -72+[ebp] mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call _rand mov DWORD PTR -76+[ebp], eax fild DWORD PTR -76+[ebp] fmul DWORD PTR [esi+16] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul QWORD PTR __real@8@3ffe8000000000000000 fadd QWORD PTR -72+[ebp] fstp DWORD PTR _delta_vel$9792[ebp] ; Line 10275 lea edx, DWORD PTR _speed$9789[ebp] push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10276 lea ecx, DWORD PTR _delta_vel$9792[ebp] push ecx push 1 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10278 call _rand mov DWORD PTR -80+[ebp], eax fild DWORD PTR -80+[ebp] fmul DWORD PTR __real@4@40018000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+8] ; Line 10279 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR _timescaler$9786[ebp] fmul DWORD PTR [eax+8] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] $L9785: ; Line 10283 jmp $L9775 $L9797: ; Line 10287 push 0 lea eax, DWORD PTR _used$9798[ebp] push eax push 50 ; 00000032H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10289 mov edx, DWORD PTR _used$9798[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L9801 ; Line 10292 push 0 lea eax, DWORD PTR _flags$9800[ebp] push eax push 36 ; 00000024H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10294 mov edx, DWORD PTR _flags$9800[ebp] and edx, 1 test edx, edx jne SHORT $L9801 ; Line 10296 push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_ClearGoal@@3P6AXHH@ZA ; AI_ClearGoal add esp, 8 $L9801: ; Line 10300 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 12 ; 0000000cH push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10301 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 16 ; 00000010H push edx push 1 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10302 call _rand mov DWORD PTR -84+[ebp], eax fild DWORD PTR -84+[ebp] fmul DWORD PTR __real@4@4001a000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] $L9775: ; Line 10307 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 10308 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR [eax], cl ; Line 10309 pop esi mov esp, ebp pop ebp ret 8 ?SetMode@Sniper@@AAEXHD@Z ENDP ; Sniper::SetMode _TEXT ENDS PUBLIC ?DoInit@Sniper@@AAEXH@Z ; Sniper::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@Sniper@@AAEXH@Z PROC NEAR ; Sniper::DoInit ; Line 10312 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 10314 mov WORD PTR _ch$[ebp+8], 4 ; Line 10315 mov DWORD PTR _ch$[ebp+12], 20 ; 00000014H ; Line 10316 mov DWORD PTR _ch$[ebp], 0 ; Line 10317 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 10319 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 10321 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10322 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 16 ; 00000010H push ecx push 1 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10324 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sniper@@AAEXHD@Z ; Sniper::SetMode ; Line 10325 mov esp, ebp pop ebp ret 4 ?DoInit@Sniper@@AAEXH@Z ENDP ; Sniper::DoInit _TEXT ENDS PUBLIC ?DoFrame@Sniper@@AAEXH@Z ; Sniper::DoFrame _DATA SEGMENT ORG $+1 $SG9817 DB 'd3bot20', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -932 _m$ = -924 _orbot_id$ = -4 _used$9819 = -928 ?DoFrame@Sniper@@AAEXH@Z PROC NEAR ; Sniper::DoFrame ; Line 10328 push ebp mov ebp, esp sub esp, 932 ; 000003a4H push esi mov DWORD PTR _this$[ebp], ecx ; Line 10330 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 10331 lea ecx, DWORD PTR _m$[ebp] push ecx push 31 ; 0000001fH call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 10332 push OFFSET FLAT:$SG9817 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _orbot_id$[ebp], eax ; Line 10334 mov edx, DWORD PTR _m$[ebp+72] cmp edx, DWORD PTR _orbot_id$[ebp] je SHORT $L9820 ; Line 10337 push 0 lea eax, DWORD PTR _used$9819[ebp] push eax push 50 ; 00000032H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10339 mov edx, DWORD PTR _used$9819[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L9820 ; Line 10341 jmp SHORT $L9814 $L9820: ; Line 10358 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [ecx+8] fcomp DWORD PTR [eax+4] fnstsw ax test ah, 1 je SHORT $L9823 ; Line 10360 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] test eax, eax jne SHORT $L9822 ; Line 10361 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sniper@@AAEXHD@Z ; Sniper::SetMode ; Line 10362 jmp SHORT $L9823 $L9822: ; Line 10363 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@Sniper@@AAEXHD@Z ; Sniper::SetMode $L9823: ; Line 10366 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] $L9814: ; Line 10367 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@Sniper@@AAEXH@Z ENDP ; Sniper::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Sniper@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Sniper::CallEvent ; Line 10370 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 10372 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9830 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11658[eax] jmp DWORD PTR $L11659[edx*4] $L9833: ; Line 10374 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Sniper@@AAEXH@Z ; Sniper::DoInit ; Line 10375 jmp SHORT $L9830 $L9834: ; Line 10377 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@Sniper@@AAEXH@Z ; Sniper::DoFrame ; Line 10378 jmp SHORT $L9830 $L9835: ; Line 10380 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@Sniper@@AAE_NHPAUtOSIRISEventInfo@@@Z ; Sniper::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9828 $L9836: ; Line 10384 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9830: ; Line 10388 mov ax, 257 ; 00000101H $L9828: ; Line 10389 mov esp, ebp pop ebp ret 8 $L11659: DD $L9834 DD $L9835 DD $L9833 DD $L9836 DD $L9830 $L11658: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@Sniper@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Sniper::CallEvent _TEXT ENDS PUBLIC ?DoNotify@SniperNoRun@@AAE_NHPAUtOSIRISEventInfo@@@Z ; SniperNoRun::DoNotify _TEXT SEGMENT _this$ = -4 ?DoNotify@SniperNoRun@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; SniperNoRun::DoNotify ; Line 10396 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 10397 mov al, 1 ; Line 10398 mov esp, ebp pop ebp ret 8 ?DoNotify@SniperNoRun@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; SniperNoRun::DoNotify _TEXT ENDS PUBLIC ?SetMode@SniperNoRun@@AAEXHD@Z ; SniperNoRun::SetMode _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -44 _pos$9853 = -20 _room$9854 = -8 _flags$9855 = -4 _timescaler$9860 = -28 _speed$9861 = -24 _delta_vel$9864 = -32 _used$9870 = -36 _flags$9872 = -40 ?SetMode@SniperNoRun@@AAEXHD@Z PROC NEAR ; SniperNoRun::SetMode ; Line 10401 push ebp mov ebp, esp sub esp, 84 ; 00000054H push esi mov DWORD PTR _this$[ebp], ecx ; Line 10403 mov al, BYTE PTR _mode$[ebp] mov BYTE PTR -48+[ebp], al cmp BYTE PTR -48+[ebp], 0 je $L9869 cmp BYTE PTR -48+[ebp], 1 je SHORT $L9852 jmp $L9849 $L9852: ; Line 10407 mov DWORD PTR _room$9854[ebp], 0 ; Line 10409 mov DWORD PTR _flags$9855[ebp], 8 ; Line 10411 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx cmp edx, 50 ; 00000032H jle SHORT $L9856 ; Line 10413 mov edx, DWORD PTR _flags$9855[ebp] or edx, 65536 ; 00010000H mov DWORD PTR _flags$9855[ebp], edx ; Line 10414 push 1 push 0 push -1073741804 ; c0000014H push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 10415 call _rand mov DWORD PTR -52+[ebp], eax fild DWORD PTR -52+[ebp] fmul DWORD PTR __real@4@40018000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] ; Line 10417 jmp $L9859 $L9856: ; Line 10419 mov DWORD PTR _timescaler$9860[ebp], 1065353216 ; 3f800000H ; Line 10421 mov eax, DWORD PTR _flags$9855[ebp] or eax, -1073741824 ; c0000000H mov DWORD PTR _flags$9855[ebp], eax ; Line 10422 mov ecx, DWORD PTR _room$9854[ebp] push ecx lea edx, DWORD PTR _pos$9853[ebp] push edx mov eax, DWORD PTR _flags$9855[ebp] push eax push -1 push 1065353216 ; 3f800000H push 3 push 64 ; 00000040H mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 10424 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+12] fstp QWORD PTR -60+[ebp] mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call _rand mov DWORD PTR -64+[ebp], eax fild DWORD PTR -64+[ebp] fmul DWORD PTR [esi+12] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul QWORD PTR __real@8@3ffe8000000000000000 fadd QWORD PTR -60+[ebp] fstp DWORD PTR _speed$9861[ebp] ; Line 10425 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+16] fstp QWORD PTR -72+[ebp] mov ecx, DWORD PTR _this$[ebp] mov esi, DWORD PTR [ecx+4] call _rand mov DWORD PTR -76+[ebp], eax fild DWORD PTR -76+[ebp] fmul DWORD PTR [esi+16] fdiv DWORD PTR __real@4@400dfffe000000000000 fmul QWORD PTR __real@8@3ffe8000000000000000 fadd QWORD PTR -72+[ebp] fstp DWORD PTR _delta_vel$9864[ebp] ; Line 10427 lea edx, DWORD PTR _speed$9861[ebp] push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10428 lea ecx, DWORD PTR _delta_vel$9864[ebp] push ecx push 1 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10430 call _rand mov DWORD PTR -80+[ebp], eax fild DWORD PTR -80+[ebp] fadd ST(0), ST(0) fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] fstp DWORD PTR [ecx+8] ; Line 10431 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR _timescaler$9860[ebp] fmul DWORD PTR [eax+8] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] $L9859: ; Line 10435 jmp $L9849 $L9869: ; Line 10439 push 0 lea eax, DWORD PTR _used$9870[ebp] push eax push 50 ; 00000032H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10441 mov edx, DWORD PTR _used$9870[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L9873 ; Line 10444 push 0 lea eax, DWORD PTR _flags$9872[ebp] push eax push 36 ; 00000024H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10446 mov edx, DWORD PTR _flags$9872[ebp] and edx, 1 test edx, edx jne SHORT $L9873 ; Line 10448 push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_ClearGoal@@3P6AXHH@ZA ; AI_ClearGoal add esp, 8 $L9873: ; Line 10452 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 12 ; 0000000cH push edx push 0 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10453 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] add edx, 16 ; 00000010H push edx push 1 push 0 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10454 call _rand mov DWORD PTR -84+[ebp], eax fild DWORD PTR -84+[ebp] fmul DWORD PTR __real@4@4001a000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] $L9849: ; Line 10459 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 10460 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR [eax], cl ; Line 10461 pop esi mov esp, ebp pop ebp ret 8 ?SetMode@SniperNoRun@@AAEXHD@Z ENDP ; SniperNoRun::SetMode _TEXT ENDS PUBLIC ?DoInit@SniperNoRun@@AAEXH@Z ; SniperNoRun::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@SniperNoRun@@AAEXH@Z PROC NEAR ; SniperNoRun::DoInit ; Line 10464 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 10466 mov WORD PTR _ch$[ebp+8], 4 ; Line 10467 mov DWORD PTR _ch$[ebp+12], 20 ; 00000014H ; Line 10468 mov DWORD PTR _ch$[ebp], 0 ; Line 10469 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 10471 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 10473 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10474 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 16 ; 00000010H push ecx push 1 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10476 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SniperNoRun@@AAEXHD@Z ; SniperNoRun::SetMode ; Line 10477 mov esp, ebp pop ebp ret 4 ?DoInit@SniperNoRun@@AAEXH@Z ENDP ; SniperNoRun::DoInit _TEXT ENDS PUBLIC ?DoFrame@SniperNoRun@@AAEXH@Z ; SniperNoRun::DoFrame _DATA SEGMENT $SG9889 DB 'd3bot20', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -932 _m$ = -924 _orbot_id$ = -4 _used$9891 = -928 ?DoFrame@SniperNoRun@@AAEXH@Z PROC NEAR ; SniperNoRun::DoFrame ; Line 10480 push ebp mov ebp, esp sub esp, 932 ; 000003a4H push esi mov DWORD PTR _this$[ebp], ecx ; Line 10482 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _m$[ebp+44], eax ; Line 10483 lea ecx, DWORD PTR _m$[ebp] push ecx push 31 ; 0000001fH call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 10484 push OFFSET FLAT:$SG9889 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _orbot_id$[ebp], eax ; Line 10486 mov edx, DWORD PTR _m$[ebp+72] cmp edx, DWORD PTR _orbot_id$[ebp] je SHORT $L9892 ; Line 10489 push 0 lea eax, DWORD PTR _used$9891[ebp] push eax push 50 ; 00000032H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10491 mov edx, DWORD PTR _used$9891[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L9892 ; Line 10493 jmp SHORT $L9886 $L9892: ; Line 10510 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [ecx+8] fcomp DWORD PTR [eax+4] fnstsw ax test ah, 1 je SHORT $L9895 ; Line 10512 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] test eax, eax jne SHORT $L9894 ; Line 10513 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SniperNoRun@@AAEXHD@Z ; SniperNoRun::SetMode ; Line 10514 jmp SHORT $L9895 $L9894: ; Line 10515 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@SniperNoRun@@AAEXHD@Z ; SniperNoRun::SetMode $L9895: ; Line 10518 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] $L9886: ; Line 10519 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@SniperNoRun@@AAEXH@Z ENDP ; SniperNoRun::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@SniperNoRun@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; SniperNoRun::CallEvent ; Line 10522 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 10524 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9902 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11665[eax] jmp DWORD PTR $L11666[edx*4] $L9905: ; Line 10526 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@SniperNoRun@@AAEXH@Z ; SniperNoRun::DoInit ; Line 10527 jmp SHORT $L9902 $L9906: ; Line 10529 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@SniperNoRun@@AAEXH@Z ; SniperNoRun::DoFrame ; Line 10530 jmp SHORT $L9902 $L9907: ; Line 10532 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@SniperNoRun@@AAE_NHPAUtOSIRISEventInfo@@@Z ; SniperNoRun::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9900 $L9908: ; Line 10536 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9902: ; Line 10540 mov ax, 257 ; 00000101H $L9900: ; Line 10541 mov esp, ebp pop ebp ret 8 $L11666: DD $L9906 DD $L9907 DD $L9905 DD $L9908 DD $L9902 $L11665: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@SniperNoRun@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; SniperNoRun::CallEvent _TEXT ENDS PUBLIC ?DoNotify@EvaderModA@@AAE_NHPAUtOSIRISEventInfo@@@Z ; EvaderModA::DoNotify _TEXT SEGMENT _this$ = -4 ?DoNotify@EvaderModA@@AAE_NHPAUtOSIRISEventInfo@@@Z PROC NEAR ; EvaderModA::DoNotify ; Line 10551 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 10552 mov al, 1 ; Line 10553 mov esp, ebp pop ebp ret 8 ?DoNotify@EvaderModA@@AAE_NHPAUtOSIRISEventInfo@@@Z ENDP ; EvaderModA::DoNotify _TEXT ENDS PUBLIC ?SetMode@EvaderModA@@AAEXHD@Z ; EvaderModA::SetMode _TEXT SEGMENT _me$ = 8 _mode$ = 12 _this$ = -32 _vec$9926 = -8 _flags$9927 = -4 _used$9937 = -24 _flags$9939 = -28 ?SetMode@EvaderModA@@AAEXHD@Z PROC NEAR ; EvaderModA::SetMode ; Line 10556 push ebp mov ebp, esp sub esp, 48 ; 00000030H mov DWORD PTR _this$[ebp], ecx ; Line 10558 mov al, BYTE PTR _mode$[ebp] mov BYTE PTR -36+[ebp], al cmp BYTE PTR -36+[ebp], 0 je $L9936 cmp BYTE PTR -36+[ebp], 1 je SHORT $L9924 jmp $L9921 $L9924: ; Line 10564 mov DWORD PTR _flags$9927[ebp], 65544 ; 00010008H ; Line 10566 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx cmp edx, 50 ; 00000032H jle SHORT $L9928 ; Line 10568 mov DWORD PTR _vec$9926[ebp], 1 ; Line 10569 call _rand mov DWORD PTR -40+[ebp], eax fild DWORD PTR -40+[ebp] fmul DWORD PTR __real@4@4001e000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] ; Line 10571 jmp SHORT $L9931 $L9928: ; Line 10573 call _rand cdq mov ecx, 100 ; 00000064H idiv ecx cmp edx, 50 ; 00000032H jle SHORT $L9932 ; Line 10575 mov DWORD PTR _vec$9926[ebp], 3 ; Line 10577 jmp SHORT $L9933 $L9932: ; Line 10579 mov DWORD PTR _vec$9926[ebp], 2 $L9933: ; Line 10581 call _rand mov DWORD PTR -44+[ebp], eax fild DWORD PTR -44+[ebp] fmul DWORD PTR __real@4@40018000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 fadd DWORD PTR __real@4@40008000000000000000 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fstp DWORD PTR [eax+8] $L9931: ; Line 10584 mov ecx, DWORD PTR _vec$9926[ebp] push ecx push 0 push -1073741804 ; c0000014H push -1 push 1065353216 ; 3f800000H push 0 push 262144 ; 00040000H mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 32 ; 00000020H ; Line 10586 jmp $L9921 $L9936: ; Line 10589 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 0 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10590 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 16 ; 00000010H push ecx push 1 push 0 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10593 push 0 lea eax, DWORD PTR _used$9937[ebp] push eax push 50 ; 00000032H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10595 mov edx, DWORD PTR _used$9937[ebp] and edx, 255 ; 000000ffH test edx, edx je SHORT $L9940 ; Line 10598 push 0 lea eax, DWORD PTR _flags$9939[ebp] push eax push 36 ; 00000024H push 1 push 3 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10600 mov edx, DWORD PTR _flags$9939[ebp] and edx, 1 test edx, edx jne SHORT $L9940 ; Line 10602 push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_ClearGoal@@3P6AXHH@ZA ; AI_ClearGoal add esp, 8 $L9940: ; Line 10606 call _rand mov DWORD PTR -48+[ebp], eax fild DWORD PTR -48+[ebp] fmul DWORD PTR __real@4@40018000000000000000 fdiv DWORD PTR __real@4@400dfffe000000000000 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+8] $L9921: ; Line 10611 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [ecx+4], 0 ; Line 10612 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov cl, BYTE PTR _mode$[ebp] mov BYTE PTR [eax], cl ; Line 10613 mov esp, ebp pop ebp ret 8 ?SetMode@EvaderModA@@AAEXHD@Z ENDP ; EvaderModA::SetMode _TEXT ENDS PUBLIC ?DoInit@EvaderModA@@AAEXH@Z ; EvaderModA::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@EvaderModA@@AAEXH@Z PROC NEAR ; EvaderModA::DoInit ; Line 10616 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 10618 mov WORD PTR _ch$[ebp+8], 4 ; Line 10619 mov DWORD PTR _ch$[ebp+12], 20 ; 00000014H ; Line 10620 mov DWORD PTR _ch$[ebp], 0 ; Line 10621 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 10623 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 10625 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 12 ; 0000000cH push ecx push 0 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10626 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] add ecx, 16 ; 00000010H push ecx push 1 push 1 mov edx, DWORD PTR _me$[ebp] push edx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10628 push 0 mov eax, DWORD PTR _me$[ebp] push eax mov ecx, DWORD PTR _this$[ebp] call ?SetMode@EvaderModA@@AAEXHD@Z ; EvaderModA::SetMode ; Line 10629 mov esp, ebp pop ebp ret 4 ?DoInit@EvaderModA@@AAEXH@Z ENDP ; EvaderModA::DoInit _TEXT ENDS PUBLIC ?DoFrame@EvaderModA@@AAEXH@Z ; EvaderModA::DoFrame _TEXT SEGMENT _me$ = 8 _this$ = -12 _awareness$ = -8 _used$ = -4 ?DoFrame@EvaderModA@@AAEXH@Z PROC NEAR ; EvaderModA::DoFrame ; Line 10632 push ebp mov ebp, esp sub esp, 12 ; 0000000cH push esi mov DWORD PTR _this$[ebp], ecx ; Line 10634 lea eax, DWORD PTR _awareness$[ebp] push eax push 50 ; 00000032H push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_Value@@3P6AXHDDPAX@ZA ; AI_Value add esp, 16 ; 00000010H ; Line 10637 push 0 lea edx, DWORD PTR _used$[ebp] push edx push 50 ; 00000032H push 1 push 3 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_GoalValue@@3P6A_NHDDDPAXD@ZA ; AI_GoalValue add esp, 24 ; 00000018H ; Line 10639 mov ecx, DWORD PTR _used$[ebp] and ecx, 255 ; 000000ffH test ecx, ecx je SHORT $L9956 ; Line 10641 jmp $L9953 $L9956: ; Line 10644 fld DWORD PTR _awareness$[ebp] fcomp DWORD PTR __real@4@4002f000000000000000 fnstsw ax test ah, 65 ; 00000041H je SHORT $L9957 ; Line 10646 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] movsx ecx, BYTE PTR [eax] test ecx, ecx je SHORT $L9958 ; Line 10648 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@EvaderModA@@AAEXHD@Z ; EvaderModA::SetMode $L9958: ; Line 10651 jmp SHORT $L9953 $L9957: ; Line 10654 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [ecx+8] fcomp DWORD PTR [eax+4] fnstsw ax test ah, 1 je SHORT $L9961 ; Line 10656 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] movsx eax, BYTE PTR [edx] test eax, eax jne SHORT $L9960 ; Line 10657 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@EvaderModA@@AAEXHD@Z ; EvaderModA::SetMode ; Line 10658 jmp SHORT $L9961 $L9960: ; Line 10659 push 0 mov edx, DWORD PTR _me$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?SetMode@EvaderModA@@AAEXHD@Z ; EvaderModA::SetMode $L9961: ; Line 10662 mov eax, DWORD PTR _this$[ebp] mov esi, DWORD PTR [eax+4] call DWORD PTR ?Game_GetFrameTime@@3P6AMXZA ; Game_GetFrameTime fadd DWORD PTR [esi+4] mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] fstp DWORD PTR [edx+4] $L9953: ; Line 10663 pop esi mov esp, ebp pop ebp ret 4 ?DoFrame@EvaderModA@@AAEXH@Z ENDP ; EvaderModA::DoFrame _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@EvaderModA@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; EvaderModA::CallEvent ; Line 10666 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 10668 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 257 ; 00000101H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 24 ; 00000018H ja SHORT $L9968 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11672[eax] jmp DWORD PTR $L11673[edx*4] $L9971: ; Line 10670 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@EvaderModA@@AAEXH@Z ; EvaderModA::DoInit ; Line 10671 jmp SHORT $L9968 $L9972: ; Line 10673 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoFrame@EvaderModA@@AAEXH@Z ; EvaderModA::DoFrame ; Line 10674 jmp SHORT $L9968 $L9973: ; Line 10676 mov edx, DWORD PTR _data$[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoNotify@EvaderModA@@AAE_NHPAUtOSIRISEventInfo@@@Z ; EvaderModA::DoNotify and eax, 255 ; 000000ffH neg eax sbb eax, eax and eax, 257 ; 00000101H jmp SHORT $L9966 $L9974: ; Line 10680 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR [edx+4], ecx $L9968: ; Line 10684 mov ax, 257 ; 00000101H $L9966: ; Line 10685 mov esp, ebp pop ebp ret 8 $L11673: DD $L9972 DD $L9973 DD $L9971 DD $L9974 DD $L9968 $L11672: DB 0 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 1 DB 2 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 4 DB 3 ?CallEvent@EvaderModA@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; EvaderModA::CallEvent _TEXT ENDS PUBLIC ?DoInit@Seeker@@AAEXH@Z ; Seeker::DoInit PUBLIC ?GetObjectParent@@YAHH@Z ; GetObjectParent PUBLIC ?GetObjectType@@YAHH@Z ; GetObjectType _DATA SEGMENT $SG9982 DB 'HumonSeeker', 00H $SG9990 DB 'Drop bomb', 00H _DATA ENDS _TEXT SEGMENT $T11675 = -80 $T11676 = -92 $T11677 = -104 $T11678 = -116 _me$ = 8 _this$ = -120 _id$ = -20 _humon_seeker_id$ = -12 _velocity$9984 = -68 _orient$9985 = -56 _parent$ = -16 _sound_id$ = -8 _p_type$ = -4 ?DoInit@Seeker@@AAEXH@Z PROC NEAR ; Seeker::DoInit ; Line 10693 push ebp mov ebp, esp sub esp, 120 ; 00000078H mov DWORD PTR _this$[ebp], ecx ; Line 10694 push 5 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?AI_SetType@@3P6AXHH@ZA ; AI_SetType add esp, 8 ; Line 10695 push -1 push 144 ; 00000090H push -1 push 1065353216 ; 3f800000H push 1 push 4 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?AI_AddGoal@@3P6AMHHHMHHZZA ; AI_AddGoal fstp ST(0) add esp, 28 ; 0000001cH ; Line 10700 push 0 lea edx, DWORD PTR _id$[ebp] push edx push 2 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10701 push OFFSET FLAT:$SG9982 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov WORD PTR _humon_seeker_id$[ebp], ax ; Line 10703 mov ecx, DWORD PTR _humon_seeker_id$[ebp] and ecx, 65535 ; 0000ffffH mov edx, DWORD PTR _id$[ebp] and edx, 65535 ; 0000ffffH cmp ecx, edx jne $L9983 ; Line 10707 push 0 lea eax, DWORD PTR _velocity$9984[ebp] push eax push 6 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10708 push 0 lea edx, DWORD PTR _orient$9985[ebp] push edx push 4 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10710 push 1112014848 ; 42480000H sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$9985[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$9985[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$9985[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11677[ebp] push eax call ??D@YA?AUvector@@U0@M@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11676[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11676[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11676[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11676[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11676[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11676[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR _velocity$9984[ebp] push eax lea ecx, DWORD PTR $T11678[ebp] push ecx call ??Y@YA?AUvector@@AAU0@U0@@Z ; operator+= add esp, 20 ; 00000014H mov edx, DWORD PTR [eax] mov DWORD PTR $T11675[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11675[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11675[ebp+8], edx ; Line 10712 push 0 lea eax, DWORD PTR _velocity$9984[ebp] push eax push 6 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L9983: ; Line 10715 mov edx, DWORD PTR _me$[ebp] push edx call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$[ebp], eax ; Line 10716 push OFFSET FLAT:$SG9990 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _sound_id$[ebp], eax ; Line 10717 mov eax, DWORD PTR _parent$[ebp] push eax call ?GetObjectType@@YAHH@Z ; GetObjectType add esp, 4 mov DWORD PTR _p_type$[ebp], eax ; Line 10719 cmp DWORD PTR _sound_id$[ebp], 0 jl SHORT $L9992 cmp DWORD PTR _p_type$[ebp], 4 jne SHORT $L9992 ; Line 10721 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _sound_id$[ebp] push ecx mov edx, DWORD PTR _parent$[ebp] push edx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L9992: ; Line 10723 mov esp, ebp pop ebp ret 4 ?DoInit@Seeker@@AAEXH@Z ENDP ; Seeker::DoInit _TEXT ENDS PUBLIC ?DoCollide@Seeker@@AAEXH@Z ; Seeker::DoCollide _DATA SEGMENT ORG $+2 $SG10000 DB 'SeekerExplosion', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -944 _room$ = -928 _pos$ = -940 _weapon_id$ = -4 _mo$ = -924 ?DoCollide@Seeker@@AAEXH@Z PROC NEAR ; Seeker::DoCollide ; Line 10726 push ebp mov ebp, esp sub esp, 944 ; 000003b0H mov DWORD PTR _this$[ebp], ecx ; Line 10731 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10732 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10734 push OFFSET FLAT:$SG10000 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$[ebp], eax ; Line 10735 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx push 0 lea edx, DWORD PTR _pos$[ebp] push edx mov eax, DWORD PTR _room$[ebp] push eax mov cx, WORD PTR _weapon_id$[ebp] push ecx push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH ; Line 10738 mov edx, DWORD PTR _me$[ebp] mov DWORD PTR _mo$[ebp+44], edx ; Line 10739 mov BYTE PTR _mo$[ebp+108], 0 ; Line 10741 lea eax, DWORD PTR _mo$[ebp] push eax push 37 ; 00000025H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 10742 mov esp, ebp pop ebp ret 4 ?DoCollide@Seeker@@AAEXH@Z ENDP ; Seeker::DoCollide _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@Seeker@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Seeker::CallEvent ; Line 10745 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 10747 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 259 ; 00000103H je SHORT $L10012 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L10011 jmp SHORT $L10008 $L10011: ; Line 10749 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@Seeker@@AAEXH@Z ; Seeker::DoInit ; Line 10750 jmp SHORT $L10008 $L10012: ; Line 10752 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@Seeker@@AAEXH@Z ; Seeker::DoCollide $L10008: ; Line 10755 mov ax, 257 ; 00000101H ; Line 10756 mov esp, ebp pop ebp ret 8 ?CallEvent@Seeker@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Seeker::CallEvent _object$ = 8 _ms$ = -920 ?GetObjectParent@@YAHH@Z PROC NEAR ; GetObjectParent ; Line 10760 push ebp mov ebp, esp sub esp, 920 ; 00000398H ; Line 10762 mov eax, DWORD PTR _object$[ebp] mov DWORD PTR _ms$[ebp+44], eax ; Line 10764 lea ecx, DWORD PTR _ms$[ebp] push ecx push 52 ; 00000034H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 10766 mov eax, DWORD PTR _ms$[ebp+44] ; Line 10767 mov esp, ebp pop ebp ret 0 ?GetObjectParent@@YAHH@Z ENDP ; GetObjectParent _object$ = 8 _ms$ = -920 ?GetObjectType@@YAHH@Z PROC NEAR ; GetObjectType ; Line 10770 push ebp mov ebp, esp sub esp, 920 ; 00000398H ; Line 10772 mov eax, DWORD PTR _object$[ebp] mov DWORD PTR _ms$[ebp+44], eax ; Line 10773 lea ecx, DWORD PTR _ms$[ebp] push ecx push 30 ; 0000001eH call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 10775 mov eax, DWORD PTR _ms$[ebp+68] ; Line 10776 mov esp, ebp pop ebp ret 0 ?GetObjectType@@YAHH@Z ENDP ; GetObjectType _TEXT ENDS PUBLIC ?ObjectDamage@@YAXHMH@Z ; ObjectDamage _TEXT SEGMENT _object$ = 8 _amount$ = 12 _killer$ = 16 _mstruct$ = -920 ?ObjectDamage@@YAXHMH@Z PROC NEAR ; ObjectDamage ; Line 10780 push ebp mov ebp, esp sub esp, 920 ; 00000398H ; Line 10783 mov eax, DWORD PTR _object$[ebp] mov DWORD PTR _mstruct$[ebp+44], eax ; Line 10784 mov ecx, DWORD PTR _killer$[ebp] mov DWORD PTR _mstruct$[ebp+100], ecx ; Line 10785 mov BYTE PTR _mstruct$[ebp+96], 0 ; Line 10786 mov edx, DWORD PTR _amount$[ebp] mov DWORD PTR _mstruct$[ebp+92], edx ; Line 10788 lea eax, DWORD PTR _mstruct$[ebp] push eax push 29 ; 0000001dH call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 10789 mov esp, ebp pop ebp ret 0 ?ObjectDamage@@YAXHMH@Z ENDP ; ObjectDamage _TEXT ENDS PUBLIC ?GetObjectShields@@YAMH@Z ; GetObjectShields _TEXT SEGMENT _object$ = 8 _mstruct$ = -920 ?GetObjectShields@@YAMH@Z PROC NEAR ; GetObjectShields ; Line 10792 push ebp mov ebp, esp sub esp, 920 ; 00000398H ; Line 10795 mov eax, DWORD PTR _object$[ebp] mov DWORD PTR _mstruct$[ebp+44], eax ; Line 10796 lea ecx, DWORD PTR _mstruct$[ebp] push ecx push 20 ; 00000014H call DWORD PTR ?MSafe_GetValue@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_GetValue add esp, 8 ; Line 10798 fld DWORD PTR _mstruct$[ebp+52] ; Line 10799 mov esp, ebp pop ebp ret 0 ?GetObjectShields@@YAMH@Z ENDP ; GetObjectShields _TEXT ENDS PUBLIC ?ObjectRemove@@YAXH@Z ; ObjectRemove _TEXT SEGMENT _object$ = 8 _ms$ = -920 ?ObjectRemove@@YAXH@Z PROC NEAR ; ObjectRemove ; Line 10802 push ebp mov ebp, esp sub esp, 920 ; 00000398H ; Line 10804 mov eax, DWORD PTR _object$[ebp] mov DWORD PTR _ms$[ebp+44], eax ; Line 10805 mov BYTE PTR _ms$[ebp+108], 0 ; Line 10806 lea ecx, DWORD PTR _ms$[ebp] push ecx push 37 ; 00000025H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 10807 mov esp, ebp pop ebp ret 0 ?ObjectRemove@@YAXH@Z ENDP ; ObjectRemove _TEXT ENDS _DATA SEGMENT $SG10056 DB 'Betty', 00H ORG $+2 $SG10076 DB 'Drop bomb', 00H _DATA ENDS _TEXT SEGMENT $T11687 = -244 $T11688 = -256 $T11689 = -268 $T11690 = -280 $T11691 = -292 $T11692 = -304 $T11693 = -316 $T11694 = -328 $T11695 = -340 $T11696 = -352 $T11697 = -364 $T11698 = -376 $T11699 = -388 $T11700 = -400 $T11701 = -412 $T11702 = -424 $T11703 = -436 $T11704 = -448 $T11705 = -460 $T11706 = -472 $T11707 = -484 $T11708 = -496 $T11709 = -508 $T11710 = -520 $T11711 = -532 $T11712 = -544 $T11713 = -556 $T11714 = -568 _event$ = 8 _data$ = 12 _this$ = -572 _ch$10051 = -24 _parent$10054 = -8 _child_id$10055 = -4 _child_handle$10058 = -40 _orient$10059 = -164 _vel$10063 = -36 _pos$10064 = -192 _v$10065 = -128 _room$10067 = -168 _type$10072 = -116 _sound_id$10075 = -232 ?CallEvent@BettyBomb@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; BettyBomb::CallEvent ; Line 10814 push ebp mov ebp, esp sub esp, 576 ; 00000240H mov DWORD PTR _this$[ebp], ecx ; Line 10816 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -576+[ebp], eax cmp DWORD PTR -576+[ebp], 256 ; 00000100H je $L10088 cmp DWORD PTR -576+[ebp], 260 ; 00000104H je SHORT $L10050 cmp DWORD PTR -576+[ebp], 281 ; 00000119H je SHORT $L10048 jmp $L10045 $L10048: ; Line 10819 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [ecx+4], eax ; Line 10820 jmp $L10045 $L10050: ; Line 10826 mov WORD PTR _ch$10051[ebp+8], 4 ; Line 10827 mov DWORD PTR _ch$10051[ebp+12], 1 ; Line 10828 mov DWORD PTR _ch$10051[ebp], 0 ; Line 10829 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] mov DWORD PTR _ch$10051[ebp+4], edx ; Line 10831 lea eax, DWORD PTR _ch$10051[ebp] push eax call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov ecx, DWORD PTR _this$[ebp] mov DWORD PTR [ecx+4], eax ; Line 10833 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax], 0 ; Line 10836 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$10054[ebp], eax ; Line 10837 push OFFSET FLAT:$SG10056 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _child_id$10055[ebp], eax ; Line 10839 cmp DWORD PTR _parent$10054[ebp], -1 je $L10057 cmp DWORD PTR _child_id$10055[ebp], -1 je $L10057 ; Line 10846 push 0 lea eax, DWORD PTR _orient$10059[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _parent$10054[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10847 push 0 lea edx, DWORD PTR _vel$10063[ebp] push edx push 6 push 1 mov eax, DWORD PTR _parent$10054[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10848 push 0 lea ecx, DWORD PTR _room$10067[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _parent$10054[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10849 push 0 lea eax, DWORD PTR _pos$10064[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _parent$10054[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value ; Line 10865 add esp, 8 mov edx, esp mov eax, DWORD PTR _orient$10059[ebp+24] mov DWORD PTR [edx], eax mov ecx, DWORD PTR _orient$10059[ebp+28] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR _orient$10059[ebp+32] mov DWORD PTR [edx+8], eax lea ecx, DWORD PTR $T11690[ebp] push ecx call ??G@YA?AUvector@@U0@@Z ; operator- add esp, 16 ; 00000010H mov edx, DWORD PTR [eax] mov DWORD PTR $T11689[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11689[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11689[ebp+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$10059[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$10059[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$10059[ebp+8] mov DWORD PTR [eax+8], ecx sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR $T11689[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR $T11689[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR $T11689[ebp+8] mov DWORD PTR [edx+8], eax lea ecx, DWORD PTR $T11691[ebp] push ecx call ??H@YA?AUvector@@U0@0@Z ; operator+ add esp, 28 ; 0000001cH mov edx, DWORD PTR [eax] mov DWORD PTR $T11688[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11688[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11688[ebp+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR _orient$10059[ebp+12] mov DWORD PTR [eax], ecx mov edx, DWORD PTR _orient$10059[ebp+16] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR _orient$10059[ebp+20] mov DWORD PTR [eax+8], ecx sub esp, 12 ; 0000000cH mov edx, esp mov eax, DWORD PTR $T11688[ebp] mov DWORD PTR [edx], eax mov ecx, DWORD PTR $T11688[ebp+4] mov DWORD PTR [edx+4], ecx mov eax, DWORD PTR $T11688[ebp+8] mov DWORD PTR [edx+8], eax lea ecx, DWORD PTR $T11692[ebp] push ecx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov edx, DWORD PTR [eax] mov DWORD PTR $T11687[ebp], edx mov ecx, DWORD PTR [eax+4] mov DWORD PTR $T11687[ebp+4], ecx mov edx, DWORD PTR [eax+8] mov DWORD PTR $T11687[ebp+8], edx mov eax, DWORD PTR $T11687[ebp] mov DWORD PTR _v$10065[ebp], eax mov ecx, DWORD PTR $T11687[ebp+4] mov DWORD PTR _v$10065[ebp+4], ecx mov edx, DWORD PTR $T11687[ebp+8] mov DWORD PTR _v$10065[ebp+8], edx ; Line 10866 lea eax, DWORD PTR _v$10065[ebp] push eax call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 10867 push 1106247680 ; 41f00000H lea ecx, DWORD PTR _v$10065[ebp] push ecx lea edx, DWORD PTR $T11694[ebp] push edx call ??X@YA?AUvector@@AAU0@M@Z ; operator*= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11693[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11693[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11693[ebp+8], eax ; Line 10870 mov ecx, DWORD PTR _parent$10054[ebp] push ecx call ?GetObjectType@@YAHH@Z ; GetObjectType add esp, 4 mov DWORD PTR _type$10072[ebp], eax ; Line 10872 cmp DWORD PTR _type$10072[ebp], 4 je SHORT $L10074 cmp DWORD PTR _type$10072[ebp], 12 ; 0000000cH jne SHORT $L10077 $L10074: ; Line 10873 push OFFSET FLAT:$SG10076 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _sound_id$10075[ebp], eax ; Line 10875 cmp DWORD PTR _sound_id$10075[ebp], 0 jl SHORT $L10077 ; Line 10877 push 1065353216 ; 3f800000H mov edx, DWORD PTR _sound_id$10075[ebp] push edx mov eax, DWORD PTR _parent$10054[ebp] push eax call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L10077: ; Line 10882 lea ecx, DWORD PTR _v$10065[ebp] push ecx mov edx, DWORD PTR _parent$10054[ebp] push edx lea eax, DWORD PTR _orient$10059[ebp] push eax lea ecx, DWORD PTR _pos$10064[ebp] push ecx mov edx, DWORD PTR _room$10067[ebp] push edx mov ax, WORD PTR _child_id$10055[ebp] push eax push 2 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _child_handle$10058[ebp], eax ; Line 10885 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$10059[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$10059[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$10059[ebp+8] mov DWORD PTR [ecx+8], edx push 1050253722 ; 3e99999aH lea eax, DWORD PTR $T11698[ebp] push eax call ??D@YA?AUvector@@MU0@@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11697[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11697[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11697[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$10059[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$10059[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$10059[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11700[ebp] push eax call ??G@YA?AUvector@@U0@@Z ; operator- add esp, 16 ; 00000010H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11699[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11699[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11699[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11697[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11697[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11697[ebp+8] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR $T11699[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11699[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11699[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11701[ebp] push edx call ??H@YA?AUvector@@U0@0@Z ; operator+ add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11696[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11696[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11696[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$10059[ebp+12] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$10059[ebp+16] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$10059[ebp+20] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR $T11696[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11696[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11696[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11702[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11695[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11695[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11695[ebp+8], eax mov ecx, DWORD PTR $T11695[ebp] mov DWORD PTR _v$10065[ebp], ecx mov edx, DWORD PTR $T11695[ebp+4] mov DWORD PTR _v$10065[ebp+4], edx mov eax, DWORD PTR $T11695[ebp+8] mov DWORD PTR _v$10065[ebp+8], eax ; Line 10886 lea ecx, DWORD PTR _v$10065[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 10887 push 1106247680 ; 41f00000H lea edx, DWORD PTR _v$10065[ebp] push edx lea eax, DWORD PTR $T11704[ebp] push eax call ??X@YA?AUvector@@AAU0@M@Z ; operator*= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11703[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11703[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11703[ebp+8], eax ; Line 10888 lea ecx, DWORD PTR _v$10065[ebp] push ecx mov edx, DWORD PTR _parent$10054[ebp] push edx lea eax, DWORD PTR _orient$10059[ebp] push eax lea ecx, DWORD PTR _pos$10064[ebp] push ecx mov edx, DWORD PTR _room$10067[ebp] push edx mov ax, WORD PTR _child_id$10055[ebp] push eax push 2 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _child_handle$10058[ebp], eax ; Line 10891 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$10059[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$10059[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$10059[ebp+8] mov DWORD PTR [ecx+8], edx push 1050253722 ; 3e99999aH lea eax, DWORD PTR $T11708[ebp] push eax call ??D@YA?AUvector@@MU0@@Z ; operator* add esp, 20 ; 00000014H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11707[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11707[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11707[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$10059[ebp+24] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$10059[ebp+28] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$10059[ebp+32] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11710[ebp] push eax call ??G@YA?AUvector@@U0@@Z ; operator- add esp, 16 ; 00000010H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11709[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11709[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11709[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR $T11707[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR $T11707[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR $T11707[ebp+8] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR $T11709[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11709[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11709[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11711[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11706[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11706[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11706[ebp+8], eax sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _orient$10059[ebp+12] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _orient$10059[ebp+16] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _orient$10059[ebp+20] mov DWORD PTR [ecx+8], edx sub esp, 12 ; 0000000cH mov eax, esp mov ecx, DWORD PTR $T11706[ebp] mov DWORD PTR [eax], ecx mov edx, DWORD PTR $T11706[ebp+4] mov DWORD PTR [eax+4], edx mov ecx, DWORD PTR $T11706[ebp+8] mov DWORD PTR [eax+8], ecx lea edx, DWORD PTR $T11712[ebp] push edx call ??G@YA?AUvector@@U0@0@Z ; operator- add esp, 28 ; 0000001cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11705[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11705[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11705[ebp+8], eax mov ecx, DWORD PTR $T11705[ebp] mov DWORD PTR _v$10065[ebp], ecx mov edx, DWORD PTR $T11705[ebp+4] mov DWORD PTR _v$10065[ebp+4], edx mov eax, DWORD PTR $T11705[ebp+8] mov DWORD PTR _v$10065[ebp+8], eax ; Line 10892 lea ecx, DWORD PTR _v$10065[ebp] push ecx call ?vm_VectorNormalize@@YAMPAUvector@@@Z ; vm_VectorNormalize fstp ST(0) add esp, 4 ; Line 10893 push 1106247680 ; 41f00000H lea edx, DWORD PTR _v$10065[ebp] push edx lea eax, DWORD PTR $T11714[ebp] push eax call ??X@YA?AUvector@@AAU0@M@Z ; operator*= add esp, 12 ; 0000000cH mov ecx, DWORD PTR [eax] mov DWORD PTR $T11713[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11713[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11713[ebp+8], eax ; Line 10894 lea ecx, DWORD PTR _v$10065[ebp] push ecx mov edx, DWORD PTR _parent$10054[ebp] push edx lea eax, DWORD PTR _orient$10059[ebp] push eax lea ecx, DWORD PTR _pos$10064[ebp] push ecx mov edx, DWORD PTR _room$10067[ebp] push edx mov ax, WORD PTR _child_id$10055[ebp] push eax push 2 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _child_handle$10058[ebp], eax $L10057: ; Line 10897 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx], 1 ; Line 10899 jmp SHORT $L10045 $L10088: ; Line 10902 mov eax, DWORD PTR _this$[ebp] cmp DWORD PTR [eax+4], 0 je SHORT $L10089 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor eax, eax mov al, BYTE PTR [edx] test eax, eax je SHORT $L10089 ; Line 10904 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call ?ObjectRemove@@YAXH@Z ; ObjectRemove add esp, 4 $L10089: $L10045: ; Line 10909 mov ax, 257 ; 00000101H ; Line 10910 mov esp, ebp pop ebp ret 8 ?CallEvent@BettyBomb@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; BettyBomb::CallEvent _TEXT ENDS PUBLIC ?DoInit@BettyScript@@IAEXH@Z ; BettyScript::DoInit _TEXT SEGMENT _me$ = 8 _this$ = -20 _ch$ = -16 ?DoInit@BettyScript@@IAEXH@Z PROC NEAR ; BettyScript::DoInit ; Line 10914 push ebp mov ebp, esp sub esp, 20 ; 00000014H mov DWORD PTR _this$[ebp], ecx ; Line 10916 mov WORD PTR _ch$[ebp+8], 4 ; Line 10917 mov DWORD PTR _ch$[ebp+12], 8 ; Line 10918 mov DWORD PTR _ch$[ebp], 0 ; Line 10919 mov eax, DWORD PTR _me$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 10921 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 10923 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx], 0 ; Line 10924 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [eax+4], 0 ; Line 10925 mov esp, ebp pop ebp ret 4 ?DoInit@BettyScript@@IAEXH@Z ENDP ; BettyScript::DoInit _TEXT ENDS PUBLIC __real@8@bffe8000000000000000 PUBLIC __real@8@3ffbccccccccccccd000 PUBLIC __real@4@4005f000000000000000 _DATA SEGMENT ORG $+2 $SG10123 DB 'TubbsHitBlast', 00H _DATA ENDS ; COMDAT __real@8@bffe8000000000000000 ; File aigame.cpp CONST SEGMENT __real@8@bffe8000000000000000 DQ 0bfe0000000000000r ; -0.5 CONST ENDS ; COMDAT __real@8@3ffbccccccccccccd000 CONST SEGMENT __real@8@3ffbccccccccccccd000 DQ 03fb999999999999ar ; 0.1 CONST ENDS ; COMDAT __real@4@4005f000000000000000 CONST SEGMENT __real@4@4005f000000000000000 DD 042f00000r ; 120 CONST ENDS _TEXT SEGMENT _event$ = 8 _data$ = 12 _this$ = -148 _parent$10109 = -44 _vel$10111 = -36 _timer_info$10113 = -24 _velmag$10115 = -60 _vel$10116 = -56 _orient$10119 = -100 _room$10120 = -104 _pos$10121 = -116 _weapon_id$10122 = -64 _time$10125 = -136 _velmag$10126 = -140 _scale$10127 = -132 _vel$10128 = -128 _amount$10133 = -144 ?CallEvent@BettyScript@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; BettyScript::CallEvent ; File aigame.cpp ; Line 10928 push ebp mov ebp, esp sub esp, 152 ; 00000098H mov DWORD PTR _this$[ebp], ecx ; Line 10930 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -152+[ebp], eax mov ecx, DWORD PTR -152+[ebp] sub ecx, 256 ; 00000100H mov DWORD PTR -152+[ebp], ecx cmp DWORD PTR -152+[ebp], 25 ; 00000019H ja $L10103 mov eax, DWORD PTR -152+[ebp] xor edx, edx mov dl, BYTE PTR $L11723[eax] jmp DWORD PTR $L11724[edx*4] $L10106: ; Line 10933 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [ecx+4], eax ; Line 10934 jmp $L10103 $L10108: ; Line 10939 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@BettyScript@@IAEXH@Z ; BettyScript::DoInit ; Line 10944 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$10109[ebp], eax ; Line 10946 cmp DWORD PTR _parent$10109[ebp], -1 je SHORT $L10112 ; Line 10948 push 0 lea edx, DWORD PTR _vel$10111[ebp] push edx push 6 push 1 mov eax, DWORD PTR _parent$10109[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10949 fld DWORD PTR _vel$10111[ebp] fmul QWORD PTR __real@8@bffe8000000000000000 fstp DWORD PTR _vel$10111[ebp] ; Line 10950 fld DWORD PTR _vel$10111[ebp+4] fmul QWORD PTR __real@8@bffe8000000000000000 fstp DWORD PTR _vel$10111[ebp+4] ; Line 10951 fld DWORD PTR _vel$10111[ebp+8] fmul QWORD PTR __real@8@bffe8000000000000000 fstp DWORD PTR _vel$10111[ebp+8] ; Line 10952 push 0 lea ecx, DWORD PTR _vel$10111[ebp] push ecx push 6 push 0 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L10112: ; Line 10956 mov WORD PTR _timer_info$10113[ebp], 0 ; Line 10957 mov DWORD PTR _timer_info$10113[ebp+8], 0 ; Line 10958 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] mov DWORD PTR _timer_info$10113[ebp+12], edx ; Line 10959 mov DWORD PTR _timer_info$10113[ebp+16], -1 ; Line 10960 mov DWORD PTR _timer_info$10113[ebp+20], 1097859072 ; 41700000H ; Line 10961 mov eax, DWORD PTR ?aigame_mod_id@@3HA ; aigame_mod_id shl eax, 16 ; 00000010H or al, 26 ; 0000001aH mov DWORD PTR _timer_info$10113[ebp+4], eax ; Line 10962 lea ecx, DWORD PTR _timer_info$10113[ebp] push ecx call DWORD PTR ?Scrpt_CreateTimer@@3P6AHPAUtOSIRISTIMER@@@ZA ; Scrpt_CreateTimer add esp, 4 ; Line 10964 jmp $L10103 $L10114: ; Line 10970 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx] push eax call ?GetObjectType@@YAHH@Z ; GetObjectType add esp, 4 cmp eax, 4 jne $L10118 ; Line 10972 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor eax, eax mov al, BYTE PTR [edx] test eax, eax jne $L10118 ; Line 10974 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov BYTE PTR [edx], 1 ; Line 10977 push 0 lea eax, DWORD PTR _orient$10119[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10979 push 0 lea eax, DWORD PTR _vel$10116[ebp] push eax push 6 push 1 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10980 lea eax, DWORD PTR _vel$10116[ebp] push eax call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fst DWORD PTR _velmag$10115[ebp] ; Line 10981 fdiv DWORD PTR __real@4@40018000000000000000 fstp DWORD PTR _velmag$10115[ebp] ; Line 10988 push 0 lea ecx, DWORD PTR _room$10120[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10989 push 0 lea ecx, DWORD PTR _pos$10121[ebp] push ecx push 3 push 1 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 10991 push OFFSET FLAT:$SG10123 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$10122[ebp], eax ; Line 10992 push 0 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 push eax lea eax, DWORD PTR _orient$10119[ebp] push eax lea ecx, DWORD PTR _pos$10121[ebp] push ecx mov edx, DWORD PTR _room$10120[ebp] push edx mov ax, WORD PTR _weapon_id$10122[ebp] push eax push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH ; Line 10994 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov eax, DWORD PTR _velmag$10115[ebp] push eax mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx] push edx call ?ObjectDamage@@YAXHMH@Z ; ObjectDamage add esp, 12 ; 0000000cH $L10118: ; Line 10997 jmp $L10103 $L10124: ; Line 11003 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+4] mov DWORD PTR _time$10125[ebp], ecx ; Line 11005 fld DWORD PTR _time$10125[ebp] mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] fld DWORD PTR [eax+4] fadd QWORD PTR __real@8@3ffbccccccccccccd000 fcompp fnstsw ax test ah, 1 je $L10130 ; Line 11008 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] mov eax, DWORD PTR _time$10125[ebp] mov DWORD PTR [edx+4], eax ; Line 11009 push 0 lea ecx, DWORD PTR _vel$10128[ebp] push ecx push 6 push 1 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11010 lea ecx, DWORD PTR _vel$10128[ebp] push ecx call ?vm_GetMagnitude@@YAMPAUvector@@@Z ; vm_GetMagnitude add esp, 4 fstp DWORD PTR _velmag$10126[ebp] ; Line 11012 fld DWORD PTR _velmag$10126[ebp] fcomp DWORD PTR __real@4@4005f000000000000000 fnstsw ax test ah, 65 ; 00000041H jne SHORT $L10130 ; Line 11015 fld DWORD PTR __real@4@4005f000000000000000 fdiv DWORD PTR _velmag$10126[ebp] fst DWORD PTR _scale$10127[ebp] ; Line 11016 fmul DWORD PTR _vel$10128[ebp] fstp DWORD PTR _vel$10128[ebp] ; Line 11017 fld DWORD PTR _scale$10127[ebp] fmul DWORD PTR _vel$10128[ebp+4] fstp DWORD PTR _vel$10128[ebp+4] ; Line 11018 fld DWORD PTR _scale$10127[ebp] fmul DWORD PTR _vel$10128[ebp+8] fstp DWORD PTR _vel$10128[ebp+8] ; Line 11019 push 0 lea edx, DWORD PTR _vel$10128[ebp] push edx push 6 push 0 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L10130: ; Line 11023 mov edx, DWORD PTR _this$[ebp] cmp DWORD PTR [edx+4], 0 je SHORT $L10131 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dl, BYTE PTR [ecx] test edx, edx je SHORT $L10131 ; Line 11025 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call ?ObjectRemove@@YAXH@Z ; ObjectRemove add esp, 4 $L10131: ; Line 11027 jmp SHORT $L10103 $L10132: ; Line 11032 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call ?GetObjectShields@@YAMH@Z ; GetObjectShields add esp, 4 fadd DWORD PTR __real@4@4002a000000000000000 fstp DWORD PTR _amount$10133[ebp] ; Line 11033 push -1 mov ecx, DWORD PTR _amount$10133[ebp] push ecx mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call ?ObjectDamage@@YAXHMH@Z ; ObjectDamage add esp, 12 ; 0000000cH $L10103: ; Line 11037 mov ax, 257 ; 00000101H ; Line 11038 mov esp, ebp pop ebp ret 8 $L11724: DD $L10124 DD $L10114 DD $L10108 DD $L10132 DD $L10106 DD $L10103 $L11723: DB 0 DB 5 DB 5 DB 1 DB 2 DB 5 DB 3 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 4 ?CallEvent@BettyScript@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; BettyScript::CallEvent _TEXT ENDS PUBLIC ?DoInit@ChaffScript@@IAEXH@Z ; ChaffScript::DoInit _DATA SEGMENT ORG $+2 $SG10151 DB 'ChaffChunk', 00H ORG $+1 $SG10161 DB 'Drop bomb', 00H _DATA ENDS _TEXT SEGMENT $T11726 = -132 $T11727 = -144 _handle$ = 8 _this$ = -148 _vel$ = -12 _v$ = -32 _pos$ = -80 _count$ = -16 _chaffcount$ = -40 _chunk_id$ = -64 _room$ = -68 _parent$ = -36 _ch$ = -60 _type$ = -20 _mem$ = -56 _orient$10153 = -116 _sound_id$10160 = -120 ?DoInit@ChaffScript@@IAEXH@Z PROC NEAR ; ChaffScript::DoInit ; Line 11045 push ebp mov ebp, esp sub esp, 160 ; 000000a0H mov DWORD PTR _this$[ebp], ecx ; Line 11054 mov WORD PTR _mem$[ebp+8], 4 ; Line 11055 mov DWORD PTR _mem$[ebp+12], 1 ; Line 11056 mov DWORD PTR _mem$[ebp], 0 ; Line 11057 mov eax, DWORD PTR _handle$[ebp] mov DWORD PTR _mem$[ebp+4], eax ; Line 11059 lea ecx, DWORD PTR _mem$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 11060 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx], 0 ; Line 11062 mov edx, DWORD PTR _handle$[ebp] push edx call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$[ebp], eax ; Line 11063 push OFFSET FLAT:$SG10151 call DWORD PTR ?Obj_FindID@@3P6AHPAD@ZA ; Obj_FindID add esp, 4 mov DWORD PTR _chunk_id$[ebp], eax ; Line 11065 cmp DWORD PTR _parent$[ebp], -1 je $L10162 cmp DWORD PTR _chunk_id$[ebp], -1 je $L10162 ; Line 11068 push 0 lea eax, DWORD PTR _orient$10153[ebp] push eax push 4 push 1 mov ecx, DWORD PTR _handle$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11070 push 0 lea edx, DWORD PTR _vel$[ebp] push edx push 6 push 1 mov eax, DWORD PTR _parent$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11071 push 0 lea ecx, DWORD PTR _room$[ebp] push ecx push 5 push 1 mov edx, DWORD PTR _handle$[ebp] push edx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11072 push 0 lea eax, DWORD PTR _pos$[ebp] push eax push 3 push 1 mov ecx, DWORD PTR _handle$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11074 mov DWORD PTR _chaffcount$[ebp], 10 ; 0000000aH ; Line 11075 mov DWORD PTR _count$[ebp], 0 jmp SHORT $L10154 $L10155: mov edx, DWORD PTR _count$[ebp] add edx, 1 mov DWORD PTR _count$[ebp], edx $L10154: mov eax, DWORD PTR _count$[ebp] cmp eax, DWORD PTR _chaffcount$[ebp] jge $L10156 ; Line 11077 sub esp, 12 ; 0000000cH mov ecx, esp mov edx, DWORD PTR _vel$[ebp] mov DWORD PTR [ecx], edx mov eax, DWORD PTR _vel$[ebp+4] mov DWORD PTR [ecx+4], eax mov edx, DWORD PTR _vel$[ebp+8] mov DWORD PTR [ecx+8], edx lea eax, DWORD PTR $T11727[ebp] push eax call ??G@YA?AUvector@@U0@@Z ; operator- add esp, 16 ; 00000010H mov ecx, DWORD PTR [eax] mov DWORD PTR $T11726[ebp], ecx mov edx, DWORD PTR [eax+4] mov DWORD PTR $T11726[ebp+4], edx mov eax, DWORD PTR [eax+8] mov DWORD PTR $T11726[ebp+8], eax mov ecx, DWORD PTR $T11726[ebp] mov DWORD PTR _v$[ebp], ecx mov edx, DWORD PTR $T11726[ebp+4] mov DWORD PTR _v$[ebp+4], edx mov eax, DWORD PTR $T11726[ebp+8] mov DWORD PTR _v$[ebp+8], eax ; Line 11078 call _rand cdq mov ecx, 30 ; 0000001eH idiv ecx sub edx, 15 ; 0000000fH mov DWORD PTR -152+[ebp], edx fild DWORD PTR -152+[ebp] fadd DWORD PTR _v$[ebp] fstp DWORD PTR _v$[ebp] ; Line 11079 call _rand cdq mov ecx, 30 ; 0000001eH idiv ecx sub edx, 15 ; 0000000fH mov DWORD PTR -156+[ebp], edx fild DWORD PTR -156+[ebp] fadd DWORD PTR _v$[ebp+4] fstp DWORD PTR _v$[ebp+4] ; Line 11080 call _rand cdq mov ecx, 30 ; 0000001eH idiv ecx sub edx, 15 ; 0000000fH mov DWORD PTR -160+[ebp], edx fild DWORD PTR -160+[ebp] fadd DWORD PTR _v$[ebp+8] fstp DWORD PTR _v$[ebp+8] ; Line 11082 lea edx, DWORD PTR _v$[ebp] push edx mov eax, DWORD PTR _parent$[ebp] push eax lea ecx, DWORD PTR _orient$10153[ebp] push ecx lea edx, DWORD PTR _pos$[ebp] push edx mov eax, DWORD PTR _room$[ebp] push eax mov cx, WORD PTR _chunk_id$[ebp] push ecx push 2 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH mov DWORD PTR _ch$[ebp], eax ; Line 11083 jmp $L10155 $L10156: ; Line 11085 mov edx, DWORD PTR _parent$[ebp] push edx call ?GetObjectType@@YAHH@Z ; GetObjectType add esp, 4 mov DWORD PTR _type$[ebp], eax ; Line 11086 cmp DWORD PTR _type$[ebp], 4 je SHORT $L10159 cmp DWORD PTR _type$[ebp], 12 ; 0000000cH jne SHORT $L10162 $L10159: ; Line 11088 push OFFSET FLAT:$SG10161 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _sound_id$10160[ebp], eax ; Line 11089 cmp DWORD PTR _sound_id$10160[ebp], 0 jl SHORT $L10162 ; Line 11091 push 1065353216 ; 3f800000H mov eax, DWORD PTR _sound_id$10160[ebp] push eax mov ecx, DWORD PTR _parent$[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L10162: ; Line 11096 mov edx, DWORD PTR _this$[ebp] mov eax, DWORD PTR [edx+4] mov BYTE PTR [eax], 1 ; Line 11097 mov esp, ebp pop ebp ret 4 ?DoInit@ChaffScript@@IAEXH@Z ENDP ; ChaffScript::DoInit _TEXT ENDS PUBLIC ?DoInterval@ChaffScript@@IAEXH@Z ; ChaffScript::DoInterval _TEXT SEGMENT _handle$ = 8 _this$ = -4 ?DoInterval@ChaffScript@@IAEXH@Z PROC NEAR ; ChaffScript::DoInterval ; Line 11100 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 11101 mov eax, DWORD PTR _this$[ebp] cmp DWORD PTR [eax+4], 0 je SHORT $L10167 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor eax, eax mov al, BYTE PTR [edx] test eax, eax je SHORT $L10167 ; Line 11103 mov ecx, DWORD PTR _handle$[ebp] push ecx call ?ObjectRemove@@YAXH@Z ; ObjectRemove add esp, 4 $L10167: ; Line 11105 mov esp, ebp pop ebp ret 4 ?DoInterval@ChaffScript@@IAEXH@Z ENDP ; ChaffScript::DoInterval _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@ChaffScript@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; ChaffScript::CallEvent ; Line 11108 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 11110 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 256 ; 00000100H je SHORT $L10180 cmp DWORD PTR -8+[ebp], 260 ; 00000104H je SHORT $L10179 cmp DWORD PTR -8+[ebp], 281 ; 00000119H je SHORT $L10177 jmp SHORT $L10174 $L10177: ; Line 11113 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [ecx+4], eax ; Line 11114 jmp SHORT $L10174 $L10179: ; Line 11117 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@ChaffScript@@IAEXH@Z ; ChaffScript::DoInit ; Line 11118 jmp SHORT $L10174 $L10180: ; Line 11121 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoInterval@ChaffScript@@IAEXH@Z ; ChaffScript::DoInterval $L10174: ; Line 11124 mov ax, 257 ; 00000101H ; Line 11125 mov esp, ebp pop ebp ret 8 ?CallEvent@ChaffScript@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; ChaffScript::CallEvent _TEXT ENDS PUBLIC ?DoInit@ChaffChunkScript@@IAEXH@Z ; ChaffChunkScript::DoInit _TEXT SEGMENT _handle$ = 8 _this$ = -36 _ch$ = -32 _parent$ = -16 _vel$ = -12 ?DoInit@ChaffChunkScript@@IAEXH@Z PROC NEAR ; ChaffChunkScript::DoInit ; Line 11128 push ebp mov ebp, esp sub esp, 36 ; 00000024H mov DWORD PTR _this$[ebp], ecx ; Line 11131 mov WORD PTR _ch$[ebp+8], 4 ; Line 11132 mov DWORD PTR _ch$[ebp+12], 1 ; Line 11133 mov DWORD PTR _ch$[ebp], 0 ; Line 11134 mov eax, DWORD PTR _handle$[ebp] mov DWORD PTR _ch$[ebp+4], eax ; Line 11136 lea ecx, DWORD PTR _ch$[ebp] push ecx call DWORD PTR ?Scrpt_MemAlloc@@3P6APAXPAUtOSIRISMEMCHUNK@@@ZA ; Scrpt_MemAlloc add esp, 4 mov edx, DWORD PTR _this$[ebp] mov DWORD PTR [edx+4], eax ; Line 11137 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx], 0 ; Line 11141 mov edx, DWORD PTR _handle$[ebp] push edx call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$[ebp], eax ; Line 11143 cmp DWORD PTR _parent$[ebp], -1 je SHORT $L10190 ; Line 11145 push 0 lea eax, DWORD PTR _vel$[ebp] push eax push 6 push 1 mov ecx, DWORD PTR _parent$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11146 push 0 lea edx, DWORD PTR _vel$[ebp] push edx push 6 push 0 mov eax, DWORD PTR _handle$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H $L10190: ; Line 11148 mov esp, ebp pop ebp ret 4 ?DoInit@ChaffChunkScript@@IAEXH@Z ENDP ; ChaffChunkScript::DoInit _TEXT ENDS PUBLIC ?DoInterval@ChaffChunkScript@@IAEXH@Z ; ChaffChunkScript::DoInterval _TEXT SEGMENT _handle$ = 8 _this$ = -4 ?DoInterval@ChaffChunkScript@@IAEXH@Z PROC NEAR ; ChaffChunkScript::DoInterval ; Line 11151 push ebp mov ebp, esp push ecx mov DWORD PTR _this$[ebp], ecx ; Line 11152 mov eax, DWORD PTR _this$[ebp] cmp DWORD PTR [eax+4], 0 je SHORT $L10195 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR [ecx+4] xor eax, eax mov al, BYTE PTR [edx] test eax, eax je SHORT $L10195 ; Line 11154 mov ecx, DWORD PTR _handle$[ebp] push ecx call ?ObjectRemove@@YAXH@Z ; ObjectRemove add esp, 4 $L10195: ; Line 11156 mov esp, ebp pop ebp ret 4 ?DoInterval@ChaffChunkScript@@IAEXH@Z ENDP ; ChaffChunkScript::DoInterval _TEXT ENDS PUBLIC ?DoCollide@ChaffChunkScript@@IAEXPAUtOSIRISEventInfo@@@Z ; ChaffChunkScript::DoCollide _DATA SEGMENT ORG $+2 $SG10205 DB 'ChaffSpark', 00H _DATA ENDS _TEXT SEGMENT _data$ = 8 _this$ = -64 _weapon_id$ = -4 _orient$ = -40 _room$10203 = -48 _pos$10204 = -60 _parent$10206 = -44 ?DoCollide@ChaffChunkScript@@IAEXPAUtOSIRISEventInfo@@@Z PROC NEAR ; ChaffChunkScript::DoCollide ; Line 11159 push ebp mov ebp, esp sub esp, 64 ; 00000040H mov DWORD PTR _this$[ebp], ecx ; Line 11163 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] xor edx, edx mov dl, BYTE PTR [ecx] test edx, edx jne $L10202 ; Line 11165 mov eax, DWORD PTR _this$[ebp] mov ecx, DWORD PTR [eax+4] mov BYTE PTR [ecx], 1 ; Line 11167 push 0 lea edx, DWORD PTR _orient$[ebp] push edx push 4 push 1 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11172 push 0 lea edx, DWORD PTR _room$10203[ebp] push edx push 5 push 1 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11173 push 0 lea edx, DWORD PTR _pos$10204[ebp] push edx push 3 push 1 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11175 push OFFSET FLAT:$SG10205 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$[ebp], eax ; Line 11177 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] push eax call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$10206[ebp], eax ; Line 11179 push 0 mov ecx, DWORD PTR _parent$10206[ebp] push ecx lea edx, DWORD PTR _orient$[ebp] push edx lea eax, DWORD PTR _pos$10204[ebp] push eax mov ecx, DWORD PTR _room$10203[ebp] push ecx mov dx, WORD PTR _weapon_id$[ebp] push edx push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH $L10202: ; Line 11181 mov esp, ebp pop ebp ret 4 ?DoCollide@ChaffChunkScript@@IAEXPAUtOSIRISEventInfo@@@Z ENDP ; ChaffChunkScript::DoCollide _event$ = 8 _data$ = 12 _this$ = -4 ?CallEvent@ChaffChunkScript@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; ChaffChunkScript::CallEvent ; Line 11185 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 11187 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax mov ecx, DWORD PTR -8+[ebp] sub ecx, 256 ; 00000100H mov DWORD PTR -8+[ebp], ecx cmp DWORD PTR -8+[ebp], 25 ; 00000019H ja SHORT $L10213 mov eax, DWORD PTR -8+[ebp] xor edx, edx mov dl, BYTE PTR $L11734[eax] jmp DWORD PTR $L11735[edx*4] $L10216: ; Line 11190 mov ecx, DWORD PTR _this$[ebp] mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+4] mov DWORD PTR [ecx+4], eax ; Line 11191 jmp SHORT $L10213 $L10218: ; Line 11194 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@ChaffChunkScript@@IAEXH@Z ; ChaffChunkScript::DoInit ; Line 11195 jmp SHORT $L10213 $L10219: ; Line 11198 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoInterval@ChaffChunkScript@@IAEXH@Z ; ChaffChunkScript::DoInterval ; Line 11199 jmp SHORT $L10213 $L10220: ; Line 11202 mov edx, DWORD PTR _data$[ebp] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@ChaffChunkScript@@IAEXPAUtOSIRISEventInfo@@@Z ; ChaffChunkScript::DoCollide ; Line 11203 jmp SHORT $L10213 $L10221: ; Line 11206 push -1 push -1 push 0 push 1065353216 ; 3f800000H push 1082130432 ; 40800000H push 0 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call DWORD PTR ?Obj_SetCustomAnim@@3P6AXHMMMDHD@ZA ; Obj_SetCustomAnim add esp, 28 ; 0000001cH $L10213: ; Line 11209 mov ax, 257 ; 00000101H ; Line 11210 mov esp, ebp pop ebp ret 8 $L11735: DD $L10219 DD $L10220 DD $L10218 DD $L10221 DD $L10216 DD $L10213 $L11734: DB 0 DB 5 DB 5 DB 1 DB 2 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 3 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 5 DB 4 ?CallEvent@ChaffChunkScript@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; ChaffChunkScript::CallEvent _TEXT ENDS PUBLIC ?DoInit@ProxMine@@AAEXH@Z ; ProxMine::DoInit _DATA SEGMENT ORG $+1 $SG10228 DB 'Drop bomb', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -12 _parent$ = -8 _sound_id$ = -4 ?DoInit@ProxMine@@AAEXH@Z PROC NEAR ; ProxMine::DoInit ; Line 11217 push ebp mov ebp, esp sub esp, 12 ; 0000000cH mov DWORD PTR _this$[ebp], ecx ; Line 11218 mov eax, DWORD PTR _me$[ebp] push eax call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$[ebp], eax ; Line 11219 push OFFSET FLAT:$SG10228 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _sound_id$[ebp], eax ; Line 11220 cmp DWORD PTR _sound_id$[ebp], 0 jl SHORT $L10229 ; Line 11222 push 1065353216 ; 3f800000H mov ecx, DWORD PTR _sound_id$[ebp] push ecx mov edx, DWORD PTR _parent$[ebp] push edx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L10229: ; Line 11224 mov esp, ebp pop ebp ret 4 ?DoInit@ProxMine@@AAEXH@Z ENDP ; ProxMine::DoInit _TEXT ENDS PUBLIC ?DoCollide@ProxMine@@AAEXH@Z ; ProxMine::DoCollide _DATA SEGMENT ORG $+2 $SG10237 DB 'TubbsHitBlast', 00H _DATA ENDS _TEXT SEGMENT _me$ = 8 _this$ = -944 _room$ = -928 _pos$ = -940 _weapon_id$ = -4 _mo$ = -924 ?DoCollide@ProxMine@@AAEXH@Z PROC NEAR ; ProxMine::DoCollide ; Line 11227 push ebp mov ebp, esp sub esp, 944 ; 000003b0H mov DWORD PTR _this$[ebp], ecx ; Line 11232 push 0 lea eax, DWORD PTR _room$[ebp] push eax push 5 push 1 mov ecx, DWORD PTR _me$[ebp] push ecx call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11233 push 0 lea edx, DWORD PTR _pos$[ebp] push edx push 3 push 1 mov eax, DWORD PTR _me$[ebp] push eax call DWORD PTR ?Obj_Value@@3P6AXHDDPAXH@ZA ; Obj_Value add esp, 20 ; 00000014H ; Line 11235 push OFFSET FLAT:$SG10237 call DWORD PTR ?Wpn_FindID@@3P6AHPAD@ZA ; Wpn_FindID add esp, 4 mov DWORD PTR _weapon_id$[ebp], eax ; Line 11236 push 0 mov ecx, DWORD PTR _me$[ebp] push ecx push 0 lea edx, DWORD PTR _pos$[ebp] push edx mov eax, DWORD PTR _room$[ebp] push eax mov cx, WORD PTR _weapon_id$[ebp] push ecx push 5 call DWORD PTR ?Obj_Create@@3P6AHEGHPAUvector@@PBUmatrix@@H0@ZA ; Obj_Create add esp, 28 ; 0000001cH ; Line 11239 mov edx, DWORD PTR _me$[ebp] mov DWORD PTR _mo$[ebp+44], edx ; Line 11241 lea eax, DWORD PTR _mo$[ebp] push eax push 37 ; 00000025H call DWORD PTR ?MSafe_CallFunction@@3P6AXHPAUmsafe_struct@@@ZA ; MSafe_CallFunction add esp, 8 ; Line 11242 mov esp, ebp pop ebp ret 4 ?DoCollide@ProxMine@@AAEXH@Z ENDP ; ProxMine::DoCollide _data$ = 12 _this$ = -4 _event$ = 8 ?CallEvent@ProxMine@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; ProxMine::CallEvent ; Line 11245 push ebp mov ebp, esp sub esp, 8 mov DWORD PTR _this$[ebp], ecx ; Line 11247 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -8+[ebp], eax cmp DWORD PTR -8+[ebp], 259 ; 00000103H je SHORT $L10249 cmp DWORD PTR -8+[ebp], 273 ; 00000111H je SHORT $L10248 jmp SHORT $L10245 $L10248: ; Line 11249 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx mov ecx, DWORD PTR _this$[ebp] call ?DoInit@ProxMine@@AAEXH@Z ; ProxMine::DoInit ; Line 11250 jmp SHORT $L10245 $L10249: ; Line 11252 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx mov ecx, DWORD PTR _this$[ebp] call ?DoCollide@ProxMine@@AAEXH@Z ; ProxMine::DoCollide $L10245: ; Line 11255 mov ax, 257 ; 00000101H ; Line 11256 mov esp, ebp pop ebp ret 8 ?CallEvent@ProxMine@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; ProxMine::CallEvent _TEXT ENDS _DATA SEGMENT ORG $+2 $SG10262 DB 'Drop bomb', 00H _DATA ENDS _TEXT SEGMENT _event$ = 8 _data$ = 12 _this$ = -40 _parent$10260 = -32 _sound_id$10261 = -28 _timer_info$10264 = -24 _amount$10266 = -36 ?CallEvent@Gunboy@@UAEFHPAUtOSIRISEventInfo@@@Z PROC NEAR ; Gunboy::CallEvent ; Line 11263 push ebp mov ebp, esp sub esp, 44 ; 0000002cH mov DWORD PTR _this$[ebp], ecx ; Line 11265 mov eax, DWORD PTR _event$[ebp] mov DWORD PTR -44+[ebp], eax cmp DWORD PTR -44+[ebp], 260 ; 00000104H je SHORT $L10259 cmp DWORD PTR -44+[ebp], 262 ; 00000106H je $L10265 jmp $L10256 $L10259: ; Line 11268 mov ecx, DWORD PTR _data$[ebp] mov edx, DWORD PTR [ecx+20] push edx call ?GetObjectParent@@YAHH@Z ; GetObjectParent add esp, 4 mov DWORD PTR _parent$10260[ebp], eax ; Line 11269 push OFFSET FLAT:$SG10262 call DWORD PTR ?Sound_FindId@@3P6AHPAD@ZA ; Sound_FindId add esp, 4 mov DWORD PTR _sound_id$10261[ebp], eax ; Line 11270 cmp DWORD PTR _sound_id$10261[ebp], 0 jl SHORT $L10263 ; Line 11272 push 1065353216 ; 3f800000H mov eax, DWORD PTR _sound_id$10261[ebp] push eax mov ecx, DWORD PTR _parent$10260[ebp] push ecx call DWORD PTR ?Sound_Play3d@@3P6AHHHM@ZA ; Sound_Play3d add esp, 12 ; 0000000cH $L10263: ; Line 11276 mov WORD PTR _timer_info$10264[ebp], 0 ; Line 11277 mov DWORD PTR _timer_info$10264[ebp+8], 0 ; Line 11278 mov edx, DWORD PTR _data$[ebp] mov eax, DWORD PTR [edx+20] mov DWORD PTR _timer_info$10264[ebp+12], eax ; Line 11279 mov DWORD PTR _timer_info$10264[ebp+16], -1 ; Line 11280 mov DWORD PTR _timer_info$10264[ebp+20], 1126170624 ; 43200000H ; Line 11281 mov ecx, DWORD PTR ?aigame_mod_id@@3HA ; aigame_mod_id shl ecx, 16 ; 00000010H or ecx, 45 ; 0000002dH mov DWORD PTR _timer_info$10264[ebp+4], ecx ; Line 11282 lea edx, DWORD PTR _timer_info$10264[ebp] push edx call DWORD PTR ?Scrpt_CreateTimer@@3P6AHPAUtOSIRISTIMER@@@ZA ; Scrpt_CreateTimer add esp, 4 ; Line 11284 jmp SHORT $L10256 $L10265: ; Line 11289 mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call ?GetObjectShields@@YAMH@Z ; GetObjectShields add esp, 4 fadd DWORD PTR __real@4@4004f000000000000000 fstp DWORD PTR _amount$10266[ebp] ; Line 11290 push -1 mov edx, DWORD PTR _amount$10266[ebp] push edx mov eax, DWORD PTR _data$[ebp] mov ecx, DWORD PTR [eax+20] push ecx call ?ObjectDamage@@YAXHMH@Z ; ObjectDamage add esp, 12 ; 0000000cH $L10256: ; Line 11295 mov ax, 257 ; 00000101H ; Line 11296 mov esp, ebp pop ebp ret 8 ?CallEvent@Gunboy@@UAEFHPAUtOSIRISEventInfo@@@Z ENDP ; Gunboy::CallEvent _TEXT ENDS END