Advertisement
Guest User

Untitled

a guest
Feb 20th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.47 KB | None | 0 0
  1. void __thiscall ReadUpdateObjectMovement(bool *this, int a2, int a3)
  2. {
  3. int v3; // ebx
  4. bool *v4; // esi
  5. int v5; // eax
  6. int v6; // eax
  7. bool v7; // zf
  8. int v8; // ebx
  9. int v9; // eax
  10. char v10; // al
  11. int v11; // edi
  12. int v12; // edi
  13. _BYTE *v13; // edi
  14. int v14; // edi
  15. int v15; // ST04_4
  16. int v16; // eax
  17. int v17; // edi
  18. int v18; // edi
  19. int v19; // edi
  20. int v20; // eax
  21. int v21; // edi
  22. int v22; // ST04_4
  23. int v23; // eax
  24. int v24; // eax
  25. int v25; // eax
  26. int v26; // ecx
  27. int v27; // eax
  28. int v28; // eax
  29. int v29; // eax
  30. int v30; // edi
  31. int v31; // edi
  32. int v32; // ST04_4
  33. int v33; // eax
  34. int v34; // edi
  35. int v35; // eax
  36. int v36; // edx
  37. int v37; // ecx
  38. unsigned int *v38; // ebx
  39. int v39; // eax
  40. int v40; // eax
  41. int v41; // edi
  42. int v42; // edi
  43. int v43; // edi
  44. int v44; // eax
  45. int v45; // eax
  46. bool v46; // al
  47. signed int v47; // xmm0_4
  48. int v48; // eax
  49. int v49; // eax
  50. char v50; // al
  51. unsigned int v51; // edx
  52. int v52; // ecx
  53. signed int v53; // xmm0_4
  54. signed int v54; // xmm0_4
  55. char v55; // al
  56. int v56; // eax
  57. int v57; // eax
  58. char v58; // al
  59. bool v59; // al
  60. int v60; // eax
  61. bool v61; // al
  62. int v62; // eax
  63. bool v63; // al
  64. int v64; // eax
  65. int v65; // eax
  66. bool v66; // al
  67. int v67; // eax
  68. unsigned int v68; // eax
  69. unsigned int v69; // edi
  70. unsigned int v70; // edi
  71. int v71; // edi
  72. int v72; // eax
  73. int v73; // xmm0_4
  74. int v74; // edi
  75. int v75; // eax
  76. unsigned int v76; // edi
  77. int v77; // edi
  78. int v78; // eax
  79. int v79; // eax
  80. unsigned int v80; // edi
  81. int v81; // eax
  82. int v82; // edi
  83. int v83; // ebx
  84. char v84; // al
  85. int v85; // eax
  86. int v86; // eax
  87. int v87; // eax
  88. int v88; // eax
  89. int v89; // eax
  90. char v90; // al
  91. int v91; // eax
  92. char v92; // al
  93. int v93; // eax
  94. int v94; // eax
  95. int v95; // eax
  96. int v96; // eax
  97. int v97; // eax
  98. int v98; // eax
  99. char v99; // al
  100. char v100; // al
  101. __int16 v101; // ax
  102. int v102; // eax
  103. __int16 v103; // ax
  104. int v104; // eax
  105. __int16 v105; // ax
  106. __int16 v106; // ax
  107. int *v107; // eax
  108. char v108; // al
  109. int v109; // eax
  110. int v110; // eax
  111. char v111; // al
  112. char v112; // al
  113. char v113; // al
  114. char v114; // al
  115. char v115; // al
  116. __int16 v116; // ax
  117. int v117; // eax
  118. char v118; // al
  119. __int16 v119; // ax
  120. char v120; // al
  121. unsigned int *v121; // edi
  122. int v122; // ebx
  123. _DWORD *v123; // ebx
  124. int v124; // ebx
  125. int v125; // ebx
  126. int v126; // ebx
  127. int v127; // eax
  128. int v128; // ebx
  129. int *v129; // ebx
  130. int v130; // eax
  131. int v131; // ebx
  132. int v132; // edi
  133. int v133; // edx
  134. unsigned int v134; // edi
  135. int v135; // [esp+Ch] [ebp-38h]
  136. __int16 v136; // [esp+10h] [ebp-34h]
  137. int v137; // [esp+14h] [ebp-30h]
  138. int v138; // [esp+18h] [ebp-2Ch]
  139. unsigned int v139; // [esp+1Ch] [ebp-28h]
  140. int v140; // [esp+20h] [ebp-24h]
  141. int v141; // [esp+24h] [ebp-20h]
  142. int v142; // [esp+28h] [ebp-1Ch]
  143. int v143; // [esp+2Ch] [ebp-18h]
  144. unsigned int v144; // [esp+30h] [ebp-14h]
  145. unsigned int v145; // [esp+34h] [ebp-10h]
  146. unsigned int v146; // [esp+38h] [ebp-Ch]
  147. int v147; // [esp+3Ch] [ebp-8h]
  148. bool v148; // [esp+43h] [ebp-1h]
  149. _DWORD *v149; // [esp+4Ch] [ebp+8h]
  150.  
  151. v3 = a2;
  152. v4 = this;
  153. v135 = a2;
  154. v136 = 2048;
  155. this[676] = ReadBit(&v135) != 0;
  156. v4[488] = ReadBit(&v135) != 0; // hasVehicleData
  157. v4[1044] = ReadBit(&v135) != 0;
  158. v4[512] = ReadBit(&v135) != 0; // if ((p_Flags & UPDATEFLAG_ROTATION) && l_GameObject)
  159. *v4 = ReadBit(&v135) != 0;
  160. v4[368] = ReadBit(&v135) != 0; // isAlive
  161. v4[1032] = ReadBit(&v135) != 0; // hasSceneObjectData
  162. v4[2] = ReadBit(&v135) != 0;
  163. v4[668] = ReadBit(&v135) != 0; // has Area Trigger
  164. v4[680] = ReadBit(&v135) != 0; // has Update Self
  165. v4[681] = ReadBit(&v135) != 0;
  166. v4[1] = ReadBit(&v135) != 0;
  167. v4[424] = ReadBit(&v135) != 0; // hasGameObjectData
  168. v4[476] = ReadBit(&v135) != 0; // has Transport
  169. v4[498] = ReadBit(&v135) != 0; // hasAnimKits
  170. v4[448] = ReadBit(&v135) != 0; // hasStationaryPosition
  171. v4[464] = ReadBit(&v135) != 0; // hasTarget
  172. v4[3] = ReadBit(&v135) != 0;
  173. LOBYTE(v142) = 0;
  174. v5 = sub_6968CF(v142);
  175. ReadBits((unsigned int *)v4 + 267, v5);
  176. v4[810] = ReadBit(&v135) != 0;
  177. v6 = ReadBit(&v135);
  178. v7 = v4[1032] == 0;
  179. v4[1064] = v6 != 0;
  180. if...
  181. if... // if (bit428)
  182. // bits418 = packet.ReadBits(22);
  183. if... // if (hasTransportPosition)
  184. if... // if (isLiving)
  185. if... // areatrigger
  186. if... // attacking target
  187. if ( v4[498] ) // anim kits
  188. {
  189. *((_WORD *)v4 + 247) = ReadBit(&v135) == 0;
  190. *((_WORD *)v4 + 248) = ReadBit(&v135) == 0;
  191. *((_WORD *)v4 + 246) = ReadBit(&v135) == 0;
  192. }
  193. if ( v4[810] )
  194. {
  195. LOBYTE(v137) = 0;
  196. *(_DWORD *)(v4 + 682) = sub_6657B0(v137);
  197. }
  198. v144 = 0;
  199. if... // transportFrames
  200. if... // areaTrigger
  201. if... // isalive/updateflagliving
  202. if... // sceneObjectData
  203. v131 = a2;
  204. if ( v4[464] ) // hasTarget
  205. {
  206. if ( v4[461] )
  207. v4[461] ^= ReadBitStreamPos(a2);
  208. if ( v4[457] )
  209. v4[457] ^= ReadBitStreamPos(a2);
  210. if ( v4[458] )
  211. v4[458] ^= ReadBitStreamPos(a2);
  212. if ( v4[456] )
  213. v4[456] ^= ReadBitStreamPos(a2);
  214. if ( v4[459] )
  215. v4[459] ^= ReadBitStreamPos(a2);
  216. if ( v4[460] )
  217. v4[460] ^= ReadBitStreamPos(a2);
  218. if ( v4[462] )
  219. v4[462] ^= ReadBitStreamPos(a2);
  220. if ( v4[463] )
  221. v4[463] ^= ReadBitStreamPos(a2);
  222. }
  223. if ( v4[448] ) // hasStationaryPosition
  224. {
  225. *((float *)v4 + 111) = ReadFloat(a2);
  226. *((float *)v4 + 108) = ReadFloat(a2);
  227. *((float *)v4 + 109) = ReadFloat(a2);
  228. *((float *)v4 + 110) = ReadFloat(a2);
  229. }
  230. if ( v4[424] ) // hasGameObjectData
  231. {
  232. v4[400] = ReadBitStreamPos(a2);
  233. *((float *)v4 + 96) = ReadFloat(a2);
  234. if ( v4[377] )
  235. v4[377] ^= ReadBitStreamPos(a2);
  236. if ( v4[376] )
  237. v4[376] ^= ReadBitStreamPos(a2);
  238. if ( v4[378] )
  239. v4[378] ^= ReadBitStreamPos(a2);
  240. if ( v4[382] )
  241. v4[382] ^= ReadBitStreamPos(a2);
  242. if ( v4[381] )
  243. v4[381] ^= ReadBitStreamPos(a2);
  244. if ( v4[380] )
  245. v4[380] ^= ReadBitStreamPos(a2);
  246. if ( v4[420] )
  247. *((_DWORD *)v4 + 104) = ReadUInt32(a2);
  248. if ( v4[383] )
  249. v4[383] ^= ReadBitStreamPos(a2);
  250. *((float *)v4 + 99) = ReadFloat(a2);
  251. *((float *)v4 + 98) = ReadFloat(a2);
  252. *((float *)v4 + 97) = ReadFloat(a2);
  253. if ( v4[412] )
  254. *((_DWORD *)v4 + 102) = ReadUInt32(a2);
  255. if ( v4[379] )
  256. v4[379] ^= ReadBitStreamPos(a2);
  257. *((_DWORD *)v4 + 101) = ReadUInt32(a2);
  258. }
  259. if ( v4[476] )
  260. *((_DWORD *)v4 + 118) = ReadUInt32(a2);
  261. if ( v4[676] )
  262. *((_DWORD *)v4 + 168) = ReadUInt32(a2);
  263. if ( v4[810] )
  264. {
  265. v132 = *(_DWORD *)(v4 + 682);
  266. sub_40F63D(v4 + 682, *(_DWORD *)(v4 + 682));
  267. v4[v132 + 682] = 0;
  268. }
  269. if ( v4[512] ) // if ((p_Flags & UPDATEFLAG_ROTATION) && l_GameObject)
  270. {
  271. *((_DWORD *)v4 + 126) = ReadUInt64(a2);
  272. *((_DWORD *)v4 + 127) = v133;
  273. }
  274. if ( v4[488] ) // vechicle
  275. {
  276. *((_DWORD *)v4 + 120) = ReadUInt32(a2);
  277. *((float *)v4 + 121) = ReadFloat(a2);
  278. }
  279. if ( v4[1044] ) // hasServerTime
  280. *((_DWORD *)v4 + 260) = ReadUInt32(a2);
  281. if ( v4[498] )
  282. {
  283. if ( *((_WORD *)v4 + 246) )
  284. *((_WORD *)v4 + 246) = ReadUInt16(a2);
  285. if ( *((_WORD *)v4 + 247) )
  286. *((_WORD *)v4 + 247) = ReadUInt16(a2);
  287. if ( *((_WORD *)v4 + 248) )
  288. *((_WORD *)v4 + 248) = ReadUInt16(a2);
  289. }
  290. if ( v4[1064] )
  291. {
  292. v134 = 0;
  293. if ( *((_DWORD *)v4 + 262) )
  294. {
  295. do
  296. {
  297. v149 = (_DWORD *)(*((_DWORD *)v4 + 263) + 4 * v134++);
  298. *v149 = ReadUInt32(v131);
  299. }
  300. while ( v134 < *((_DWORD *)v4 + 262) );
  301. }
  302. }
  303. v7 = v4[368] == 0;
  304. v135 = v131;
  305. v136 = 2048;
  306. if ( !v7 )
  307. {
  308. if ( v4[344] && v4[336] && v4[228] == 3 )
  309. {
  310. v4[318] = ReadBit(&v135);
  311. v4[319] = ReadBit(&v135);
  312. v4[315] = ReadBit(&v135);
  313. v4[312] = ReadBit(&v135);
  314. v4[317] = ReadBit(&v135);
  315. v4[313] = ReadBit(&v135);
  316. v4[316] = ReadBit(&v135);
  317. v4[314] = ReadBit(&v135);
  318. }
  319. if ( v4[368] && v4[344] && v4[336] && v4[228] == 3 )
  320. {
  321. if ( v4[316] )
  322. v4[316] ^= ReadBitStreamPos(v131);
  323. if ( v4[314] )
  324. v4[314] ^= ReadBitStreamPos(v131);
  325. if ( v4[317] )
  326. v4[317] ^= ReadBitStreamPos(v131);
  327. if ( v4[318] )
  328. v4[318] ^= ReadBitStreamPos(v131);
  329. if ( v4[312] )
  330. v4[312] ^= ReadBitStreamPos(v131);
  331. if ( v4[319] )
  332. v4[319] ^= ReadBitStreamPos(v131);
  333. if ( v4[313] )
  334. v4[313] ^= ReadBitStreamPos(v131);
  335. if ( v4[315] )
  336. v4[315] ^= ReadBitStreamPos(v131);
  337. }
  338. }
  339. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement