Advertisement
Martymoose98

FISHY

Nov 9th, 2018
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.07 KB | None | 0 0
  1. // write access to const memory has been detected, the output may be wrong!
  2. void __fastcall sub_1404531A0(__int64 a1)
  3. {
  4. __int64 v1; // rsi
  5. int v2; // edi
  6. signed __int64 v3; // rbx
  7. int v4; // eax
  8. __int64 v5; // rdx
  9. int v6; // er9
  10. float v7; // eax
  11. unsigned int v8; // ecx
  12. __int64 v9; // rax
  13. int v10; // er8
  14. int v11; // ecx
  15. int v12; // ebx
  16. __int64 v13; // rax
  17. EntityInfo *v14; // rax
  18. __int64 v15; // rdi
  19. __int64 **v16; // rax
  20. int v17; // ebx
  21. int v18; // [rsp+30h] [rbp-168h]
  22. const char *v19; // [rsp+40h] [rbp-158h]
  23. int v20; // [rsp+48h] [rbp-150h]
  24. int v21; // [rsp+4Ch] [rbp-14Ch]
  25. __int64 v22; // [rsp+50h] [rbp-148h]
  26. __int64 v23; // [rsp+58h] [rbp-140h]
  27. signed int v24; // [rsp+60h] [rbp-138h]
  28. __int64 v25; // [rsp+68h] [rbp-130h]
  29. __int128 v26; // [rsp+70h] [rbp-128h]
  30. __int128 v27; // [rsp+80h] [rbp-118h]
  31. __int64 v28; // [rsp+90h] [rbp-108h]
  32. _BYTE v29[160]; // [rsp+E0h] [rbp-B8h]
  33.  
  34. v1 = a1;
  35. v2 = 0;
  36. v3 = 0i64;
  37. v4 = sub_1405C7880(a1, *(_DWORD *)(a1 + 0x3EC8), *(_DWORD *)(a1 + 0x3ECC), (__int64)v29, (__int64)&v19);
  38. v5 = v4;
  39. if ( v4 > 0 )
  40. {
  41. do
  42. {
  43. *((_DWORD *)&v19 + v3) += v2;
  44. v2 = *((_DWORD *)&v19 + v3++);
  45. }
  46. while ( v3 < v4 );
  47. }
  48. v6 = 0;
  49. LODWORD(v7) = 1664525 * LODWORD(g_dwSeed) + 1013904223;
  50. g_dwSeed = v7;
  51. v8 = (unsigned int)((LODWORD(v7) >> 16) * ((signed __int16)(v2 - 1) + 1)) >> 16;
  52. v9 = 0i64;
  53. v10 = (signed __int16)v8;
  54. v11 = 0;
  55. if ( v5 > 0 )
  56. {
  57. while ( *((_DWORD *)&v19 + v9) < v10 )
  58. {
  59. ++v9;
  60. ++v11;
  61. if ( v9 >= v5 )
  62. goto LABEL_8;
  63. }
  64. v6 = v11;
  65. }
  66. LABEL_8:
  67. v12 = 0x4F000;
  68. switch ( *(_DWORD *)&v29[4 * v6] )
  69. {
  70. case 0xF001:
  71. v12 = 323585;
  72. break;
  73. case 0xF002:
  74. v12 = 323586;
  75. break;
  76. case 0xF003:
  77. v12 = 323587;
  78. break;
  79. case 0xF004:
  80. v12 = 323588;
  81. break;
  82. case 0xF005:
  83. v12 = 323589;
  84. break;
  85. case 0xF006:
  86. v12 = 323590;
  87. break;
  88. case 0xF007:
  89. v12 = 323591;
  90. break;
  91. case 0xF008:
  92. v12 = 323592;
  93. break;
  94. case 0xF009:
  95. v12 = 323593;
  96. break;
  97. case 0xF010:
  98. v12 = 323600;
  99. break;
  100. case 0xF011:
  101. v12 = 323601;
  102. break;
  103. case 0xF012:
  104. v12 = 323602;
  105. break;
  106. case 0xF013:
  107. v12 = 323603;
  108. break;
  109. case 0xF014:
  110. v12 = 0x4F014;
  111. break;
  112. case 0xF015:
  113. v12 = 0x4F015;
  114. break;
  115. case 0xF016:
  116. v12 = 0x4F016;
  117. break;
  118. case 0xF017:
  119. v12 = 0x4F017;
  120. break;
  121. case 0xF018:
  122. v12 = 323608;
  123. break;
  124. case 0xF019:
  125. v12 = 323609;
  126. break;
  127. case 0xF01A:
  128. v12 = 323610;
  129. break;
  130. case 0xF020:
  131. v12 = 323616;
  132. break;
  133. case 0xF021:
  134. v12 = 323617;
  135. break;
  136. case 0xF022:
  137. v12 = 323618;
  138. break;
  139. case 0xF023:
  140. v12 = 323619;
  141. break;
  142. case 0xF024:
  143. v12 = 323620;
  144. break;
  145. case 0xF025:
  146. v12 = 323621;
  147. break;
  148. case 0xF026:
  149. v12 = 323622;
  150. break;
  151. case 0xF027:
  152. v12 = 323623;
  153. break;
  154. case 0xF028:
  155. v12 = 323624;
  156. break;
  157. case 0xF029:
  158. v12 = 0x4F029;
  159. break;
  160. case 0xF02A:
  161. v12 = 0x4F02A;
  162. break;
  163. case 0xF02B:
  164. v12 = 323627;
  165. break;
  166. case 0xF02C:
  167. v12 = 323628;
  168. break;
  169. case 0xF02D:
  170. v12 = 323629;
  171. break;
  172. case 0xF02E:
  173. v12 = 323630;
  174. break;
  175. case 0xF030:
  176. v12 = 323632;
  177. break;
  178. case 0xF031:
  179. v12 = 323633;
  180. break;
  181. case 0xF032:
  182. v12 = 323634;
  183. break;
  184. case 0xF033:
  185. v12 = 323635;
  186. break;
  187. case 0xF034:
  188. v12 = 323636;
  189. break;
  190. case 0xF040:
  191. v18 = *(_DWORD *)(v1 + 0xC80);
  192. v13 = (__int64)GetEntityFromHandle(&v18);
  193. if ( v13 )
  194. v12 = (*(_DWORD *)(v13 + 0x5B8) == 0x10200) + 0x4F040;
  195. break;
  196. case 0xF042:
  197. v12 = 0x4F042;
  198. break;
  199. default:
  200. break;
  201. }
  202. v23 = 0i64;
  203. _mm_store_si128((__m128i *)&v26, (__m128i)0i64);
  204. _mm_store_si128((__m128i *)&v27, (__m128i)0i64);
  205. v19 = "BehaviorFunnel";
  206. v24 = 1;
  207. v25 = 0i64;
  208. v28 = 0i64;
  209. v20 = v12;
  210. v21 = v12;
  211. v22 = 0i64;
  212. v14 = CSceneEntitySystem::CreateEntity((__int64)&g_pSceneEntityHeap, (Create_t *)&v19);
  213. if ( v14 )
  214. {
  215. *(_DWORD *)(v1 + 16088) = v14->m_hParent;
  216. if ( !(v14->m_Flags & 3) )
  217. {
  218. v15 = (__int64)v14->m_pParent;
  219. if ( v15 && (v16 = (__int64 **)(*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v15 + 24i64))(v15)) != 0i64 )
  220. {
  221. while ( off_1410814C0 != (__int64 ***)v16 )
  222. {
  223. v16 = (__int64 **)*v16;
  224. if ( !v16 )
  225. goto LABEL_58;
  226. }
  227. }
  228. else
  229. {
  230. LABEL_58:
  231. v15 = 0i64;
  232. }
  233. if ( v15 )
  234. sub_14049E490(v15, *(_QWORD *)(v1 + 1552));
  235. }
  236. }
  237. *(_DWORD *)(v1 + 16084) = 0;
  238. v17 = v12 - 323610;
  239. if ( !v17 || v17 == 19 )
  240. *(_DWORD *)(v1 + 16084) = 1;
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement