Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. .text:00D52860 ; =============== S U B R O U T I N E =======================================
  2. .text:00D52860
  3. .text:00D52860 ; Attributes: bp-based frame
  4. .text:00D52860
  5. .text:00D52860 ; _DWORD __stdcall CTFBotMainAction::Update(CTFBotMainAction *this, CTFBot *, float)
  6. .text:00D52860 _ZN16CTFBotMainAction6UpdateEP6CTFBotf proc near
  7. .text:00D52860                                         ; DATA XREF: .rodata:012E6924o
  8. .text:00D52860
  9. .text:00D52860 var_60          = qword ptr -60h
  10. .text:00D52860 var_58          = qword ptr -58h
  11. .text:00D52860 var_4C          = dword ptr -4Ch
  12. .text:00D52860 var_48          = dword ptr -48h
  13. .text:00D52860 var_40          = dword ptr -40h
  14. .text:00D52860 var_3C          = dword ptr -3Ch
  15. .text:00D52860 var_38          = dword ptr -38h
  16. .text:00D52860 var_34          = dword ptr -34h
  17. .text:00D52860 var_28          = dword ptr -28h
  18. .text:00D52860 var_24          = dword ptr -24h
  19. .text:00D52860 var_20          = dword ptr -20h
  20. .text:00D52860 this            = dword ptr  8
  21. .text:00D52860 arg_4           = dword ptr  0Ch
  22. .text:00D52860 arg_8           = dword ptr  10h
  23. .text:00D52860 arg_C           = dword ptr  14h
  24. .text:00D52860
  25. .text:00D52860                 push    ebp
  26. .text:00D52861                 mov     ebp, esp
  27. .text:00D52863                 push    edi
  28. .text:00D52864                 push    esi
  29. .text:00D52865                 push    ebx
  30. .text:00D52866                 sub     esp, 8Ch
  31. .text:00D5286C                 mov     [ebp+var_38], 0
  32. .text:00D52873                 mov     eax, ds:g_Telemetry+8
  33. .text:00D52878                 mov     [ebp+var_34], 0
  34. .text:00D5287F                 mov     ebx, [ebp+this]
  35. .text:00D52882                 mov     esi, [ebp+arg_8]
  36. .text:00D52885                 test    eax, eax
  37. .text:00D52887                 jz      loc_D5298F
  38. .text:00D5288D                 lea     edx, [ebp+var_38]
  39. .text:00D52890                 mov     [esp], eax
  40. .text:00D52893                 mov     [esp+4], edx
  41. .text:00D52897                 mov     dword ptr [esp+2Ch], offset aCtfbotmainacti ; "CTFBotMainAction::Update"
  42. .text:00D5289F                 mov     dword ptr [esp+28h], offset aNextbot ; "NextBot"
  43. .text:00D528A7                 mov     dword ptr [esp+24h], offset aSS ; "(%s)%s"
  44. .text:00D528AF                 mov     dword ptr [esp+20h], offset _ZZN16CTFBotMainAction6UpdateEP6CTFBotfE6tm_fmt ; CTFBotMainAction::Update(CTFBot *,float)::tm_fmt
  45. .text:00D528B7                 mov     dword ptr [esp+1Ch], 73h
  46. .text:00D528BF                 mov     dword ptr [esp+18h], offset aHomeBuildbo_82 ; "/home/buildbot/buildslave/rel_hl2_dedic"...
  47. .text:00D528C7                 mov     dword ptr [esp+14h], 0
  48. .text:00D528CF                 mov     dword ptr [esp+0Ch], 0
  49. .text:00D528D7                 mov     dword ptr [esp+10h], 0
  50. .text:00D528DF                 mov     dword ptr [esp+8], 0
  51. .text:00D528E7                 call    dword ptr [eax+50h]
  52. .text:00D528EA                 mov     eax, ds:g_Telemetry+8
  53. .text:00D528EF                 mov     edx, [ebp+var_34]
  54. .text:00D528F2                 mov     [ebp+var_20], eax
  55. .text:00D528F5                 mov     eax, [ebp+var_38]
  56. .text:00D528F8                 mov     [ebp+var_24], edx
  57. .text:00D528FB                 mov     [ebp+var_28], eax
  58. .text:00D528FE                 mov     eax, dword ptr g_VProfCurrentProfile+100Ch
  59. .text:00D52903                 test    eax, eax
  60. .text:00D52905                 jnz     loc_D529B8
  61. .text:00D5290B
  62. .text:00D5290B loc_D5290B:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+14Bj
  63. .text:00D5290B                 xor     edi, edi
  64. .text:00D5290D
  65. .text:00D5290D loc_D5290D:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+170j
  66. .text:00D5290D                 mov     [esp], esi      ; this
  67. .text:00D52910                 call    _ZNK11CBaseEntity13GetTeamNumberEv ; CBaseEntity::GetTeamNumber(void)
  68. .text:00D52915                 cmp     eax, 3
  69. .text:00D52918                 jz      loc_D529D8
  70. .text:00D5291E                 mov     [esp], esi      ; this
  71. .text:00D52921                 call    _ZNK11CBaseEntity13GetTeamNumberEv ; CBaseEntity::GetTeamNumber(void)
  72. .text:00D52926                 cmp     eax, 2
  73. .text:00D52929                 jz      loc_D529D8
  74. .text:00D5292F                 mov     dword ptr [ebx], 3
  75. .text:00D52935                 mov     dword ptr [ebx+4], 0
  76. .text:00D5293C                 mov     dword ptr [ebx+8], offset unk_12E63FB
  77. .text:00D52943
  78. .text:00D52943 loc_D52943:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+453j
  79. .text:00D52943                 mov     eax, edi
  80. .text:00D52945                 test    al, al
  81. .text:00D52947                 jnz     loc_D52AB2
  82. .text:00D5294D
  83. .text:00D5294D loc_D5294D:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+24Cj
  84. .text:00D5294D                                         ; CTFBotMainAction::Update(CTFBot *,float)+263j ...
  85. .text:00D5294D                 mov     ecx, [ebp+var_20]
  86. .text:00D52950                 test    ecx, ecx
  87. .text:00D52952                 jz      short loc_D52980
  88. .text:00D52954                 mov     eax, [ebp+var_28]
  89. .text:00D52957                 mov     dword ptr [esp+14h], 0
  90. .text:00D5295F                 mov     edx, [ebp+var_24]
  91. .text:00D52962                 mov     dword ptr [esp+10h], 0
  92. .text:00D5296A                 mov     dword ptr [esp+0Ch], 0
  93. .text:00D52972                 mov     [esp], ecx
  94. .text:00D52975                 mov     [esp+4], eax
  95. .text:00D52979                 mov     [esp+8], edx
  96. .text:00D5297D                 call    dword ptr [ecx+54h]
  97. .text:00D52980
  98. .text:00D52980 loc_D52980:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+F2j
  99. .text:00D52980                 add     esp, 8Ch
  100. .text:00D52986                 mov     eax, ebx
  101. .text:00D52988                 pop     ebx
  102. .text:00D52989                 pop     esi
  103. .text:00D5298A                 pop     edi
  104. .text:00D5298B                 pop     ebp
  105. .text:00D5298C                 retn    4
  106. .text:00D5298F ; ---------------------------------------------------------------------------
  107. .text:00D5298F
  108. .text:00D5298F loc_D5298F:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+27j
  109. .text:00D5298F                 cmp     dword ptr g_VProfCurrentProfile+100Ch, 0
  110. .text:00D52996                 mov     [ebp+var_20], 0
  111. .text:00D5299D                 mov     [ebp+var_28], 0
  112. .text:00D529A4                 mov     [ebp+var_24], 0
  113. .text:00D529AB                 jz      loc_D5290B
  114. .text:00D529B1                 lea     esi, [esi+0]
  115. .text:00D529B8
  116. .text:00D529B8 loc_D529B8:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+A5j
  117. .text:00D529B8                 mov     edi, dword ptr g_VProfCurrentProfile+19B8h
  118. .text:00D529BE                 call    ThreadGetCurrentId
  119. .text:00D529C3                 cmp     edi, eax
  120. .text:00D529C5                 jz      loc_D52B10
  121. .text:00D529CB
  122. .text:00D529CB loc_D529CB:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+30Bj
  123. .text:00D529CB                 mov     edi, 1
  124. .text:00D529D0                 jmp     loc_D5290D
  125. .text:00D529D0 ; ---------------------------------------------------------------------------
  126. .text:00D529D5                 align 4
  127. .text:00D529D8
  128. .text:00D529D8 loc_D529D8:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+B8j
  129. .text:00D529D8                                         ; CTFBotMainAction::Update(CTFBot *,float)+C9j
  130. .text:00D529D8                 mov     [esp], esi      ; this
  131. .text:00D529DB                 call    _ZN9CTFPlayer25FindPartnerTauntInitiatorEv ; CTFPlayer::FindPartnerTauntInitiator(void)
  132. .text:00D529E0                 test    eax, eax
  133. .text:00D529E2                 jz      loc_D52B70
  134. .text:00D529E8                 mov     dword ptr [esp], 50h ; unsigned int
  135. .text:00D529EF                 call    _Znwj           ; operator new(uint)
  136. .text:00D529F4                 mov     edx, [ebp+arg_4]
  137. .text:00D529F7                 mov     dword ptr [eax+20h], 0
  138. .text:00D529FE                 mov     dword ptr [eax+24h], 0
  139. .text:00D52A05                 mov     dword ptr [eax+28h], 0
  140. .text:00D52A0C                 mov     dword ptr [eax+0Ch], 0
  141. .text:00D52A13                 mov     dword ptr [eax+10h], 0
  142. .text:00D52A1A                 mov     dword ptr [eax+14h], 0
  143. .text:00D52A21                 mov     dword ptr [eax+18h], 0
  144. .text:00D52A28                 mov     dword ptr [eax+1Ch], 0
  145. .text:00D52A2F                 mov     dword ptr [eax+8], 0
  146. .text:00D52A36                 mov     byte ptr [eax+30h], 0
  147. .text:00D52A3A                 mov     byte ptr [eax+31h], 0
  148. .text:00D52A3E                 mov     dword ptr [eax+2Ch], 0
  149. .text:00D52A45                 mov     dword ptr [eax], offset off_12E95E8
  150. .text:00D52A4B                 mov     dword ptr [eax+4], offset off_12E9760
  151. .text:00D52A52                 mov     dword ptr [eax+34h], offset off_123E4D0
  152. .text:00D52A59                 mov     dword ptr [eax+3Ch], 0BF800000h
  153. .text:00D52A60                 mov     dword ptr [eax+38h], 0
  154. .text:00D52A67                 mov     dword ptr [eax+40h], offset off_123E4D0
  155. .text:00D52A6E                 mov     dword ptr [eax+48h], 0BF800000h
  156. .text:00D52A75                 mov     dword ptr [eax+44h], 0
  157. .text:00D52A7C                 mov     [ebx+4], eax
  158. .text:00D52A7F                 mov     eax, edi
  159. .text:00D52A81                 test    al, al
  160. .text:00D52A83                 mov     dword ptr [edx+20h], 0
  161. .text:00D52A8A                 mov     dword ptr [edx+24h], 0
  162. .text:00D52A91                 mov     dword ptr [edx+28h], 0
  163. .text:00D52A98                 mov     dword ptr [edx+2Ch], 0
  164. .text:00D52A9F                 mov     dword ptr [ebx], 2
  165. .text:00D52AA5                 mov     dword ptr [ebx+8], offset aRespondingToTe ; "Responding to teammate partner taunt"
  166. .text:00D52AAC                 jz      loc_D5294D
  167. .text:00D52AB2
  168. .text:00D52AB2 loc_D52AB2:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+E7j
  169. .text:00D52AB2                 cmp     byte ptr g_VProfCurrentProfile+1010h, 0
  170. .text:00D52AB9                 jz      short loc_D52AC9
  171. .text:00D52ABB                 mov     edi, dword ptr g_VProfCurrentProfile+100Ch
  172. .text:00D52AC1                 test    edi, edi
  173. .text:00D52AC3                 jz      loc_D5294D
  174. .text:00D52AC9
  175. .text:00D52AC9 loc_D52AC9:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+259j
  176. .text:00D52AC9                 mov     esi, dword ptr g_VProfCurrentProfile+19B8h
  177. .text:00D52ACF                 call    ThreadGetCurrentId
  178. .text:00D52AD4                 cmp     esi, eax
  179. .text:00D52AD6                 jnz     loc_D5294D
  180. .text:00D52ADC                 mov     eax, dword ptr g_VProfCurrentProfile+1014h
  181. .text:00D52AE1                 mov     [esp], eax      ; this
  182. .text:00D52AE4                 call    _ZN10CVProfNode9ExitScopeEv ; CVProfNode::ExitScope(void)
  183. .text:00D52AE9                 test    al, al
  184. .text:00D52AEB                 mov     eax, dword ptr g_VProfCurrentProfile+1014h
  185. .text:00D52AF0                 jz      short loc_D52AFA
  186. .text:00D52AF2                 mov     eax, [eax+64h]
  187. .text:00D52AF5                 mov     dword ptr g_VProfCurrentProfile+1014h, eax
  188. .text:00D52AFA
  189. .text:00D52AFA loc_D52AFA:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+290j
  190. .text:00D52AFA                 cmp     eax, (offset g_VProfCurrentProfile+1018h)
  191. .text:00D52AFF                 setz    byte ptr g_VProfCurrentProfile+1010h
  192. .text:00D52B06                 jmp     loc_D5294D
  193. .text:00D52B06 ; ---------------------------------------------------------------------------
  194. .text:00D52B0B                 align 10h
  195. .text:00D52B10
  196. .text:00D52B10 loc_D52B10:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+165j
  197. .text:00D52B10                 mov     eax, dword ptr g_VProfCurrentProfile+1014h
  198. .text:00D52B15                 cmp     dword ptr [eax], offset aCtfbotmainacti ; "CTFBotMainAction::Update"
  199. .text:00D52B1B                 jz      short loc_D52B4A
  200. .text:00D52B1D                 mov     dword ptr [esp+10h], 4 ; int
  201. .text:00D52B25                 mov     dword ptr [esp+0Ch], offset aNextbot ; "NextBot"
  202. .text:00D52B2D                 mov     dword ptr [esp+8], 0 ; int
  203. .text:00D52B35                 mov     dword ptr [esp+4], offset aCtfbotmainacti ; "CTFBotMainAction::Update"
  204. .text:00D52B3D                 mov     [esp], eax      ; this
  205. .text:00D52B40                 call    _ZN10CVProfNode10GetSubNodeEPKciS1_i ; CVProfNode::GetSubNode(char const*,int,char const*,int)
  206. .text:00D52B45                 mov     dword ptr g_VProfCurrentProfile+1014h, eax
  207. .text:00D52B4A
  208. .text:00D52B4A loc_D52B4A:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+2BBj
  209. .text:00D52B4A                 mov     edx, [eax+70h]
  210. .text:00D52B4D                 mov     eax, dword ptr g_VProfCurrentProfile+10A0h
  211. .text:00D52B52                 or      dword ptr [eax+edx*8+4], 4
  212. .text:00D52B57                 mov     eax, dword ptr g_VProfCurrentProfile+1014h
  213. .text:00D52B5C                 mov     [esp], eax      ; this
  214. .text:00D52B5F                 call    _ZN10CVProfNode10EnterScopeEv ; CVProfNode::EnterScope(void)
  215. .text:00D52B64                 mov     byte ptr g_VProfCurrentProfile+1010h, 0
  216. .text:00D52B6B                 jmp     loc_D529CB
  217. .text:00D52B70 ; ---------------------------------------------------------------------------
  218. .text:00D52B70
  219. .text:00D52B70 loc_D52B70:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+182j
  220. .text:00D52B70                 mov     eax, [esi]
  221. .text:00D52B72                 mov     [esp], esi
  222. .text:00D52B75                 call    dword ptr [eax+828h]
  223. .text:00D52B7B                 mov     [ebp+var_3C], eax
  224. .text:00D52B7E                 mov     eax, [eax]
  225. .text:00D52B80                 mov     edx, [eax+114h]
  226. .text:00D52B86                 mov     [esp], esi      ; this
  227. .text:00D52B89                 mov     [ebp+var_48], edx
  228. .text:00D52B8C                 call    _ZN11CBasePlayer6GetFOVEv ; CBasePlayer::GetFOV(void)
  229. .text:00D52B91                 cvtsi2ss xmm0, eax
  230. .text:00D52B95                 mov     eax, [ebp+var_3C]
  231. .text:00D52B98                 mov     edx, [ebp+var_48]
  232. .text:00D52B9B                 movss   dword ptr [esp+4], xmm0
  233. .text:00D52BA1                 mov     [esp], eax
  234. .text:00D52BA4                 call    edx
  235. .text:00D52BA6                 mov     eax, ds:g_pGameRules
  236. .text:00D52BAB                 mov     edx, [eax]
  237. .text:00D52BAD                 mov     [esp], eax
  238. .text:00D52BB0                 call    dword ptr [edx+2D8h]
  239. .text:00D52BB6                 test    al, al
  240. .text:00D52BB8                 jnz     loc_D52CCF
  241. .text:00D52BBE
  242. .text:00D52BBE loc_D52BBE:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+47Aj
  243. .text:00D52BBE                                         ; CTFBotMainAction::Update(CTFBot *,float)+4A3j
  244. .text:00D52BBE                 mov     eax, [esi]
  245. .text:00D52BC0                 mov     [esp], esi
  246. .text:00D52BC3                 call    dword ptr [eax+210h]
  247. .text:00D52BC9                 movss   xmm0, dword ptr [eax+4]
  248. .text:00D52BCE                 mov     eax, [ebp+arg_4]
  249. .text:00D52BD1                 movss   xmm1, [ebp+arg_C]
  250. .text:00D52BD6                 addss   xmm1, ds:dword_11B7590
  251. .text:00D52BDE                 subss   xmm0, dword ptr [eax+58h]
  252. .text:00D52BE3                 divss   xmm0, xmm1
  253. .text:00D52BE7                 movss   xmm1, dword ptr ds:xmmword_11B67C0
  254. .text:00D52BEF                 andps   xmm0, xmm1
  255. .text:00D52BF2                 movss   dword ptr [eax+54h], xmm0
  256. .text:00D52BF7                 mov     eax, [esi]
  257. .text:00D52BF9                 mov     [esp], esi
  258. .text:00D52BFC                 call    dword ptr [eax+210h]
  259. .text:00D52C02                 movss   xmm0, dword ptr [eax+4]
  260. .text:00D52C07                 mov     eax, [ebp+arg_4]
  261. .text:00D52C0A                 movss   dword ptr [eax+58h], xmm0
  262. .text:00D52C0F                 mov     eax, ds:dword_17A3A9C
  263. .text:00D52C14                 movss   xmm0, dword ptr [eax+2Ch]
  264. .text:00D52C19                 mov     eax, [ebp+arg_4]
  265. .text:00D52C1C                 comiss  xmm0, dword ptr [eax+54h]
  266. .text:00D52C20                 jbe     loc_D52CC0
  267. .text:00D52C26                 xorps   xmm0, xmm0
  268. .text:00D52C29                 comiss  xmm0, dword ptr [eax+5Ch]
  269. .text:00D52C2D                 jnb     loc_D530F6
  270. .text:00D52C33
  271. .text:00D52C33 loc_D52C33:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+46Aj
  272. .text:00D52C33                                         ; CTFBotMainAction::Update(CTFBot *,float)+8B1j
  273. .text:00D52C33                 mov     eax, ds:g_pGameRules
  274. .text:00D52C38                 cmp     byte ptr [eax+966h], 0
  275. .text:00D52C3F                 jnz     loc_D52D7F
  276. .text:00D52C45
  277. .text:00D52C45 loc_D52C45:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+52Aj
  278. .text:00D52C45                                         ; CTFBotMainAction::Update(CTFBot *,float)+78Aj ...
  279. .text:00D52C45                 mov     eax, [esi]
  280. .text:00D52C47                 mov     [esp], esi
  281. .text:00D52C4A                 call    dword ptr [eax+580h]
  282. .text:00D52C50                 test    al, al
  283. .text:00D52C52                 jz      loc_D52D08
  284. .text:00D52C58
  285. .text:00D52C58 loc_D52C58:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+4C3j
  286. .text:00D52C58                                         ; CTFBotMainAction::Update(CTFBot *,float)+4DEj ...
  287. .text:00D52C58                 mov     [esp], esi      ; this
  288. .text:00D52C5B                 call    _ZN6CTFBot19EquipRequiredWeaponEv ; CTFBot::EquipRequiredWeapon(void)
  289. .text:00D52C60                 mov     [esp], esi      ; this
  290. .text:00D52C63                 call    _ZN6CTFBot29UpdateLookingAroundForEnemiesEv ; CTFBot::UpdateLookingAroundForEnemies(void)
  291. .text:00D52C68                 mov     eax, [ebp+arg_4]
  292. .text:00D52C6B                 mov     [esp+4], esi    ; CTFBot *
  293. .text:00D52C6F                 mov     [esp], eax      ; this
  294. .text:00D52C72                 call    _ZN16CTFBotMainAction17FireWeaponAtEnemyEP6CTFBot ; CTFBotMainAction::FireWeaponAtEnemy(CTFBot *)
  295. .text:00D52C77                 mov     eax, [ebp+arg_4]
  296. .text:00D52C7A                 mov     [esp+4], esi    ; CTFBot *
  297. .text:00D52C7E                 mov     [esp], eax      ; this
  298. .text:00D52C81                 call    _ZN16CTFBotMainAction5DodgeEP6CTFBot ; CTFBotMainAction::Dodge(CTFBot *)
  299. .text:00D52C86                 mov     dword ptr [esp+4], 4 ; int
  300. .text:00D52C8E                 mov     [esp], esi      ; this
  301. .text:00D52C91                 call    _ZNK9CTFPlayer13IsPlayerClassEi ; CTFPlayer::IsPlayerClass(int)
  302. .text:00D52C96                 xor     eax, 1
  303. .text:00D52C99                 mov     dword ptr [ebx], 0
  304. .text:00D52C9F                 mov     [esi+2133h], al
  305. .text:00D52CA5                 mov     dword ptr [ebx+4], 0
  306. .text:00D52CAC                 mov     dword ptr [ebx+8], 0
  307. .text:00D52CB3                 jmp     loc_D52943
  308. .text:00D52CB3 ; ---------------------------------------------------------------------------
  309. .text:00D52CB8                 align 10h
  310. .text:00D52CC0
  311. .text:00D52CC0 loc_D52CC0:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+3C0j
  312. .text:00D52CC0                 mov     eax, [ebp+arg_4]
  313. .text:00D52CC3                 mov     dword ptr [eax+5Ch], 0BF800000h
  314. .text:00D52CCA                 jmp     loc_D52C33
  315. .text:00D52CCF ; ---------------------------------------------------------------------------
  316. .text:00D52CCF
  317. .text:00D52CCF loc_D52CCF:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+358j
  318. .text:00D52CCF                 mov     [esp], esi      ; this
  319. .text:00D52CD2                 call    _ZNK11CBaseEntity13GetTeamNumberEv ; CBaseEntity::GetTeamNumber(void)
  320. .text:00D52CD7                 cmp     eax, 3
  321. .text:00D52CDA                 jnz     loc_D52BBE
  322. .text:00D52CE0                 mov     eax, [esi]
  323. .text:00D52CE2                 mov     dword ptr [esp+0Ch], 1
  324. .text:00D52CEA                 mov     dword ptr [esp+8], 3
  325. .text:00D52CF2                 mov     dword ptr [esp+4], 3E8h
  326. .text:00D52CFA                 mov     [esp], esi
  327. .text:00D52CFD                 call    dword ptr [eax+3FCh]
  328. .text:00D52D03                 jmp     loc_D52BBE
  329. .text:00D52D08 ; ---------------------------------------------------------------------------
  330. .text:00D52D08
  331. .text:00D52D08 loc_D52D08:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+3F2j
  332. .text:00D52D08                 lea     eax, [esi+1974h]
  333. .text:00D52D0E                 mov     dword ptr [esp+4], 3
  334. .text:00D52D16                 mov     [esp], eax
  335. .text:00D52D19                 mov     [ebp+var_3C], eax
  336. .text:00D52D1C                 call    _ZNK15CTFPlayerShared6InCondE7ETFCond ; CTFPlayerShared::InCond(ETFCond)
  337. .text:00D52D21                 test    al, al
  338. .text:00D52D23                 jnz     loc_D52C58
  339. .text:00D52D29                 mov     eax, [ebp+var_3C]
  340. .text:00D52D2C                 mov     dword ptr [esp+4], 2
  341. .text:00D52D34                 mov     [esp], eax
  342. .text:00D52D37                 call    _ZNK15CTFPlayerShared6InCondE7ETFCond ; CTFPlayerShared::InCond(ETFCond)
  343. .text:00D52D3C                 test    al, al
  344. .text:00D52D3E                 jnz     loc_D52C58
  345. .text:00D52D44                 mov     [esp], esi      ; this
  346. .text:00D52D47                 call    _ZN9CTFPlayer11CanDisguiseEv ; CTFPlayer::CanDisguise(void)
  347. .text:00D52D4C                 test    al, al
  348. .text:00D52D4E                 jz      loc_D52C58
  349. .text:00D52D54                 mov     eax, [ebp+arg_4]
  350. .text:00D52D57                 mov     eax, [eax+60h]
  351. .text:00D52D5A                 test    eax, eax
  352. .text:00D52D5C                 mov     [ebp+var_48], eax
  353. .text:00D52D5F                 jnz     loc_D53082
  354. .text:00D52D65                 cmp     dword ptr [esi+24D8h], 1
  355. .text:00D52D6C                 jbe     loc_D53024
  356. .text:00D52D72                 mov     [esp], esi      ; this
  357. .text:00D52D75                 call    _ZN6CTFBot27DisguiseAsMemberOfEnemyTeamEv ; CTFBot::DisguiseAsMemberOfEnemyTeam(void)
  358. .text:00D52D7A                 jmp     loc_D52C58
  359. .text:00D52D7F ; ---------------------------------------------------------------------------
  360. .text:00D52D7F
  361. .text:00D52D7F loc_D52D7F:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+3DFj
  362. .text:00D52D7F                 mov     [esp], esi      ; this
  363. .text:00D52D82                 call    _ZNK11CBaseEntity13GetTeamNumberEv ; CBaseEntity::GetTeamNumber(void)
  364. .text:00D52D87                 cmp     eax, 3
  365. .text:00D52D8A                 jnz     loc_D52C45
  366. .text:00D52D90                 mov     eax, [esi]
  367. .text:00D52D92                 mov     dword ptr [esp+0Ch], 1
  368. .text:00D52D9A                 mov     dword ptr [esp+8], 3
  369. .text:00D52DA2                 mov     dword ptr [esp+4], 64h
  370. .text:00D52DAA                 mov     [esp], esi
  371. .text:00D52DAD                 call    dword ptr [eax+3FCh]
  372. .text:00D52DB3                 lea     eax, [esi+1974h]
  373. .text:00D52DB9                 mov     dword ptr [esp+8], 0 ; bool
  374. .text:00D52DC1                 mov     dword ptr [esp+4], 42C80000h ; float
  375. .text:00D52DC9                 mov     [esp], eax      ; this
  376. .text:00D52DCC                 mov     [ebp+var_48], eax
  377. .text:00D52DCF                 call    _ZN15CTFPlayerShared18AddToSpyCloakMeterEfb ; CTFPlayerShared::AddToSpyCloakMeter(float,bool)
  378. .text:00D52DD4                 mov     eax, [esi]
  379. .text:00D52DD6                 mov     [esp], esi
  380. .text:00D52DD9                 call    dword ptr [eax+4ECh]
  381. .text:00D52DDF                 mov     [esp], esi      ; this
  382. .text:00D52DE2                 mov     [ebp+var_3C], eax
  383. .text:00D52DE5                 call    _ZNK11CBaseEntity13GetTeamNumberEv ; CBaseEntity::GetTeamNumber(void)
  384. .text:00D52DEA                 mov     edx, [ebp+var_3C]
  385. .text:00D52DED                 cmp     eax, 2
  386. .text:00D52DF0                 setnz   al
  387. .text:00D52DF3                 movzx   eax, al
  388. .text:00D52DF6                 lea     eax, [eax+eax+2]
  389. .text:00D52DFA                 test    edx, edx
  390. .text:00D52DFC                 jz      loc_D5300B
  391. .text:00D52E02                 test    [edx+1C4h], eax
  392. .text:00D52E08                 jz      short loc_D52E73
  393. .text:00D52E0A                 mov     eax, [ebp+var_48]
  394. .text:00D52E0D                 mov     dword ptr [esp+0Ch], 0
  395. .text:00D52E15                 mov     dword ptr [esp+8], 3F000000h
  396. .text:00D52E1D                 mov     dword ptr [esp+4], 5
  397. .text:00D52E25                 mov     [esp], eax
  398. .text:00D52E28                 call    _ZN15CTFPlayerShared7AddCondE7ETFCondfP11CBaseEntity ; CTFPlayerShared::AddCond(ETFCond,float,CBaseEntity *)
  399. .text:00D52E2D                 mov     eax, [ebp+var_48]
  400. .text:00D52E30                 mov     dword ptr [esp+0Ch], 0
  401. .text:00D52E38                 mov     dword ptr [esp+8], 3F000000h
  402. .text:00D52E40                 mov     dword ptr [esp+4], 33h
  403. .text:00D52E48                 mov     [esp], eax
  404. .text:00D52E4B                 call    _ZN15CTFPlayerShared7AddCondE7ETFCondfP11CBaseEntity ; CTFPlayerShared::AddCond(ETFCond,float,CBaseEntity *)
  405. .text:00D52E50                 mov     eax, [ebp+var_48]
  406. .text:00D52E53                 mov     dword ptr [esp+0Ch], 0
  407. .text:00D52E5B                 mov     dword ptr [esp+8], 3F000000h ; float
  408. .text:00D52E63                 mov     dword ptr [esp+4], 8 ; float
  409. .text:00D52E6B                 mov     [esp], eax
  410. .text:00D52E6E                 call    _ZN15CTFPlayerShared7AddCondE7ETFCondfP11CBaseEntity ; CTFPlayerShared::AddCond(ETFCond,float,CBaseEntity *)
  411. .text:00D52E73
  412. .text:00D52E73 loc_D52E73:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+5A8j
  413. .text:00D52E73                 test    byte ptr [esi+129h], 8
  414. .text:00D52E7A                 jz      short loc_D52E84
  415. .text:00D52E7C                 mov     [esp], esi      ; this
  416. .text:00D52E7F                 call    _ZN11CBaseEntity20CalcAbsolutePositionEv ; CBaseEntity::CalcAbsolutePosition(void)
  417. .text:00D52E84
  418. .text:00D52E84 loc_D52E84:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+61Aj
  419. .text:00D52E84                 movss   xmm0, dword ptr [esi+2A8h]
  420. .text:00D52E8C                 mov     eax, [ebp+var_3C]
  421. .text:00D52E8F                 movss   dword ptr [esp+8], xmm0
  422. .text:00D52E95                 movss   xmm0, dword ptr [esi+2A4h]
  423. .text:00D52E9D                 mov     [esp], eax      ; this
  424. .text:00D52EA0                 movss   dword ptr [esp+4], xmm0
  425. .text:00D52EA6                 call    _ZNK8CNavArea4GetZEff ; CNavArea::GetZ(float,float)
  426. .text:00D52EAB                 test    byte ptr [esi+129h], 8
  427. .text:00D52EB2                 fstp    [ebp+var_48]
  428. .text:00D52EB5                 jnz     loc_D53017
  429. .text:00D52EBB
  430. .text:00D52EBB loc_D52EBB:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+7BFj
  431. .text:00D52EBB                 movss   xmm0, [ebp+var_48]
  432. .text:00D52EC0                 subss   xmm0, dword ptr [esi+2ACh]
  433. .text:00D52EC8                 comiss  xmm0, ds:dword_11B6788
  434. .text:00D52ECF                 jbe     loc_D5300B
  435. .text:00D52ED5                 mov     eax, [ebp+arg_4]
  436. .text:00D52ED8                 xorps   xmm0, xmm0
  437. .text:00D52EDB                 comiss  xmm0, dword ptr [eax+70h]
  438. .text:00D52EDF                 jnb     loc_D530D3
  439. .text:00D52EE5                 mov     eax, [ebp+arg_4]
  440. .text:00D52EE8                 add     eax, 70h
  441. .text:00D52EEB                 mov     [esp], eax      ; this
  442. .text:00D52EEE                 call    _ZNK13IntervalTimer3NowEv ; IntervalTimer::Now(void)
  443. .text:00D52EF3                 mov     eax, [ebp+arg_4]
  444. .text:00D52EF6                 fstp    [ebp+var_48]
  445. .text:00D52EF9                 movss   xmm0, [ebp+var_48]
  446. .text:00D52EFE                 subss   xmm0, dword ptr [eax+70h]
  447. .text:00D52F03                 comiss  xmm0, ds:dword_11A0408
  448. .text:00D52F0A                 jbe     loc_D52FE0
  449. .text:00D52F10                 test    byte ptr [esi+129h], 8
  450. .text:00D52F17                 jnz     loc_D53116
  451. .text:00D52F1D                 movss   xmm5, dword ptr [esi+2ACh]
  452. .text:00D52F25                 cvtps2pd xmm5, xmm5
  453. .text:00D52F28                 movsd   [ebp+var_60], xmm5
  454. .text:00D52F2D
  455. .text:00D52F2D loc_D52F2D:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+8D5j
  456. .text:00D52F2D                 movss   xmm6, dword ptr [esi+2A8h]
  457. .text:00D52F35                 cvtps2pd xmm6, xmm6
  458. .text:00D52F38                 movsd   [ebp+var_58], xmm6
  459. .text:00D52F3D
  460. .text:00D52F3D loc_D52F3D:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+8FAj
  461. .text:00D52F3D                                         ; CTFBotMainAction::Update(CTFBot *,float)+908j
  462. .text:00D52F3D                 movss   xmm2, dword ptr [esi+2A4h]
  463. .text:00D52F45                 mov     [esp], esi      ; this
  464. .text:00D52F48                 cvtps2pd xmm2, xmm2
  465. .text:00D52F4B                 movsd   qword ptr [ebp+var_48], xmm2
  466. .text:00D52F50                 call    _ZNK11CBaseEntity7GetTeamEv ; CBaseEntity::GetTeam(void)
  467. .text:00D52F55                 mov     edx, [eax]
  468. .text:00D52F57                 mov     [esp], eax
  469. .text:00D52F5A                 call    dword ptr [edx+304h]
  470. .text:00D52F60                 mov     [esp], esi      ; this
  471. .text:00D52F63                 mov     [ebp+var_40], eax
  472. .text:00D52F66                 call    _ZN11CBasePlayer18GetNetworkIDStringEv ; CBasePlayer::GetNetworkIDString(void)
  473. .text:00D52F6B                 mov     [ebp+var_4C], eax
  474. .text:00D52F6E                 mov     eax, ds:engine
  475. .text:00D52F73                 mov     ecx, [esi+20h]
  476. .text:00D52F76                 mov     edx, [eax]
  477. .text:00D52F78                 mov     [esp], eax
  478. .text:00D52F7B                 mov     [esp+4], ecx
  479. .text:00D52F7F                 call    dword ptr [edx+3Ch]
  480. .text:00D52F82                 mov     edx, [ebp+var_40]
  481. .text:00D52F85                 mov     [esp+8], eax
  482. .text:00D52F89                 lea     eax, [esi+0E8Ch]
  483. .text:00D52F8F                 movsd   xmm3, [ebp+var_60]
  484. .text:00D52F94                 mov     [esp+4], eax
  485. .text:00D52F98                 movsd   xmm4, [ebp+var_58]
  486. .text:00D52F9D                 mov     dword ptr [esp], offset aSISSUndergroun ; "\"%s<%i><%s><%s>\" underground (positio"...
  487. .text:00D52FA4                 movsd   xmm2, qword ptr [ebp+var_48]
  488. .text:00D52FA9                 movsd   qword ptr [esp+24h], xmm3
  489. .text:00D52FAF                 mov     [esp+10h], edx
  490. .text:00D52FB3                 mov     edx, [ebp+var_4C]
  491. .text:00D52FB6                 movsd   qword ptr [esp+1Ch], xmm4
  492. .text:00D52FBC                 movsd   qword ptr [esp+14h], xmm2
  493. .text:00D52FC2                 mov     [esp+0Ch], edx
  494. .text:00D52FC6                 call    _Z14UTIL_LogPrintfPKcz ; UTIL_LogPrintf(char const*,...)
  495. .text:00D52FCB                 mov     eax, [ebp+var_3C]
  496. .text:00D52FCE                 mov     [esp], esi      ; this
  497. .text:00D52FD1                 add     eax, 2Ch
  498. .text:00D52FD4                 mov     [esp+4], eax    ; Vector *
  499. .text:00D52FD8                 call    _ZN11CBaseEntity12SetAbsOriginERK6Vector ; CBaseEntity::SetAbsOrigin(Vector const&)
  500. .text:00D52FDD                 lea     esi, [esi+0]
  501. .text:00D52FE0
  502. .text:00D52FE0 loc_D52FE0:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+6AAj
  503. .text:00D52FE0                                         ; CTFBotMainAction::Update(CTFBot *,float)+7B5j ...
  504. .text:00D52FE0                 mov     [esp], esi      ; this
  505. .text:00D52FE3                 call    _ZN6CTFBot14ShouldAutoJumpEv ; CTFBot::ShouldAutoJump(void)
  506. .text:00D52FE8                 test    al, al
  507. .text:00D52FEA                 jz      loc_D52C45
  508. .text:00D52FF0                 mov     eax, [esi]
  509. .text:00D52FF2                 mov     [esp], esi
  510. .text:00D52FF5                 call    dword ptr [eax+820h]
  511. .text:00D52FFB                 mov     edx, [eax]
  512. .text:00D52FFD                 mov     [esp], eax
  513. .text:00D53000                 call    dword ptr [edx+0CCh]
  514. .text:00D53006                 jmp     loc_D52C45
  515. .text:00D5300B ; ---------------------------------------------------------------------------
  516. .text:00D5300B
  517. .text:00D5300B loc_D5300B:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+59Cj
  518. .text:00D5300B                                         ; CTFBotMainAction::Update(CTFBot *,float)+66Fj
  519. .text:00D5300B                 mov     eax, [ebp+arg_4]
  520. .text:00D5300E                 mov     dword ptr [eax+70h], 0BF800000h
  521. .text:00D53015                 jmp     short loc_D52FE0
  522. .text:00D53017 ; ---------------------------------------------------------------------------
  523. .text:00D53017
  524. .text:00D53017 loc_D53017:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+655j
  525. .text:00D53017                 mov     [esp], esi      ; this
  526. .text:00D5301A                 call    _ZN11CBaseEntity20CalcAbsolutePositionEv ; CBaseEntity::CalcAbsolutePosition(void)
  527. .text:00D5301F                 jmp     loc_D52EBB
  528. .text:00D53024 ; ---------------------------------------------------------------------------
  529. .text:00D53024
  530. .text:00D53024 loc_D53024:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+50Cj
  531. .text:00D53024                 mov     dword ptr [esp+4], 9
  532. .text:00D5302C                 mov     dword ptr [esp], 1
  533. .text:00D53033                 call    RandomInt
  534. .text:00D53038                 mov     [esp], esi      ; this
  535. .text:00D5303B                 mov     [ebp+var_48], eax
  536. .text:00D5303E                 call    _ZNK11CBaseEntity13GetTeamNumberEv ; CBaseEntity::GetTeamNumber(void)
  537. .text:00D53043                 cmp     eax, 2
  538. .text:00D53046                 jz      loc_D5316D
  539. .text:00D5304C                 cmp     eax, 3
  540. .text:00D5304F                 mov     edx, 2
  541. .text:00D53054                 cmovz   eax, edx
  542. .text:00D53057
  543. .text:00D53057 loc_D53057:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+912j
  544. .text:00D53057                 mov     edx, [ebp+var_48]
  545. .text:00D5305A                 mov     [esp+4], eax    ; int
  546. .text:00D5305E                 mov     eax, [ebp+var_3C]
  547. .text:00D53061                 mov     dword ptr [esp+10h], 0 ; bool
  548. .text:00D53069                 mov     dword ptr [esp+0Ch], 0 ; CTFPlayer *
  549. .text:00D53071                 mov     [esp+8], edx    ; int
  550. .text:00D53075                 mov     [esp], eax      ; this
  551. .text:00D53078                 call    _ZN15CTFPlayerShared8DisguiseEiiP9CTFPlayerb ; CTFPlayerShared::Disguise(int,int,CTFPlayer *,bool)
  552. .text:00D5307D                 jmp     loc_D52C58
  553. .text:00D53082 ; ---------------------------------------------------------------------------
  554. .text:00D53082
  555. .text:00D53082 loc_D53082:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+4FFj
  556. .text:00D53082                 mov     [esp], esi      ; this
  557. .text:00D53085                 call    _ZNK11CBaseEntity13GetTeamNumberEv ; CBaseEntity::GetTeamNumber(void)
  558. .text:00D5308A                 cmp     eax, 2
  559. .text:00D5308D                 jz      loc_D53177
  560. .text:00D53093                 cmp     eax, 3
  561. .text:00D53096                 mov     edx, 2
  562. .text:00D5309B                 cmovz   eax, edx
  563. .text:00D5309E
  564. .text:00D5309E loc_D5309E:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+91Cj
  565. .text:00D5309E                 mov     edx, [ebp+var_48]
  566. .text:00D530A1                 mov     [esp+4], eax    ; int
  567. .text:00D530A5                 mov     eax, [ebp+var_3C]
  568. .text:00D530A8                 mov     dword ptr [esp+10h], 0 ; bool
  569. .text:00D530B0                 mov     dword ptr [esp+0Ch], 0 ; CTFPlayer *
  570. .text:00D530B8                 mov     [esp+8], edx    ; int
  571. .text:00D530BC                 mov     [esp], eax      ; this
  572. .text:00D530BF                 call    _ZN15CTFPlayerShared8DisguiseEiiP9CTFPlayerb ; CTFPlayerShared::Disguise(int,int,CTFPlayer *,bool)
  573. .text:00D530C4                 mov     eax, [ebp+arg_4]
  574. .text:00D530C7                 mov     dword ptr [eax+60h], 0
  575. .text:00D530CE                 jmp     loc_D52C58
  576. .text:00D530D3 ; ---------------------------------------------------------------------------
  577. .text:00D530D3
  578. .text:00D530D3 loc_D530D3:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+67Fj
  579. .text:00D530D3                 mov     eax, [ebp+arg_4]
  580. .text:00D530D6                 add     eax, 70h
  581. .text:00D530D9                 mov     [esp], eax      ; this
  582. .text:00D530DC                 call    _ZNK13IntervalTimer3NowEv ; IntervalTimer::Now(void)
  583. .text:00D530E1                 mov     eax, [ebp+arg_4]
  584. .text:00D530E4                 fstp    [ebp+var_3C]
  585. .text:00D530E7                 movss   xmm0, [ebp+var_3C]
  586. .text:00D530EC                 movss   dword ptr [eax+70h], xmm0
  587. .text:00D530F1                 jmp     loc_D52FE0
  588. .text:00D530F6 ; ---------------------------------------------------------------------------
  589. .text:00D530F6
  590. .text:00D530F6 loc_D530F6:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+3CDj
  591. .text:00D530F6                 add     eax, 5Ch
  592. .text:00D530F9                 mov     [esp], eax      ; this
  593. .text:00D530FC                 call    _ZNK13IntervalTimer3NowEv ; IntervalTimer::Now(void)
  594. .text:00D53101                 mov     eax, [ebp+arg_4]
  595. .text:00D53104                 fstp    [ebp+var_3C]
  596. .text:00D53107                 movss   xmm0, [ebp+var_3C]
  597. .text:00D5310C                 movss   dword ptr [eax+5Ch], xmm0
  598. .text:00D53111                 jmp     loc_D52C33
  599. .text:00D53116 ; ---------------------------------------------------------------------------
  600. .text:00D53116
  601. .text:00D53116 loc_D53116:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+6B7j
  602. .text:00D53116                 mov     [esp], esi      ; this
  603. .text:00D53119                 call    _ZN11CBaseEntity20CalcAbsolutePositionEv ; CBaseEntity::CalcAbsolutePosition(void)
  604. .text:00D5311E                 test    byte ptr [esi+129h], 8
  605. .text:00D53125                 movss   xmm7, dword ptr [esi+2ACh]
  606. .text:00D5312D                 cvtps2pd xmm7, xmm7
  607. .text:00D53130                 movsd   [ebp+var_60], xmm7
  608. .text:00D53135                 jz      loc_D52F2D
  609. .text:00D5313B                 mov     [esp], esi      ; this
  610. .text:00D5313E                 call    _ZN11CBaseEntity20CalcAbsolutePositionEv ; CBaseEntity::CalcAbsolutePosition(void)
  611. .text:00D53143                 test    byte ptr [esi+129h], 8
  612. .text:00D5314A                 movss   xmm7, dword ptr [esi+2A8h]
  613. .text:00D53152                 cvtps2pd xmm7, xmm7
  614. .text:00D53155                 movsd   [ebp+var_58], xmm7
  615. .text:00D5315A                 jz      loc_D52F3D
  616. .text:00D53160                 mov     [esp], esi      ; this
  617. .text:00D53163                 call    _ZN11CBaseEntity20CalcAbsolutePositionEv ; CBaseEntity::CalcAbsolutePosition(void)
  618. .text:00D53168                 jmp     loc_D52F3D
  619. .text:00D5316D ; ---------------------------------------------------------------------------
  620. .text:00D5316D
  621. .text:00D5316D loc_D5316D:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+7E6j
  622. .text:00D5316D                 mov     eax, 3
  623. .text:00D53172                 jmp     loc_D53057
  624. .text:00D53177 ; ---------------------------------------------------------------------------
  625. .text:00D53177
  626. .text:00D53177 loc_D53177:                             ; CODE XREF: CTFBotMainAction::Update(CTFBot *,float)+82Dj
  627. .text:00D53177                 mov     eax, 3
  628. .text:00D5317C                 jmp     loc_D5309E
  629. .text:00D5317C _ZN16CTFBotMainAction6UpdateEP6CTFBotf endp