Guest User

Untitled

a guest
Nov 24th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.06 KB | None | 0 0
  1. struct s563 {
  2. unsigned char* f0;
  3. unsigned char* f4;
  4. unsigned char* f8;
  5. int16_t f12;
  6. };
  7.  
  8. void fun_48ada0(struct s563* a1) {
  9. struct s563* ebp2;
  10. uint32_t ebx3;
  11. unsigned char* eax4;
  12. unsigned char* esi5;
  13. uint32_t ebx6;
  14. unsigned char cl7;
  15. uint32_t v8;
  16. unsigned char* edx9;
  17. unsigned char* edi10;
  18. uint32_t ecx11;
  19. uint32_t ecx12;
  20. unsigned char* edx13;
  21. unsigned char* ecx14;
  22. unsigned char* edi15;
  23. unsigned char* eax16;
  24. unsigned char* esi17;
  25. unsigned char* edx18;
  26. unsigned char* edi19;
  27. uint32_t ecx20;
  28. uint32_t ecx21;
  29. uint32_t v22;
  30. uint32_t v23;
  31. unsigned char* edi24;
  32. uint32_t eax25;
  33. unsigned char* ecx26;
  34. unsigned char* esi27;
  35. unsigned char eax28;
  36. unsigned char* edi29;
  37. uint32_t ecx30;
  38. uint32_t ecx31;
  39. unsigned char* edi32;
  40. unsigned char* esi33;
  41. uint32_t v34;
  42. unsigned char* ecx35;
  43. uint32_t eax36;
  44. unsigned char* esi37;
  45. unsigned char* edi38;
  46. unsigned char eax39;
  47. uint32_t ecx40;
  48. uint32_t ecx41;
  49. unsigned char* edx42;
  50. unsigned char* esi43;
  51. unsigned char* edi44;
  52. unsigned char* esi45;
  53. int1_t zf46;
  54. unsigned char* v47;
  55. unsigned char* eax48;
  56. unsigned char* eax49;
  57. uint32_t eax50;
  58. unsigned char* eax51;
  59. unsigned char* edi52;
  60. uint32_t ecx53;
  61.  
  62. ebp2 = a1;
  63. ebx3 = 2;
  64. while (ebp2->f12 != *reinterpret_cast<int16_t*>(&ebx3)) {
  65. *reinterpret_cast<unsigned char*>(&eax4) = *ebp2->f4;
  66. esi5 = ebp2->f4 + 1;
  67. ebx6 = ebx3 + 1;
  68. ebp2->f4 = esi5;
  69. if (!(*reinterpret_cast<unsigned char*>(&eax4) & 0x80)) {
  70. if (!(*reinterpret_cast<unsigned char*>(&eax4) & 64)) {
  71. cl7 = reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(&eax4) & 31);
  72. *reinterpret_cast<unsigned char*>(&v8) = cl7;
  73. if (!(*reinterpret_cast<unsigned char*>(&eax4) & 32)) {
  74. *reinterpret_cast<uint16_t*>(&eax4) = 0;
  75. *reinterpret_cast<unsigned char*>(&eax4) = cl7;
  76. ebx3 = ebx6 + reinterpret_cast<uint32_t>(eax4);
  77. eax4 = reinterpret_cast<unsigned char*>(v8 & 0xff);
  78. edx9 = eax4;
  79. ebp2->f8 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f8) + reinterpret_cast<uint32_t>(eax4));
  80. edi10 = ebp2->f0;
  81. ecx11 = reinterpret_cast<uint32_t>(eax4) >> 2;
  82. while (ecx11) {
  83. --ecx11;
  84. *edi10 = *esi5;
  85. edi10 = edi10 + 4;
  86. esi5 = esi5 + 4;
  87. }
  88. ecx12 = reinterpret_cast<uint32_t>(edx9) & 3;
  89. while (ecx12) {
  90. --ecx12;
  91. *edi10 = *esi5;
  92. ++edi10;
  93. ++esi5;
  94. }
  95. edx13 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f0) + reinterpret_cast<uint32_t>(eax4));
  96. ecx14 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f4) + reinterpret_cast<uint32_t>(eax4));
  97. ebp2->f0 = edx13;
  98. ebp2->f4 = ecx14;
  99. } else {
  100. *reinterpret_cast<uint16_t*>(&eax4) = 0;
  101. edi15 = ebp2->f8;
  102. *reinterpret_cast<unsigned char*>(&eax4) = cl7;
  103. *reinterpret_cast<uint16_t*>(&ecx14) = *esi5;
  104. eax16 = reinterpret_cast<unsigned char*>((reinterpret_cast<uint32_t>(eax4) << 8) + reinterpret_cast<uint32_t>(ecx14));
  105. esi17 = esi5 + 1;
  106. ebp2->f4 = esi17;
  107. ebx3 = ebx6 + reinterpret_cast<uint32_t>(eax16) + 1;
  108. eax4 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(eax16) & 0xffff);
  109. edx18 = eax4;
  110. ebp2->f8 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(edi15) + reinterpret_cast<uint32_t>(eax4));
  111. edi19 = ebp2->f0;
  112. ecx20 = reinterpret_cast<uint32_t>(eax4) >> 2;
  113. while (ecx20) {
  114. --ecx20;
  115. *edi19 = *esi17;
  116. edi19 = edi19 + 4;
  117. esi17 = esi17 + 4;
  118. }
  119. ecx21 = reinterpret_cast<uint32_t>(edx18) & 3;
  120. while (ecx21) {
  121. --ecx21;
  122. *edi19 = *esi17;
  123. ++edi19;
  124. ++esi17;
  125. }
  126. edx13 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f0) + reinterpret_cast<uint32_t>(eax4));
  127. ecx14 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f4) + reinterpret_cast<uint32_t>(eax4));
  128. ebp2->f0 = edx13;
  129. ebp2->f4 = ecx14;
  130. }
  131. } else {
  132. if (!(*reinterpret_cast<unsigned char*>(&eax4) & 16)) {
  133. *reinterpret_cast<unsigned char*>(&v22) = *esi5;
  134. *reinterpret_cast<unsigned char*>(&v23) = reinterpret_cast<unsigned char>(reinterpret_cast<unsigned char>(*reinterpret_cast<unsigned char*>(&eax4) & 15) + 4);
  135. edi24 = ebp2->f8;
  136. eax25 = v22 & 0xff;
  137. *reinterpret_cast<signed char*>(&edx13) = *reinterpret_cast<signed char*>(&eax25);
  138. ecx26 = reinterpret_cast<unsigned char*>(v23 & 0xff);
  139. reinterpret_cast<signed char*>(&edx13)[1] = *reinterpret_cast<signed char*>(&edx13);
  140. ebp2->f4 = esi5 + 1;
  141. esi27 = ecx26;
  142. eax28 = reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(edx13) << 16);
  143. ebp2->f8 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(edi24) + reinterpret_cast<uint32_t>(ecx26));
  144. edi29 = ebp2->f0;
  145. *reinterpret_cast<uint16_t*>(&eax28) = *reinterpret_cast<uint16_t*>(&edx13);
  146. ebx3 = ebx6 + 1;
  147. ecx30 = reinterpret_cast<uint32_t>(ecx26) >> 2;
  148. while (ecx30) {
  149. --ecx30;
  150. *edi29 = eax28;
  151. edi29 = edi29 + 4;
  152. esi27 = esi27 + 4;
  153. }
  154. ecx31 = reinterpret_cast<uint32_t>(esi27) & 3;
  155. while (ecx31) {
  156. --ecx31;
  157. *edi29 = eax28;
  158. ++edi29;
  159. ++esi27;
  160. }
  161. eax4 = esi27;
  162. ecx14 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f0) + reinterpret_cast<uint32_t>(eax4));
  163. ebp2->f0 = ecx14;
  164. } else {
  165. *reinterpret_cast<uint16_t*>(&ecx14) = *esi5;
  166. edi32 = ebp2->f8;
  167. *reinterpret_cast<uint16_t*>(&eax4) = reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(&eax4) & 15);
  168. esi33 = esi5 + 1;
  169. ebx3 = ebx6 + 2;
  170. ebp2->f4 = esi33;
  171. *reinterpret_cast<unsigned char*>(&v34) = *esi33;
  172. ecx35 = reinterpret_cast<unsigned char*>((reinterpret_cast<uint32_t>(eax4) << 8) + reinterpret_cast<uint32_t>(ecx14) + 4 & 0xffff);
  173. ebp2->f4 = esi33 + 1;
  174. eax36 = v34 & 0xff;
  175. *reinterpret_cast<signed char*>(&edx13) = *reinterpret_cast<signed char*>(&eax36);
  176. reinterpret_cast<signed char*>(&edx13)[1] = *reinterpret_cast<signed char*>(&edx13);
  177. esi37 = ecx35;
  178. ebp2->f8 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(edi32) + reinterpret_cast<uint32_t>(ecx35));
  179. edi38 = ebp2->f0;
  180. eax39 = reinterpret_cast<unsigned char>(reinterpret_cast<uint32_t>(edx13) << 16);
  181. *reinterpret_cast<uint16_t*>(&eax39) = *reinterpret_cast<uint16_t*>(&edx13);
  182. ecx40 = reinterpret_cast<uint32_t>(ecx35) >> 2;
  183. while (ecx40) {
  184. --ecx40;
  185. *edi38 = eax39;
  186. edi38 = edi38 + 4;
  187. esi37 = esi37 + 4;
  188. }
  189. ecx41 = reinterpret_cast<uint32_t>(esi37) & 3;
  190. while (ecx41) {
  191. --ecx41;
  192. *edi38 = eax39;
  193. ++edi38;
  194. ++esi37;
  195. }
  196. eax4 = esi37;
  197. ecx14 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f0) + reinterpret_cast<uint32_t>(eax4));
  198. ebp2->f0 = ecx14;
  199. }
  200. }
  201. } else {
  202. *reinterpret_cast<uint16_t*>(&edx13) = *esi5;
  203. *reinterpret_cast<uint16_t*>(&ecx14) = reinterpret_cast<uint16_t>(*reinterpret_cast<unsigned char*>(&eax4) & 31);
  204. ecx14 = reinterpret_cast<unsigned char*>((reinterpret_cast<uint32_t>(ecx14) << 8) + reinterpret_cast<uint32_t>(edx13));
  205. edx42 = esi5 + 1;
  206. esi43 = ebp2->f0;
  207. edi44 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ecx14) & 0xffff);
  208. ebp2->f4 = edx42;
  209. esi45 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(esi43) - reinterpret_cast<uint32_t>(edi44));
  210. ebx3 = ebx6 + 1;
  211. zf46 = ebp2->f12 == *reinterpret_cast<int16_t*>(&ebx3);
  212. v47 = reinterpret_cast<unsigned char*>((reinterpret_cast<uint32_t>(eax4) >> 5 & 3) + 4);
  213. if (!zf46 && (*reinterpret_cast<unsigned char*>(&edx42) = *edx42, (*reinterpret_cast<unsigned char*>(&edx42) & 0xe0) == 96)) {
  214. do {
  215. edx42 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(edx42) & 31);
  216. v47 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(v47) + reinterpret_cast<uint32_t>(edx42));
  217. eax48 = ebp2->f4 + 1;
  218. ++ebx3;
  219. ebp2->f4 = eax48;
  220. *reinterpret_cast<unsigned char*>(&edx42) = *eax48;
  221. } while ((*reinterpret_cast<unsigned char*>(&edx42) & 0xe0) == 96);
  222. }
  223. eax4 = v47;
  224. edx13 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f8) + reinterpret_cast<uint32_t>(eax4));
  225. ebp2->f8 = edx13;
  226. if (reinterpret_cast<uint32_t>(edi44) < reinterpret_cast<uint32_t>(eax4)) {
  227. if (*reinterpret_cast<uint16_t*>(&ecx14) < 4) {
  228. if (!(reinterpret_cast<uint1_t>(reinterpret_cast<int32_t>(eax4) < reinterpret_cast<int32_t>(0)) | reinterpret_cast<uint1_t>(eax4 == 0))) {
  229. do {
  230. ecx14 = ebp2->f0;
  231. *ecx14 = *esi45;
  232. ++esi45;
  233. --eax4;
  234. ebp2->f0 = ebp2->f0 + 1;
  235. } while (eax4);
  236. }
  237. } else {
  238. __asm__("cdq ");
  239. eax49 = reinterpret_cast<unsigned char*>(reinterpret_cast<int32_t>(reinterpret_cast<uint32_t>(eax4) + (reinterpret_cast<uint32_t>(edx13) & 15)) >> 4);
  240. ecx14 = eax49;
  241. if (!(reinterpret_cast<uint1_t>(reinterpret_cast<int32_t>(ecx14) < reinterpret_cast<int32_t>(0)) | reinterpret_cast<uint1_t>(ecx14 == 0))) {
  242. eax50 = reinterpret_cast<uint32_t>(eax49 - 1 + 1);
  243. do {
  244. esi45 = esi45 + 16;
  245. *ebp2->f0 = *esi45;
  246. *reinterpret_cast<int32_t*>(ebp2->f0 + 4) = *reinterpret_cast<int32_t*>(esi45 + 0xfffffff4);
  247. *reinterpret_cast<int32_t*>(ebp2->f0 + 8) = *reinterpret_cast<int32_t*>(esi45 + 0xfffffff8);
  248. ecx14 = *reinterpret_cast<unsigned char**>(esi45 + 0xfffffffc);
  249. *reinterpret_cast<unsigned char**>(ebp2->f0 + 12) = ecx14;
  250. --eax50;
  251. ebp2->f0 = ebp2->f0 + 16;
  252. } while (eax50);
  253. }
  254. eax51 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(v47) & 0x8000000f);
  255. if (__intrinsic()) {
  256. eax51 = reinterpret_cast<unsigned char*>((reinterpret_cast<uint32_t>(eax51 - 1) | 0xfffffff0) + 1);
  257. }
  258. edx13 = eax51;
  259. eax4 = eax51 - 1;
  260. if (!(reinterpret_cast<uint1_t>(reinterpret_cast<int32_t>(edx13) < reinterpret_cast<int32_t>(0)) | reinterpret_cast<uint1_t>(edx13 == 0))) {
  261. ++eax4;
  262. do {
  263. ecx14 = ebp2->f0;
  264. *ecx14 = *esi45;
  265. ++esi45;
  266. --eax4;
  267. ebp2->f0 = ebp2->f0 + 1;
  268. } while (eax4);
  269. }
  270. }
  271. } else {
  272. edi52 = ebp2->f0;
  273. edx13 = eax4;
  274. ecx53 = reinterpret_cast<uint32_t>(eax4) >> 2;
  275. while (ecx53) {
  276. --ecx53;
  277. *edi52 = *esi45;
  278. edi52 = edi52 + 4;
  279. esi45 = esi45 + 4;
  280. }
  281. ecx14 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(edx13) & 3);
  282. while (ecx14) {
  283. --ecx14;
  284. *edi52 = *esi45;
  285. ++edi52;
  286. ++esi45;
  287. }
  288. ebp2->f0 = reinterpret_cast<unsigned char*>(reinterpret_cast<uint32_t>(ebp2->f0) + reinterpret_cast<uint32_t>(eax4));
  289. }
  290. if (ebp2->f12 == *reinterpret_cast<int16_t*>(&ebx3))
  291. break;
  292. }
  293. }
  294. return;
  295. }
Add Comment
Please, Sign In to add comment