Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* WARNING: Could not reconcile some variable overlaps */
- ulong decompress_r(long *param_1,astruct_10 *param_2,undefined *param_3,int param_4)
- {
- uint uVar1;
- ulong uVar2;
- bool bVar3;
- undefined auVar4 [16];
- undefined auVar5 [16];
- undefined auVar6 [16];
- undefined auVar7 [16];
- undefined auVar8 [16];
- uint uVar9;
- uint uVar10;
- int prev_dc;
- long lVar11;
- ulong uVar12;
- ulong uVar13;
- long *plVar14;
- ulong uVar15;
- ulong uVar16;
- ulong uVar17;
- ulong uVar18;
- ulong uVar19;
- ulong uVar20;
- ulong uVar21;
- ulong uVar22;
- undefined2 *puVar23;
- undefined2 *dst_short;
- undefined in_YMM0 [32];
- undefined byte_63 [32];
- undefined byte_57 [32];
- undefined byte_45 [32];
- undefined byte_27 [32];
- undefined auVar24 [32];
- undefined auVar25 [16];
- undefined auVar26 [32];
- undefined auVar27 [32];
- undefined auVar28 [32];
- undefined auVar29 [32];
- undefined auVar30 [32];
- undefined auVar31 [32];
- undefined auVar32 [32];
- undefined auVar33 [32];
- undefined auVar34 [32];
- undefined auVar35 [32];
- undefined in_YMM13 [32];
- uint local_d8;
- int local_60;
- int local_5c;
- undefined gb [16];
- ulong local_48;
- undefined *local_40;
- int local_38;
- uVar1 = *(uint *)(param_1 + 7);
- uVar2 = param_1[8];
- local_48 = (ulong)(uint)(param_4 << 3);
- auVar8 = vpxor_avx(SUB3216(in_YMM0,0),SUB3216(in_YMM0,0));
- gb = vmovdqa_avx(auVar8);
- local_38 = 0;
- uVar13 = param_1[4];
- uVar16 = param_1[5] ^ uVar13;
- param_1[4] = uVar16 << 0xe ^ (uVar13 << 0x37 | uVar13 >> 9) ^ uVar16;
- param_1[5] = uVar16 << 0x24 | uVar16 >> 0x1c;
- plVar14 = param_1;
- if (uVar1 >> 0x10 != 0) {
- uVar10 = (uint)uVar2 & 0xffff;
- auVar8 = vmovq_avx((long)(int)(0x40 - uVar10));
- auVar8 = vmovaps_avx(auVar8);
- puVar23 = (undefined2 *)(*param_1 + 0x100);
- prev_dc = 0;
- byte_63 = vbroadcastsd_avx(0x3f3f3f3f3f3f3f3f);
- byte_57 = vbroadcastsd_avx(0x3939393939393939);
- byte_45 = vbroadcastsd_avx(0x2d2d2d2d2d2d2d2d);
- byte_27 = vpbroadcastq_avx2(ZEXT816(0x1b1b1b1b1b1b1b1b));
- byte_27 = vmovdqu_avx(byte_27);
- local_5c = 0;
- local_60 = 0;
- uVar9 = uVar1 >> 0x10;
- local_40 = param_3;
- do {
- lVar11 = 0;
- dst_short = puVar23;
- if ((short)uVar1 != 0) {
- do {
- uVar13 = param_1[4];
- uVar16 = param_1[5];
- uVar17 = uVar16 ^ uVar13;
- uVar15 = (uVar13 << 0x37 | uVar13 >> 9) ^ uVar17;
- uVar12 = uVar17 << 0xe ^ uVar15;
- uVar18 = uVar17 << 0x24 | uVar17 >> 0x1c;
- uVar19 = uVar18 ^ uVar12;
- uVar15 = (uVar12 >> 9 | uVar15 << 0x37) ^ uVar19;
- uVar17 = uVar19 << 0xe ^ uVar15;
- uVar20 = uVar19 << 0x24 | uVar19 >> 0x1c;
- uVar21 = uVar20 ^ uVar17;
- uVar15 = (uVar17 >> 9 | uVar15 << 0x37) ^ uVar21;
- uVar19 = uVar21 << 0xe ^ uVar15;
- uVar21 = uVar21 << 0x24 | uVar21 >> 0x1c;
- uVar22 = uVar21 ^ uVar19;
- param_1[4] = uVar22 << 0xe ^ (uVar19 >> 9 | uVar15 << 0x37) ^ uVar22;
- param_1[5] = uVar22 << 0x24 | uVar22 >> 0x1c;
- auVar25 = vmovq_avx(uVar19 + uVar21);
- auVar4 = vmovq_avx(uVar17 + uVar20);
- auVar6 = vpunpcklqdq_avx(auVar4,auVar25);
- auVar25 = vmovq_avx(uVar18 + uVar12);
- auVar4 = vmovq_avx(uVar16 + uVar13);
- auVar25 = vpunpcklqdq_avx(auVar4,auVar25);
- if ((false) || (false)) {
- auVar24 = ZEXT1632(auVar6);
- }
- else {
- auVar24 = CONCAT1616(auVar6,auVar25);
- }
- auVar29 = vmovdqu_avx(byte_63);
- auVar26 = vpand_avx2(auVar24,auVar29);
- auVar30 = vmovdqa_avx((undefined [32])0x3939393939393939);
- auVar27 = vpcmpgtb_avx2(auVar26,auVar30);
- auVar31 = vmovdqu_avx(byte_57);
- auVar27 = vpand_avx2(auVar27,auVar31);
- auVar26 = vpsubusb_avx2(auVar26,auVar27);
- auVar32 = vmovdqa_avx((undefined [32])0x2d2d2d2d2d2d2d2d);
- auVar27 = vpcmpgtb_avx2(auVar26,auVar32);
- auVar33 = vmovdqu_avx(byte_45);
- auVar27 = vpand_avx2(auVar27,auVar33);
- auVar26 = vpsubusb_avx2(auVar26,auVar27);
- auVar34 = vmovdqa_avx((undefined [32])0x1a1a1a1a1a1a1a1a);
- auVar27 = vpcmpgtb_avx2(auVar26,auVar34);
- auVar35 = vmovdqu_avx(byte_27);
- auVar27 = vpand_avx2(auVar27,auVar35);
- auVar26 = vpsubusb_avx2(auVar26,auVar27);
- auVar24 = vpsignb_avx2(auVar26,auVar24);
- auVar25 = vextracti128_avx2(auVar24,1);
- auVar6 = vmovdqa_avx((undefined [16])0xe060d070f00);
- auVar25 = vpshufb_avx(auVar25,auVar6);
- auVar4 = vpbroadcastq_avx2(SUB3216(auVar24,0));
- auVar4 = vpblendd_avx2(auVar25,auVar4,0xc);
- auVar27 = vpermq_avx2(auVar24,0xe9);
- auVar5 = vmovdqa_avx((undefined [16])0x0);
- auVar25 = vpshufb_avx(SUB3216(auVar24,0),auVar5);
- auVar24 = vpermq_avx2(auVar24,0xe7);
- auVar25 = vpblendd_avx2(SUB3216(auVar24,0),auVar25,0xc);
- auVar26 = vpmovsxbw_avx2(auVar4);
- auVar27 = vpmovsxbw_avx2(SUB3216(auVar27,0));
- auVar24 = vpmovsxbw_avx2(auVar25);
- auVar26 = vpsllw_avx2(auVar26,5);
- auVar28 = vpsllw_avx2(auVar27,5);
- auVar24 = vpsllw_avx2(auVar24,5);
- /* WARNING: Load size is inaccurate */
- auVar27 = vpmulhrsw_avx2(auVar26,*(undefined *)param_2->field_0x420);
- /* WARNING: Load size is inaccurate */
- auVar28 = vpmulhrsw_avx2(auVar28,*(undefined *)param_2->field_0x440);
- /* WARNING: Load size is inaccurate */
- auVar26 = vpmulhrsw_avx2(auVar24,*(undefined *)param_2->field_0x460);
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar27);
- *(undefined *)(dst_short + -0x80) = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar28);
- *(undefined *)(dst_short + -0x70) = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar26);
- *(undefined *)(dst_short + -0x60) = auVar24;
- in_YMM13 = vxorps_avx(in_YMM13,in_YMM13);
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovaps_avx(in_YMM13);
- *(undefined *)(dst_short + -0x50) = auVar24;
- uVar13 = param_1[4];
- uVar15 = param_1[5] ^ uVar13;
- uVar12 = (uVar13 << 0x37 | uVar13 >> 9) ^ uVar15;
- uVar16 = uVar15 << 0xe ^ uVar12;
- uVar19 = uVar15 << 0x24 | uVar15 >> 0x1c;
- uVar17 = uVar19 ^ uVar16;
- uVar12 = (uVar16 >> 9 | uVar12 << 0x37) ^ uVar17;
- uVar15 = uVar17 << 0xe ^ uVar12;
- uVar18 = uVar17 << 0x24 | uVar17 >> 0x1c;
- uVar20 = uVar18 ^ uVar15;
- uVar12 = (uVar15 >> 9 | uVar12 << 0x37) ^ uVar20;
- uVar17 = uVar20 << 0xe ^ uVar12;
- uVar20 = uVar20 << 0x24 | uVar20 >> 0x1c;
- auVar25 = vmovq_avx(uVar17 + uVar20);
- auVar4 = vmovq_avx(uVar15 + uVar18);
- auVar7 = vpunpcklqdq_avx(auVar4,auVar25);
- auVar25 = vmovq_avx(uVar19 + uVar16);
- auVar4 = vmovq_avx(param_1[5] + uVar13);
- auVar25 = vpunpcklqdq_avx(auVar4,auVar25);
- if ((false) || (false)) {
- auVar24 = ZEXT1632(auVar7);
- }
- else {
- auVar24 = CONCAT1616(auVar7,auVar25);
- }
- auVar26 = vpand_avx2(auVar24,auVar29);
- auVar27 = vpcmpgtb_avx2(auVar26,auVar30);
- auVar27 = vpand_avx2(auVar27,auVar31);
- auVar26 = vpsubusb_avx2(auVar26,auVar27);
- auVar27 = vpcmpgtb_avx2(auVar26,auVar32);
- auVar27 = vpand_avx2(auVar27,auVar33);
- auVar26 = vpsubusb_avx2(auVar26,auVar27);
- auVar27 = vpcmpgtb_avx2(auVar26,auVar34);
- auVar27 = vpand_avx2(auVar27,auVar35);
- auVar26 = vpsubusb_avx2(auVar26,auVar27);
- auVar24 = vpsignb_avx2(auVar26,auVar24);
- auVar25 = vextracti128_avx2(auVar24,1);
- auVar25 = vpshufb_avx(auVar25,auVar6);
- auVar4 = vpbroadcastq_avx2(SUB3216(auVar24,0));
- auVar4 = vpblendd_avx2(auVar25,auVar4,0xc);
- auVar25 = vpshufb_avx(SUB3216(auVar24,0),auVar5);
- auVar26 = vpermq_avx2(auVar24,0xe7);
- auVar25 = vpblendd_avx2(SUB3216(auVar26,0),auVar25,0xc);
- uVar20 = uVar20 ^ uVar17;
- param_1[4] = uVar20 << 0xe ^ (uVar17 >> 9 | uVar12 << 0x37) ^ uVar20;
- param_1[5] = uVar20 << 0x24 | uVar20 >> 0x1c;
- auVar24 = vpermq_avx2(auVar24,0xe9);
- auVar26 = vpmovsxbw_avx2(auVar4);
- auVar24 = vpmovsxbw_avx2(SUB3216(auVar24,0));
- auVar27 = vpmovsxbw_avx2(auVar25);
- auVar26 = vpsllw_avx2(auVar26,5);
- auVar24 = vpsllw_avx2(auVar24,5);
- auVar28 = vpsllw_avx2(auVar27,5);
- /* WARNING: Load size is inaccurate */
- auVar27 = vpmulhrsw_avx2(auVar26,*(undefined *)param_2->field_0x420);
- /* WARNING: Load size is inaccurate */
- auVar26 = vpmulhrsw_avx2(auVar24,*(undefined *)param_2->field_0x440);
- /* WARNING: Load size is inaccurate */
- auVar28 = vpmulhrsw_avx2(auVar28,*(undefined *)param_2->field_0x460);
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar27);
- *(undefined *)(dst_short + -0x40) = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar26);
- *(undefined *)(dst_short + -0x30) = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar28);
- *(undefined *)(dst_short + -0x20) = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovaps_avx(in_YMM13);
- *(undefined *)(dst_short + -0x10) = auVar24;
- uVar13 = param_1[4];
- uVar16 = param_1[5];
- uVar15 = uVar16 ^ uVar13;
- uVar12 = (uVar13 << 0x37 | uVar13 >> 9) ^ uVar15;
- uVar19 = uVar15 << 0xe ^ uVar12;
- uVar15 = uVar15 << 0x24 | uVar15 >> 0x1c;
- uVar17 = uVar15 ^ uVar19;
- param_1[4] = uVar17 << 0xe ^ (uVar19 >> 9 | uVar12 << 0x37) ^ uVar17;
- param_1[5] = uVar17 << 0x24 | uVar17 >> 0x1c;
- auVar25 = vmovq_avx(uVar15 + uVar19);
- auVar4 = vmovq_avx(uVar16 + uVar13);
- auVar5 = vpunpcklqdq_avx(auVar4,auVar25);
- auVar4 = vpand_avx(auVar5,(undefined [16])0x3f3f3f3f3f3f3f3f);
- auVar25 = vmovdqa_avx((undefined [16])0x3939393939393939);
- auVar25 = vmovdqa_avx(auVar25);
- auVar6 = vpcmpgtb_avx(auVar4,auVar25);
- auVar25 = vpand_avx(auVar6,auVar25);
- auVar6 = vpsubusb_avx(auVar4,auVar25);
- auVar25 = vmovdqa_avx((undefined [16])0x2d2d2d2d2d2d2d2d);
- auVar25 = vmovdqa_avx(auVar25);
- auVar4 = vpcmpgtb_avx(auVar6,auVar25);
- auVar25 = vpand_avx(auVar4,auVar25);
- auVar4 = vpsubusb_avx(auVar6,auVar25);
- auVar25 = vpcmpgtb_avx(auVar4,(undefined [16])0x1a1a1a1a1a1a1a1a);
- auVar25 = vpand_avx(auVar25,(undefined [16])0x1b1b1b1b1b1b1b1b);
- auVar25 = vpsubusb_avx(auVar4,auVar25);
- auVar25 = vpsignb_avx(auVar25,auVar5);
- if ((false) || (false)) {
- auVar24 = ZEXT1632(auVar25);
- }
- else {
- auVar24 = CONCAT1616(auVar25,auVar25);
- }
- auVar25 = vpinsrb_avx(auVar25,0,0);
- local_d8 = 0;
- auVar24 = vpblendd_avx2(auVar24,ZEXT1632(auVar25),0xf);
- auVar25 = vpshufb_avx(SUB3216(auVar24,0),(undefined [16])0x50400000100);
- auVar4 = vpshufb_avx(SUB3216(auVar24,0),(undefined [16])0xd0c00000900);
- auVar26 = vpmovsxbw_avx2(auVar25);
- auVar24 = vpmovsxbw_avx2(auVar4);
- auVar26 = vpsllw_avx2(auVar26,4);
- auVar24 = vpsllw_avx2(auVar24,4);
- /* WARNING: Load size is inaccurate */
- auVar28 = vmovdqa_avx(*(undefined *)param_2->field_0x4e0);
- auVar27 = vpmulhrsw_avx2(auVar26,auVar28);
- auVar26 = vpmulhrsw_avx2(auVar24,auVar28);
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar27);
- *(undefined *)dst_short = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovaps_avx(in_YMM13);
- *(undefined *)(dst_short + 0x10) = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovdqa_avx(auVar26);
- *(undefined *)(dst_short + 0x20) = auVar24;
- /* WARNING: Store size is inaccurate */
- auVar24 = vmovaps_avx(in_YMM13);
- *(undefined *)(dst_short + 0x30) = auVar24;
- vzeroupper_avx();
- uVar13 = bitstream_14(dst_short + -0x80,(int *)¶m_2->field_0x500,prev_dc,
- (GetBitContext *)gb);
- uVar13 = bitstream_14(dst_short + -0x40,(int *)¶m_2->field_0x500,(int)uVar13,
- (GetBitContext *)gb);
- prev_dc = (int)uVar13;
- uVar13 = bitstream_16(dst_short,(int *)(param_2 + 1),local_5c,(GetBitContext *)gb);
- local_5c = (int)uVar13;
- uVar13 = bitstream_16(dst_short + 0x20,(int *)(param_2 + 1),local_60,(GetBitContext *)gb);
- local_60 = (int)uVar13;
- if (local_60 == 0x7fffffff) goto LAB_00518669;
- auVar25 = vmovq_avx(gb._0_8_);
- auVar25 = vpbroadcastq_avx2(auVar25);
- auVar25 = vpsrlq_avx(auVar25,auVar8);
- gb = CONCAT88(gb._8_8_,gb._0_8_ << ((byte)uVar2 & 0x3f));
- local_38 = local_38 - uVar10;
- vpextrb_avx(auVar25,0);
- lVar11 = lVar11 + 1;
- dst_short = dst_short + 0xc0;
- } while (lVar11 < (long)((ulong)uVar1 & 0xffff));
- }
- puVar23 = puVar23 + (uVar2 >> 0x20 & 0xffff) * 0xc0;
- plVar14 = (long *)(ulong)(uVar9 - 1);
- bVar3 = 1 < (int)uVar9;
- uVar9 = uVar9 - 1;
- } while (bVar3);
- }
- local_d8 = (uint)CONCAT71((int7)((ulong)plVar14 >> 8),1);
- LAB_00518669:
- vzeroupper_avx();
- return (ulong)local_d8;
- }
Advertisement
Add Comment
Please, Sign In to add comment