Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. .text:007E69F0 ; =============== S U B R O U T I N E =======================================
  2. .text:007E69F0
  3. .text:007E69F0 ; Attributes: bp-based frame
  4. .text:007E69F0
  5. .text:007E69F0 ; _DWORD __stdcall CTFGameRules::GetPayloadToPush(CTFGameRules *this, int)
  6. .text:007E69F0 _ZNK12CTFGameRules16GetPayloadToPushEi proc near
  7. .text:007E69F0                                         ; CODE XREF: CTFBotEngineerBuilding::CheckIfSentryIsOutOfPosition(CTFBot *)+28Bp
  8. .text:007E69F0                                         ; CTFBotEngineerMoveToBuild::CollectBuildAreas(CTFBot *)+1D1p ...
  9. .text:007E69F0
  10. .text:007E69F0 this            = dword ptr  8
  11. .text:007E69F0 arg_4           = dword ptr  0Ch
  12. .text:007E69F0 arg_8           = dword ptr  10h
  13. .text:007E69F0
  14. .text:007E69F0                 push    ebp
  15. .text:007E69F1                 mov     ebp, esp
  16. .text:007E69F3                 push    ebx
  17. .text:007E69F4                 sub     esp, 14h
  18. .text:007E69F7                 mov     eax, ds:g_pGameRules
  19. .text:007E69FC                 mov     ebx, [ebp+this]
  20. .text:007E69FF                 mov     edx, [eax]
  21. .text:007E6A01                 mov     [esp], eax
  22. .text:007E6A04                 call    dword ptr [edx+220h]
  23. .text:007E6A0A                 cmp     eax, 3
  24. .text:007E6A0D                 jz      short loc_7E6A20
  25. .text:007E6A0F
  26. .text:007E6A0F loc_7E6A0F:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+3Ej
  27. .text:007E6A0F                                         ; CTFGameRules::GetPayloadToPush(int)+128j
  28. .text:007E6A0F                 mov     dword ptr [ebx], 0FFFFFFFFh
  29. .text:007E6A15                 add     esp, 14h
  30. .text:007E6A18                 mov     eax, ebx
  31. .text:007E6A1A                 pop     ebx
  32. .text:007E6A1B                 pop     ebp
  33. .text:007E6A1C                 retn    4
  34. .text:007E6A1C ; ---------------------------------------------------------------------------
  35. .text:007E6A1F                 align 10h
  36. .text:007E6A20
  37. .text:007E6A20 loc_7E6A20:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+1Dj
  38. .text:007E6A20                 cmp     [ebp+arg_8], 2
  39. .text:007E6A24                 jz      loc_7E6AE0
  40. .text:007E6A2A                 cmp     [ebp+arg_8], 3
  41. .text:007E6A2E                 jnz     short loc_7E6A0F
  42. .text:007E6A30                 mov     eax, [ebp+arg_4]
  43. .text:007E6A33                 mov     ecx, g_pEntityList
  44. .text:007E6A39                 mov     eax, [eax+0C80h]
  45. .text:007E6A3F                 cmp     eax, 0FFFFFFFFh
  46. .text:007E6A42                 jz      short loc_7E6A5F
  47. .text:007E6A44                 mov     edx, eax
  48. .text:007E6A46                 and     edx, 0FFFh
  49. .text:007E6A4C                 shl     edx, 4
  50. .text:007E6A4F                 add     edx, ecx
  51. .text:007E6A51                 mov     ecx, eax
  52. .text:007E6A53                 shr     ecx, 0Ch
  53. .text:007E6A56                 cmp     [edx+8], ecx
  54. .text:007E6A59                 jz      loc_7E6B28
  55. .text:007E6A5F
  56. .text:007E6A5F loc_7E6A5F:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+52j
  57. .text:007E6A5F                                         ; CTFGameRules::GetPayloadToPush(int)+13Dj
  58. .text:007E6A5F                 mov     edx, ds:g_pGameRules
  59. .text:007E6A65                 cmp     byte ptr [edx+431h], 0
  60. .text:007E6A6C                 jnz     short loc_7E6ACE
  61. .text:007E6A6E                 xor     eax, eax
  62. .text:007E6A70                 jmp     short loc_7E6AA9
  63. .text:007E6A70 ; ---------------------------------------------------------------------------
  64. .text:007E6A72                 align 8
  65. .text:007E6A78
  66. .text:007E6A78 loc_7E6A78:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+D3j
  67. .text:007E6A78                 mov     dword ptr [esp+0Ch], 0
  68. .text:007E6A80                 mov     dword ptr [esp+8], offset _ZTI17CTeamTrainWatcher ; `typeinfo for'CTeamTrainWatcher
  69. .text:007E6A88                 mov     dword ptr [esp+4], offset _ZTI11CBaseEntity ; `typeinfo for'CBaseEntity
  70. .text:007E6A90                 mov     [esp], eax
  71. .text:007E6A93                 call    __dynamic_cast
  72. .text:007E6A98                 test    eax, eax
  73. .text:007E6A9A                 jz      short loc_7E6AC5
  74. .text:007E6A9C                 cmp     byte ptr [eax+378h], 0
  75. .text:007E6AA3                 jz      loc_7E6B4B
  76. .text:007E6AA9
  77. .text:007E6AA9 loc_7E6AA9:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+80j
  78. .text:007E6AA9                 mov     dword ptr [esp+8], offset aTeam_train_wat ; "team_train_watcher"
  79. .text:007E6AB1                 mov     [esp+4], eax    ; CBaseEntity *
  80. .text:007E6AB5                 mov     dword ptr [esp], offset gEntList ; this
  81. .text:007E6ABC                 call    _ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc ; CGlobalEntityList::FindEntityByClassname(CBaseEntity *,char const*)
  82. .text:007E6AC1                 test    eax, eax
  83. .text:007E6AC3                 jnz     short loc_7E6A78
  84. .text:007E6AC5
  85. .text:007E6AC5 loc_7E6AC5:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+AAj
  86. .text:007E6AC5                 mov     eax, [ebp+arg_4]
  87. .text:007E6AC8                 mov     eax, [eax+0C80h]
  88. .text:007E6ACE
  89. .text:007E6ACE loc_7E6ACE:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+7Cj
  90. .text:007E6ACE                 mov     [ebx], eax
  91. .text:007E6AD0
  92. .text:007E6AD0 loc_7E6AD0:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+130j
  93. .text:007E6AD0                                         ; CTFGameRules::GetPayloadToPush(int)+145j ...
  94. .text:007E6AD0                 add     esp, 14h
  95. .text:007E6AD3                 mov     eax, ebx
  96. .text:007E6AD5                 pop     ebx
  97. .text:007E6AD6                 pop     ebp
  98. .text:007E6AD7                 retn    4
  99. .text:007E6AD7 ; ---------------------------------------------------------------------------
  100. .text:007E6ADA                 align 10h
  101. .text:007E6AE0
  102. .text:007E6AE0 loc_7E6AE0:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+34j
  103. .text:007E6AE0                 mov     eax, [ebp+arg_4]
  104. .text:007E6AE3                 mov     ecx, g_pEntityList
  105. .text:007E6AE9                 mov     eax, [eax+0C7Ch]
  106. .text:007E6AEF                 cmp     eax, 0FFFFFFFFh
  107. .text:007E6AF2                 jz      short loc_7E6B0B
  108. .text:007E6AF4                 mov     edx, eax
  109. .text:007E6AF6                 and     edx, 0FFFh
  110. .text:007E6AFC                 shl     edx, 4
  111. .text:007E6AFF                 add     edx, ecx
  112. .text:007E6B01                 mov     ecx, eax
  113. .text:007E6B03                 shr     ecx, 0Ch
  114. .text:007E6B06                 cmp     [edx+8], ecx
  115. .text:007E6B09                 jz      short loc_7E6B40
  116. .text:007E6B0B
  117. .text:007E6B0B loc_7E6B0B:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+102j
  118. .text:007E6B0B                                         ; CTFGameRules::GetPayloadToPush(int)+155j
  119. .text:007E6B0B                 mov     edx, ds:g_pGameRules
  120. .text:007E6B11                 cmp     byte ptr [edx+431h], 0
  121. .text:007E6B18                 jz      loc_7E6A0F
  122. .text:007E6B1E                 mov     [ebx], eax
  123. .text:007E6B20                 jmp     short loc_7E6AD0
  124. .text:007E6B20 ; ---------------------------------------------------------------------------
  125. .text:007E6B22                 align 8
  126. .text:007E6B28
  127. .text:007E6B28 loc_7E6B28:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+69j
  128. .text:007E6B28                 mov     edx, [edx+4]
  129. .text:007E6B2B                 test    edx, edx
  130. .text:007E6B2D                 jz      loc_7E6A5F
  131. .text:007E6B33                 mov     [ebx], eax
  132. .text:007E6B35                 jmp     short loc_7E6AD0
  133. .text:007E6B35 ; ---------------------------------------------------------------------------
  134. .text:007E6B37                 align 10h
  135. .text:007E6B40
  136. .text:007E6B40 loc_7E6B40:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+119j
  137. .text:007E6B40                 mov     ecx, [edx+4]
  138. .text:007E6B43                 test    ecx, ecx
  139. .text:007E6B45                 jz      short loc_7E6B0B
  140. .text:007E6B47                 mov     [ebx], eax
  141. .text:007E6B49                 jmp     short loc_7E6AD0
  142. .text:007E6B4B ; ---------------------------------------------------------------------------
  143. .text:007E6B4B
  144. .text:007E6B4B loc_7E6B4B:                             ; CODE XREF: CTFGameRules::GetPayloadToPush(int)+B3j
  145. .text:007E6B4B                 mov     edx, [eax]
  146. .text:007E6B4D                 mov     [esp], eax
  147. .text:007E6B50                 call    dword ptr [edx+0Ch]
  148. .text:007E6B53                 mov     ecx, [ebp+arg_4]
  149. .text:007E6B56                 mov     eax, [eax]
  150. .text:007E6B58                 mov     [ecx+0C80h], eax
  151. .text:007E6B5E                 mov     [ebx], eax
  152. .text:007E6B60                 jmp     loc_7E6AD0
  153. .text:007E6B60 _ZNK12CTFGameRules16GetPayloadToPushEi endp