Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.71 KB | None | 0 0
  1.  
  2. /* WARNING: Could not reconcile some variable overlaps */
  3.  
  4. ulong bitstream_6(undefined *param_1,undefined *param_2,int param_3,int *param_4,int *param_5,
  5. ulong *param_6,GetBitContext *gb,long param_8)
  6.  
  7. {
  8. undefined4 uVar1;
  9. float fVar2;
  10. byte bVar3;
  11. byte bVar4;
  12. undefined auVar5 [16];
  13. undefined auVar6 [16];
  14. undefined auVar7 [16];
  15. int iVar8;
  16. ulong uVar9;
  17. long lVar10;
  18. uint uVar11;
  19. ulong uVar12;
  20. ulong uVar13;
  21. byte *pbVar14;
  22. ulong idx;
  23. long lVar15;
  24. ulong idx2;
  25. ac_item *paVar16;
  26. ulong uVar17;
  27. int iVar18;
  28. ulong uVar19;
  29. undefined auVar20 [32];
  30. undefined auVar21 [16];
  31. undefined auVar22 [32];
  32. undefined auVar23 [32];
  33. undefined auVar24 [32];
  34. undefined auVar25 [32];
  35. undefined auVar26 [32];
  36. undefined auVar27 [32];
  37. undefined auVar28 [32];
  38. undefined auVar29 [32];
  39. undefined auVar30 [32];
  40. undefined auVar31 [32];
  41. undefined auVar32 [32];
  42. float local_160 [64];
  43.  
  44. /* WARNING: Load size is inaccurate */
  45. auVar20 = vmovaps_avx(*(undefined *)(param_8 + 0x4c0));
  46. uVar17 = *param_6;
  47. idx = param_6[1];
  48. uVar12 = idx ^ uVar17;
  49. uVar9 = (uVar17 << 0x37 | uVar17 >> 9) ^ uVar12;
  50. idx2 = uVar12 << 0xe ^ uVar9;
  51. uVar12 = uVar12 << 0x24 | uVar12 >> 0x1c;
  52. uVar13 = uVar12 ^ idx2;
  53. *param_6 = uVar13 << 0xe ^ (idx2 >> 9 | uVar9 << 0x37) ^ uVar13;
  54. param_6[1] = uVar13 << 0x24 | uVar13 >> 0x1c;
  55. auVar5 = vmovq_avx(uVar12 + idx2);
  56. auVar6 = vmovq_avx(idx + uVar17);
  57. auVar7 = vpunpcklqdq_avx(auVar6,auVar5);
  58. auVar5 = vpand_avx(auVar7,(undefined [16])0x3f3f3f3f3f3f3f3f);
  59. auVar6 = vpcmpgtb_avx(auVar5,(undefined [16])0x3939393939393939);
  60. auVar6 = vpand_avx(auVar6,(undefined [16])0x3939393939393939);
  61. auVar6 = vpsubusb_avx(auVar5,auVar6);
  62. auVar5 = vpcmpgtb_avx(auVar6,(undefined [16])0x2d2d2d2d2d2d2d2d);
  63. auVar5 = vpand_avx(auVar5,(undefined [16])0x2d2d2d2d2d2d2d2d);
  64. auVar6 = vpsubusb_avx(auVar6,auVar5);
  65. auVar5 = vpcmpgtb_avx(auVar6,(undefined [16])0x1a1a1a1a1a1a1a1a);
  66. auVar5 = vpand_avx(auVar5,(undefined [16])0x1b1b1b1b1b1b1b1b);
  67. auVar5 = vpsubusb_avx(auVar6,auVar5);
  68. auVar5 = vpsignb_avx(auVar5,auVar7);
  69. if ((false) || (false)) {
  70. auVar22 = ZEXT1632(auVar5);
  71. }
  72. else {
  73. auVar22 = CONCAT1616(auVar5,auVar5);
  74. }
  75. auVar5 = vpinsrb_avx(auVar5,0,0);
  76. auVar22 = vpblendd_avx2(auVar22,ZEXT1632(auVar5),0xf);
  77. auVar21 = SUB3216(auVar22,0);
  78. auVar5 = vpshufb_avx(auVar21,(undefined [16])0x90000000100);
  79. auVar6 = vpshufb_avx(auVar21,(undefined [16])0xd0c00000504);
  80. auVar7 = vpshufb_avx(auVar21,(undefined [16])0xb0a00000302);
  81. auVar21 = vpshufb_avx(auVar21,(undefined [16])0xe00000006);
  82. auVar22 = vpmovzxbd_avx2(auVar5);
  83. auVar22 = vpslld_avx2(auVar22,0x18);
  84. auVar22 = vpsrad_avx2(auVar22,0x18);
  85. auVar22 = vcvtdq2ps_avx(auVar22);
  86. auVar22 = vmulps_avx(auVar20,auVar22);
  87. auVar22 = vmovaps_avx(auVar22);
  88. auVar23 = vpmovzxbd_avx2(auVar6);
  89. auVar23 = vpslld_avx2(auVar23,0x18);
  90. auVar23 = vpsrad_avx2(auVar23,0x18);
  91. auVar23 = vcvtdq2ps_avx(auVar23);
  92. auVar23 = vmulps_avx(auVar20,auVar23);
  93. local_160._32_32_ = vmovaps_avx(auVar23);
  94. auVar23 = vpmovzxbd_avx2(auVar7);
  95. auVar23 = vpslld_avx2(auVar23,0x18);
  96. auVar23 = vpsrad_avx2(auVar23,0x18);
  97. auVar23 = vcvtdq2ps_avx(auVar23);
  98. auVar23 = vmulps_avx(auVar20,auVar23);
  99. local_160._64_32_ = vmovaps_avx(auVar23);
  100. auVar23 = vpmovzxbd_avx2(auVar21);
  101. auVar23 = vpslld_avx2(auVar23,0x18);
  102. auVar23 = vpsrad_avx2(auVar23,0x18);
  103. auVar23 = vcvtdq2ps_avx(auVar23);
  104. auVar20 = vmulps_avx(auVar20,auVar23);
  105. local_160._96_32_ = vmovaps_avx(auVar20);
  106. auVar20 = vxorps_avx(auVar20,auVar20);
  107. local_160._224_32_ = vmovaps_avx(auVar20);
  108. local_160._192_32_ = vmovaps_avx(auVar20);
  109. local_160._160_32_ = vmovaps_avx(auVar20);
  110. local_160._128_32_ = vmovaps_avx(auVar20);
  111. iVar8 = gb->bitcache_size;
  112. uVar17 = gb->bitcache;
  113. iVar18 = iVar8;
  114. if (iVar8 < 0x20) {
  115. idx = gb->cur_bit_pos;
  116. uVar11 = (uint)idx & 7;
  117. iVar18 = 0x40 - uVar11;
  118. uVar9 = *(ulong *)(gb->bitstream_start + (idx >> 3));
  119. uVar17 = uVar17 | ((uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |
  120. (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |
  121. (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
  122. (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38) << (sbyte)uVar11) >>
  123. ((byte)iVar8 & 0x3f);
  124. gb->cur_bit_pos = (long)(iVar18 - iVar8) + idx;
  125. gb->bitcache = uVar17;
  126. gb->bitcache_size = iVar18;
  127. }
  128. pbVar14 = codelen_table0 + (uVar17 >> 0x38) * 4;
  129. if (codelen_table0[(uVar17 >> 0x38) * 4 + 3] == 0) {
  130. pbVar14 = codelen_table0 +
  131. (ulong)((uint)(uVar17 >> 0x2e) & 0x3fc) + (long)(char)*pbVar14 * 0x400;
  132. }
  133. idx = 0;
  134. iVar18 = iVar18 - (uint)pbVar14[3];
  135. if (iVar18 < 0) {
  136. iVar18 = 0;
  137. }
  138. uVar17 = uVar17 << (pbVar14[3] & 0x3f);
  139. gb->bitcache = uVar17;
  140. gb->bitcache_size = iVar18;
  141. uVar9 = gb->cur_bit_pos;
  142. uVar12 = gb->bits_end;
  143. uVar13 = 0;
  144. if (uVar9 - (long)iVar18 <= uVar12) {
  145. bVar3 = pbVar14[1];
  146. bVar4 = *pbVar14;
  147. auVar5 = vmovq_avx(0x40 - (long)(int)(char)bVar4);
  148. auVar6 = vmovq_avx(uVar17);
  149. auVar6 = vpbroadcastq_avx2(auVar6);
  150. auVar5 = vpsrlq_avx(auVar6,auVar5);
  151. uVar11 = vmovd_avx(auVar5);
  152. uVar17 = uVar17 << (bVar4 & 0x3f);
  153. gb->bitcache = uVar17;
  154. gb->bitcache_size = iVar18 - (int)(char)bVar4;
  155. iVar8 = (int)dc_table[(ulong)(uVar11 >> (bVar3 & 0x1f)) * 0x10 + (ulong)(pbVar14[2] >> 4)] +
  156. (bit_masks[bVar3] & uVar11) + *param_4;
  157. auVar5 = vcvtsi2ss_avx(auVar5,iVar8);
  158. auVar5 = vmulss_avx(auVar5,ZEXT416(*(uint *)(param_8 + 0x200)));
  159. auVar20 = ZEXT1632(auVar5);
  160. uVar1 = vmovss_avx(auVar5);
  161. local_160._0_32_ = CONCAT284(SUB3228(auVar22 >> 0x20,0),uVar1);
  162. *param_4 = iVar8;
  163. idx2 = (ulong)(uint)gb->bitcache_size;
  164. while( true ) {
  165. iVar18 = (int)idx2;
  166. iVar8 = iVar18;
  167. if (iVar18 < 0x20) {
  168. uVar13 = *(ulong *)(gb->bitstream_start + (uVar9 >> 3));
  169. uVar11 = (uint)uVar9 & 7;
  170. iVar8 = 0x40 - uVar11;
  171. uVar17 = uVar17 | ((uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |
  172. (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |
  173. (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |
  174. (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38) << (sbyte)uVar11) >>
  175. ((byte)idx2 & 0x3f);
  176. uVar9 = uVar9 + (long)(iVar8 - iVar18);
  177. gb->cur_bit_pos = uVar9;
  178. gb->bitcache = uVar17;
  179. gb->bitcache_size = iVar8;
  180. }
  181. uVar19 = uVar17 >> 0x38;
  182. uVar13 = 0x10;
  183. bVar3 = ac_index_table[uVar19].field_0x1;
  184. paVar16 = ac_index_table;
  185. uVar11 = (uint)(uVar17 >> 0x20);
  186. while (bVar3 == 0) {
  187. idx2 = (ulong)((ushort)paVar16[uVar19].field_0x2 >> 4);
  188. paVar16 = ac_index_table + idx2 * 0x100;
  189. uVar19 = (ulong)(byte)(uVar11 >> ((byte)uVar13 & 0x1f));
  190. uVar13 = (ulong)((int)uVar13 - 8);
  191. bVar3 = *(byte *)(idx2 * 0x400 + 0x7d3001 + uVar19 * 4);
  192. }
  193. bVar3 = paVar16[uVar19].field_0x1;
  194. uVar13 = 0;
  195. idx2 = (ulong)(iVar8 - (uint)bVar3);
  196. if ((int)(iVar8 - (uint)bVar3) < 0) {
  197. idx2 = uVar13;
  198. }
  199. uVar17 = uVar17 << (bVar3 & 0x3f);
  200. gb->bitcache = uVar17;
  201. iVar8 = (int)idx2;
  202. gb->bitcache_size = iVar8;
  203. if (uVar12 < uVar9 - (long)iVar8) goto LAB_0051776e;
  204. if ((char)paVar16[uVar19].field_0x0 < '\0') break;
  205. idx = (ulong)((int)idx + 1 + (uint)paVar16[uVar19].field_0x0 & 0x3f);
  206. if (ac_table[(uint)((ushort)paVar16[uVar19].field_0x2 >> 4) +
  207. (uVar11 >> (0x20 - bVar3 & 0x1f) &
  208. (uint)bit_masks[(uint)(ushort)paVar16[uVar19].field_0x2 & 0xf])] != 0) {
  209. auVar5 = vcvtsi2ss_avx(SUB3216(auVar20,0),
  210. (int)ac_table[(uint)((ushort)paVar16[uVar19].field_0x2 >> 4) +
  211. (uVar11 >> (0x20 - bVar3 & 0x1f) &
  212. (uint)bit_masks[(uint)(ushort)paVar16[uVar19].field_0x2
  213. & 0xf])]);
  214. auVar5 = vmulss_avx(auVar5,ZEXT416(*(uint *)(param_8 + 0x200 + (ulong)zigzag1[idx] * 4)));
  215. auVar20 = ZEXT1632(auVar5);
  216. fVar2 = (float)vmovss_avx(auVar5);
  217. local_160[(ulong)zigzag1[idx]] = fVar2;
  218. }
  219. }
  220. iVar18 = iVar8;
  221. if (iVar8 < 0x20) {
  222. idx = *(ulong *)(gb->bitstream_start + (uVar9 >> 3));
  223. uVar11 = (uint)uVar9 & 7;
  224. iVar18 = 0x40 - uVar11;
  225. uVar17 = uVar17 | ((idx >> 0x38 | (idx & 0xff000000000000) >> 0x28 |
  226. (idx & 0xff0000000000) >> 0x18 | (idx & 0xff00000000) >> 8 |
  227. (idx & 0xff000000) << 8 | (idx & 0xff0000) << 0x18 |
  228. (idx & 0xff00) << 0x28 | idx << 0x38) << (sbyte)uVar11) >>
  229. ((byte)idx2 & 0x3f);
  230. uVar9 = uVar9 + (long)(iVar18 - iVar8);
  231. gb->cur_bit_pos = uVar9;
  232. gb->bitcache = uVar17;
  233. gb->bitcache_size = iVar18;
  234. }
  235. pbVar14 = codelen_table0 + (uVar17 >> 0x38) * 4;
  236. if (codelen_table0[(uVar17 >> 0x38) * 4 + 3] == 0) {
  237. pbVar14 = codelen_table0 +
  238. (ulong)((uint)(uVar17 >> 0x2e) & 0x3fc) + (long)(char)*pbVar14 * 0x400;
  239. }
  240. uVar13 = 0;
  241. iVar18 = iVar18 - (uint)pbVar14[3];
  242. if (iVar18 < 0) {
  243. iVar18 = 0;
  244. }
  245. uVar17 = uVar17 << (pbVar14[3] & 0x3f);
  246. gb->bitcache = uVar17;
  247. gb->bitcache_size = iVar18;
  248. if (uVar9 - (long)iVar18 <= uVar12) {
  249. bVar3 = pbVar14[1];
  250. bVar4 = *pbVar14;
  251. auVar5 = vmovq_avx(0x40 - (long)(int)(char)bVar4);
  252. auVar6 = vmovq_avx(uVar17);
  253. auVar6 = vpbroadcastq_avx2(auVar6);
  254. auVar5 = vpsrlq_avx(auVar6,auVar5);
  255. uVar11 = vmovd_avx(auVar5);
  256. uVar17 = uVar17 << (bVar4 & 0x3f);
  257. gb->bitcache = uVar17;
  258. gb->bitcache_size = iVar18 - (int)(char)bVar4;
  259. iVar8 = (int)dc_table[(ulong)(uVar11 >> (bVar3 & 0x1f)) * 0x10 + (ulong)(pbVar14[2] >> 4)] +
  260. (bit_masks[bVar3] & uVar11) + *param_5;
  261. auVar5 = vcvtsi2ss_avx(auVar5,iVar8);
  262. auVar5 = vmulss_avx(auVar5,ZEXT416(*(uint *)(param_8 + 0x210)));
  263. auVar20 = ZEXT1632(auVar5);
  264. uVar1 = vmovss_avx(auVar5);
  265. *param_5 = iVar8;
  266. idx = (ulong)(uint)gb->bitcache_size;
  267. idx2 = 0x20;
  268. while( true ) {
  269. iVar18 = (int)idx;
  270. iVar8 = iVar18;
  271. if (iVar18 < 0x20) {
  272. uVar13 = *(ulong *)(gb->bitstream_start + (uVar9 >> 3));
  273. uVar11 = (uint)uVar9 & 7;
  274. iVar8 = 0x40 - uVar11;
  275. uVar17 = uVar17 | ((uVar13 >> 0x38 | (uVar13 & 0xff000000000000) >> 0x28 |
  276. (uVar13 & 0xff0000000000) >> 0x18 | (uVar13 & 0xff00000000) >> 8 |
  277. (uVar13 & 0xff000000) << 8 | (uVar13 & 0xff0000) << 0x18 |
  278. (uVar13 & 0xff00) << 0x28 | uVar13 << 0x38) << (sbyte)uVar11) >>
  279. ((byte)idx & 0x3f);
  280. uVar9 = uVar9 + (long)(iVar8 - iVar18);
  281. gb->cur_bit_pos = uVar9;
  282. gb->bitcache = uVar17;
  283. gb->bitcache_size = iVar8;
  284. }
  285. uVar19 = uVar17 >> 0x38;
  286. idx = 0x10;
  287. bVar3 = ac_index_table[uVar19].field_0x1;
  288. paVar16 = ac_index_table;
  289. uVar11 = (uint)(uVar17 >> 0x20);
  290. while (bVar3 == 0) {
  291. uVar13 = (ulong)((ushort)paVar16[uVar19].field_0x2 >> 4);
  292. paVar16 = ac_index_table + uVar13 * 0x100;
  293. uVar19 = (ulong)(byte)(uVar11 >> ((byte)idx & 0x1f));
  294. idx = (ulong)((int)idx - 8);
  295. bVar3 = *(byte *)(uVar13 * 0x400 + 0x7d3001 + uVar19 * 4);
  296. }
  297. bVar3 = paVar16[uVar19].field_0x1;
  298. uVar13 = 0;
  299. idx = (ulong)(iVar8 - (uint)bVar3);
  300. if ((int)(iVar8 - (uint)bVar3) < 0) {
  301. idx = uVar13;
  302. }
  303. uVar17 = uVar17 << (bVar3 & 0x3f);
  304. gb->bitcache = uVar17;
  305. gb->bitcache_size = (int)idx;
  306. if (uVar12 < uVar9 - (long)(int)idx) goto LAB_0051776e;
  307. if ((char)paVar16[uVar19].field_0x0 < '\0') break;
  308. idx2 = (ulong)((int)idx2 + 1 + (uint)paVar16[uVar19].field_0x0 & 0x3f);
  309. if (ac_table[(uint)((ushort)paVar16[uVar19].field_0x2 >> 4) +
  310. (uVar11 >> (0x20 - bVar3 & 0x1f) &
  311. (uint)bit_masks[(uint)(ushort)paVar16[uVar19].field_0x2 & 0xf])] != 0) {
  312. auVar5 = vcvtsi2ss_avx(SUB3216(auVar20,0),
  313. (int)ac_table[(uint)((ushort)paVar16[uVar19].field_0x2 >> 4) +
  314. (uVar11 >> (0x20 - bVar3 & 0x1f) &
  315. (uint)bit_masks[(uint)(ushort)paVar16[uVar19].
  316. field_0x2 & 0xf])]);
  317. auVar5 = vmulss_avx(auVar5,ZEXT416(*(uint *)(param_8 + 0x200 + (ulong)zigzag1[idx2] * 4)))
  318. ;
  319. auVar20 = ZEXT1632(auVar5);
  320. fVar2 = (float)vmovss_avx(auVar5);
  321. local_160[(ulong)zigzag1[idx2]] = fVar2;
  322. }
  323. }
  324. auVar22 = vbroadcastss_avx(0.17677669);
  325. auVar20 = vmulps_avx(auVar22,local_160._0_32_);
  326. auVar23 = vbroadcastss_avx(0.24519631);
  327. auVar23 = vmulps_avx(auVar23,local_160._32_32_);
  328. auVar24 = vbroadcastss_avx(0.23096988);
  329. auVar24 = vmulps_avx(auVar24,local_160._64_32_);
  330. auVar25 = vbroadcastss_avx(0.20786740);
  331. auVar25 = vmulps_avx(auVar25,local_160._96_32_);
  332. auVar22 = vmulps_avx(auVar22,local_160._128_32_);
  333. auVar26 = vbroadcastss_avx(0.13889256);
  334. auVar26 = vmulps_avx(auVar26,local_160._160_32_);
  335. auVar27 = vbroadcastss_avx(0.09567086);
  336. auVar27 = vmulps_avx(auVar27,local_160._192_32_);
  337. auVar28 = vbroadcastss_avx(0.04877258);
  338. auVar28 = vmulps_avx(auVar28,local_160._224_32_);
  339. auVar29 = vaddps_avx(auVar25,auVar26);
  340. auVar30 = vaddps_avx(auVar23,auVar28);
  341. auVar25 = vsubps_avx(auVar26,auVar25);
  342. auVar23 = vsubps_avx(auVar23,auVar28);
  343. auVar26 = vsubps_avx(auVar24,auVar27);
  344. auVar28 = vsubps_avx(auVar30,auVar29);
  345. auVar31 = vaddps_avx(auVar25,auVar23);
  346. auVar32 = vbroadcastss_avx(1.41421354);
  347. auVar26 = vmulps_avx(auVar26,auVar32);
  348. auVar24 = vaddps_avx(auVar24,auVar27);
  349. auVar27 = vbroadcastss_avx(1.84775901);
  350. auVar27 = vmulps_avx(auVar31,auVar27);
  351. auVar31 = vbroadcastss_avx(2.61312604);
  352. auVar25 = vmulps_avx(auVar25,auVar31);
  353. auVar25 = vsubps_avx(auVar27,auVar25);
  354. auVar29 = vaddps_avx(auVar29,auVar30);
  355. auVar28 = vmulps_avx(auVar28,auVar32);
  356. auVar25 = vsubps_avx(auVar25,auVar29);
  357. auVar30 = vaddps_avx(auVar20,auVar22);
  358. auVar20 = vsubps_avx(auVar20,auVar22);
  359. auVar22 = vsubps_avx(auVar26,auVar24);
  360. auVar26 = vbroadcastss_avx(1.08239222);
  361. auVar23 = vmulps_avx(auVar23,auVar26);
  362. auVar23 = vsubps_avx(auVar27,auVar23);
  363. auVar26 = vsubps_avx(auVar28,auVar25);
  364. auVar27 = vaddps_avx(auVar30,auVar24);
  365. auVar28 = vaddps_avx(auVar20,auVar22);
  366. auVar20 = vsubps_avx(auVar20,auVar22);
  367. auVar22 = vsubps_avx(auVar30,auVar24);
  368. auVar23 = vsubps_avx(auVar23,auVar26);
  369. auVar24 = vaddps_avx(auVar27,auVar29);
  370. auVar30 = vaddps_avx(auVar28,auVar25);
  371. auVar31 = vaddps_avx(auVar20,auVar26);
  372. auVar32 = vaddps_avx(auVar22,auVar23);
  373. auVar22 = vsubps_avx(auVar22,auVar23);
  374. auVar20 = vsubps_avx(auVar20,auVar26);
  375. auVar23 = vsubps_avx(auVar28,auVar25);
  376. auVar25 = vsubps_avx(auVar27,auVar29);
  377. auVar26 = vunpcklps_avx(auVar24,auVar30);
  378. auVar24 = vunpckhps_avx(auVar24,auVar30);
  379. auVar27 = vunpcklps_avx(auVar31,auVar32);
  380. auVar28 = vunpckhps_avx(auVar31,auVar32);
  381. auVar29 = vunpcklps_avx(auVar22,auVar20);
  382. auVar20 = vunpckhps_avx(auVar22,auVar20);
  383. auVar22 = vunpcklps_avx(auVar23,auVar25);
  384. auVar23 = vunpckhps_avx(auVar23,auVar25);
  385. auVar25 = vunpcklpd_avx(auVar26,auVar27);
  386. auVar26 = vunpckhpd_avx(auVar26,auVar27);
  387. auVar27 = vunpcklpd_avx(auVar24,auVar28);
  388. auVar24 = vunpckhpd_avx(auVar24,auVar28);
  389. auVar28 = vunpcklpd_avx(auVar29,auVar22);
  390. auVar22 = vunpckhpd_avx(auVar29,auVar22);
  391. auVar29 = vunpcklpd_avx(auVar20,auVar23);
  392. auVar20 = vunpckhpd_avx(auVar20,auVar23);
  393. auVar23 = vinsertf128_avx(auVar25,SUB3216(auVar28,0),1);
  394. auVar30 = vinsertf128_avx(auVar26,SUB3216(auVar22,0),1);
  395. auVar31 = vinsertf128_avx(auVar27,SUB3216(auVar29,0),1);
  396. auVar32 = vinsertf128_avx(auVar24,SUB3216(auVar20,0),1);
  397. auVar25 = vperm2f128_avx(auVar25,auVar28,0x31);
  398. auVar22 = vperm2f128_avx(auVar26,auVar22,0x31);
  399. auVar26 = vperm2f128_avx(auVar27,auVar29,0x31);
  400. auVar20 = vperm2f128_avx(auVar24,auVar20,0x31);
  401. auVar24 = vaddps_avx(auVar23,auVar31);
  402. auVar23 = vsubps_avx(auVar23,auVar31);
  403. auVar27 = vbroadcastss_avx(0.54119611);
  404. auVar28 = vmulps_avx(auVar30,auVar27);
  405. auVar29 = vbroadcastss_avx(1.30656302);
  406. auVar31 = vmulps_avx(auVar32,auVar29);
  407. auVar28 = vsubps_avx(auVar28,auVar31);
  408. auVar31 = vmulps_avx(auVar32,auVar27);
  409. auVar30 = vmulps_avx(auVar30,auVar29);
  410. auVar30 = vaddps_avx(auVar31,auVar30);
  411. auVar31 = vaddps_avx(auVar24,auVar30);
  412. auVar32 = vaddps_avx(auVar23,auVar28);
  413. auVar23 = vsubps_avx(auVar23,auVar28);
  414. auVar24 = vsubps_avx(auVar24,auVar30);
  415. auVar28 = vaddps_avx(auVar25,auVar26);
  416. auVar25 = vsubps_avx(auVar25,auVar26);
  417. auVar26 = vmulps_avx(auVar22,auVar27);
  418. auVar30 = vmulps_avx(auVar20,auVar29);
  419. auVar26 = vsubps_avx(auVar26,auVar30);
  420. auVar20 = vmulps_avx(auVar20,auVar27);
  421. auVar22 = vmulps_avx(auVar22,auVar29);
  422. auVar20 = vaddps_avx(auVar20,auVar22);
  423. auVar22 = vaddps_avx(auVar28,auVar20);
  424. auVar27 = vaddps_avx(auVar25,auVar26);
  425. auVar25 = vsubps_avx(auVar25,auVar26);
  426. auVar20 = vsubps_avx(auVar28,auVar20);
  427. auVar26 = vcvtps2dq_avx(auVar31);
  428. auVar28 = vcvtps2dq_avx(auVar32);
  429. auVar23 = vcvtps2dq_avx(auVar23);
  430. auVar24 = vcvtps2dq_avx(auVar24);
  431. auVar22 = vcvtps2dq_avx(auVar22);
  432. auVar27 = vcvtps2dq_avx(auVar27);
  433. auVar25 = vcvtps2dq_avx(auVar25);
  434. auVar20 = vcvtps2dq_avx(auVar20);
  435. auVar26 = vpackssdw_avx2(auVar26,auVar28);
  436. auVar26 = vpermq_avx2(auVar26,0xd8);
  437. auVar23 = vpackssdw_avx2(auVar23,auVar24);
  438. auVar23 = vpermq_avx2(auVar23,0xd8);
  439. auVar22 = vpackssdw_avx2(auVar22,auVar27);
  440. auVar22 = vpermq_avx2(auVar22,0xd8);
  441. auVar20 = vpackssdw_avx2(auVar25,auVar20);
  442. auVar20 = vpermq_avx2(auVar20,0xd8);
  443. auVar24 = vmovdqa_avx((undefined [32])0x7ff07ff07ff07ff);
  444. auVar25 = vpminsw_avx2(auVar26,auVar24);
  445. auVar23 = vpminsw_avx2(auVar23,auVar24);
  446. auVar22 = vpminsw_avx2(auVar22,auVar24);
  447. auVar20 = vpminsw_avx2(auVar20,auVar24);
  448. auVar24 = vmovdqa_avx((undefined [32])0xf801f801f801f801);
  449. auVar25 = vpmaxsw_avx2(auVar25,auVar24);
  450. auVar23 = vpmaxsw_avx2(auVar23,auVar24);
  451. auVar22 = vpmaxsw_avx2(auVar22,auVar24);
  452. auVar20 = vpmaxsw_avx2(auVar20,auVar24);
  453. /* WARNING: Store size is inaccurate */
  454. auVar5 = vmovdqa_avx(SUB3216(auVar25,0));
  455. *(undefined *)param_1 = auVar5;
  456. /* WARNING: Store size is inaccurate */
  457. auVar5 = vextracti128_avx2(auVar25,1);
  458. *(undefined *)(param_1 + (long)param_3 * 0x10) = auVar5;
  459. lVar10 = (long)(param_3 * 2) * 0x10;
  460. /* WARNING: Store size is inaccurate */
  461. auVar5 = vmovdqa_avx(SUB3216(auVar23,0));
  462. *(undefined *)(param_1 + lVar10) = auVar5;
  463. lVar15 = (long)(param_3 * 3) * 0x10;
  464. /* WARNING: Store size is inaccurate */
  465. auVar5 = vextracti128_avx2(auVar23,1);
  466. *(undefined *)(param_1 + lVar15) = auVar5;
  467. /* WARNING: Store size is inaccurate */
  468. auVar5 = vmovdqa_avx(SUB3216(auVar22,0));
  469. *(undefined *)param_2 = auVar5;
  470. /* WARNING: Store size is inaccurate */
  471. auVar5 = vextracti128_avx2(auVar22,1);
  472. *(undefined *)(param_2 + (long)param_3 * 0x10) = auVar5;
  473. /* WARNING: Store size is inaccurate */
  474. auVar5 = vmovdqa_avx(SUB3216(auVar20,0));
  475. *(undefined *)(param_2 + lVar10) = auVar5;
  476. /* WARNING: Store size is inaccurate */
  477. auVar5 = vextracti128_avx2(auVar20,1);
  478. *(undefined *)(param_2 + lVar15) = auVar5;
  479. uVar13 = CONCAT71((int7)((ulong)lVar10 >> 8),1);
  480. }
  481. }
  482. LAB_0051776e:
  483. vzeroupper_avx();
  484. return uVar13;
  485. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement