Guest User

Untitled

a guest
Mar 24th, 2021
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.87 KB | None | 0 0
  1.  
  2. /* WARNING: Could not reconcile some variable overlaps */
  3.  
  4. long gamedc(undefined8 param_1,ulong param_2,undefined8 *param_3,ulong *param_4)
  5.  
  6. {
  7.   uint uVar1;
  8.   uint uVar2;
  9.   uint uVar3;
  10.   long lVar4;
  11.   uint *puVar5;
  12.   undefined8 *puVar6;
  13.   uint uVar7;
  14.   ulong uVar8;
  15.   uint uVar9;
  16.   long lVar10;
  17.   ulong uVar11;
  18.   uint uVar12;
  19.   ulong uVar13;
  20.   undefined8 uStack96;
  21.   undefined8 uStack88;
  22.   long lStack72;
  23.  
  24.   lVar4 = cRead_8(tpidr_el0);
  25.   lStack72 = *(long *)(lVar4 + 0x28);
  26.   uStack88 = param_3[1];
  27.   uStack96 = *param_3;
  28.   if ((char)uStack96 == '\0') {
  29.     uVar8 = 0;
  30. LAB_00e83010:
  31.     memset((long)&uStack96 + uVar8 + 1,0,uVar8 ^ 0xf);
  32.   }
  33.   else {
  34.     uStack96._1_1_ = (char)((ulong)uStack96 >> 8);
  35.     if (uStack96._1_1_ == '\0') {
  36.       uVar8 = 1;
  37.       goto LAB_00e83010;
  38.     }
  39.     uStack96._2_1_ = (char)((ulong)uStack96 >> 0x10);
  40.     if (uStack96._2_1_ == '\0') {
  41.       uVar8 = 2;
  42.       goto LAB_00e83010;
  43.     }
  44.     uStack96._3_1_ = (char)((ulong)uStack96 >> 0x18);
  45.     if (uStack96._3_1_ == '\0') {
  46.       uVar8 = 3;
  47.       goto LAB_00e83010;
  48.     }
  49.     uStack96._4_1_ = (char)((ulong)uStack96 >> 0x20);
  50.     if (uStack96._4_1_ == '\0') {
  51.       uVar8 = 4;
  52.       goto LAB_00e83010;
  53.     }
  54.     uStack96._5_1_ = (char)((ulong)uStack96 >> 0x28);
  55.     if (uStack96._5_1_ == '\0') {
  56.       uVar8 = 5;
  57.       goto LAB_00e83010;
  58.     }
  59.     uStack96._6_1_ = (char)((ulong)uStack96 >> 0x30);
  60.     if (uStack96._6_1_ == '\0') {
  61.       uVar8 = 6;
  62.       goto LAB_00e83010;
  63.     }
  64.     uStack96._7_1_ = (char)((ulong)uStack96 >> 0x38);
  65.     if (uStack96._7_1_ == '\0') {
  66.       uVar8 = 7;
  67.       goto LAB_00e83010;
  68.     }
  69.     if ((char)uStack88 == '\0') {
  70.       uVar8 = 8;
  71.       goto LAB_00e83010;
  72.     }
  73.     uStack88._1_1_ = (char)((ulong)uStack88 >> 8);
  74.     if (uStack88._1_1_ == '\0') {
  75.       uVar8 = 9;
  76.       goto LAB_00e83010;
  77.     }
  78.     uStack88._2_1_ = (char)((ulong)uStack88 >> 0x10);
  79.     if (uStack88._2_1_ == '\0') {
  80.       uVar8 = 10;
  81.       goto LAB_00e83010;
  82.     }
  83.     uStack88._3_1_ = (char)((ulong)uStack88 >> 0x18);
  84.     if (uStack88._3_1_ == '\0') {
  85.       uVar8 = 0xb;
  86.       goto LAB_00e83010;
  87.     }
  88.     uStack88._4_1_ = (char)((ulong)uStack88 >> 0x20);
  89.     if (uStack88._4_1_ == '\0') {
  90.       uVar8 = 0xc;
  91.       goto LAB_00e83010;
  92.     }
  93.     uStack88._5_1_ = (char)((ulong)uStack88 >> 0x28);
  94.     if (uStack88._5_1_ == '\0') {
  95.       uVar8 = 0xd;
  96.       goto LAB_00e83010;
  97.     }
  98.     uStack88._6_1_ = (char)((ulong)uStack88 >> 0x30);
  99.     if (uStack88._6_1_ == '\0') {
  100.       uVar8 = 0xe;
  101.       goto LAB_00e83010;
  102.     }
  103.   }
  104.   if (param_2 != 0) {
  105.     uVar8 = param_2 >> 2;
  106.     if ((param_2 & 3) != 0) {
  107.       uVar8 = uVar8 + 1;
  108.     }
  109.     puVar5 = (uint *)calloc(uVar8,4);
  110.     if (puVar5 != (uint *)0x0) {
  111.       memcpy(puVar5,param_1,param_2);
  112.       puVar6 = (undefined8 *)calloc(4,4);
  113.       if (puVar6 != (undefined8 *)0x0) {
  114.         uVar12 = (uint)uVar8;
  115.         uVar2 = uVar12 - 1;
  116.         puVar6[1] = uStack88;
  117.         *puVar6 = uStack96;
  118.         if (uVar2 != 0) {
  119.           uVar7 = 0;
  120.           if (uVar12 != 0) {
  121.             uVar7 = 0x34 / uVar12;
  122.           }
  123.           uVar7 = uVar7 * -0x61c88647 + 0xb54cda56;
  124.           if (uVar7 != 0) {
  125.             uVar9 = *puVar5;
  126.             do {
  127.               uVar3 = uVar7 >> 2 & 3;
  128.               lVar10 = (ulong)(uVar12 - 2) << 2;
  129.               uVar13 = (ulong)uVar2;
  130.               do {
  131.                 uVar1 = *(uint *)((long)puVar5 + lVar10);
  132.                 uVar11 = uVar13 - 1;
  133.                 uVar9 = puVar5[uVar13] -
  134.                         ((uVar1 >> 5 ^ uVar9 << 2) + (uVar1 << 4 ^ uVar9 >> 3) ^
  135.                         (*(uint *)((long)puVar6 + (ulong)((uint)uVar13 & 3 ^ uVar3) * 4) ^ uVar1) +
  136.                         (uVar9 ^ uVar7));
  137.                 lVar10 = lVar10 + -4;
  138.                 puVar5[uVar13] = uVar9;
  139.                 uVar13 = uVar11;
  140.               } while ((int)uVar11 != 0);
  141.               uVar1 = puVar5[uVar2];
  142.               uVar9 = *puVar5 - ((uVar1 >> 5 ^ uVar9 * 4) + (uVar1 << 4 ^ uVar9 >> 3) ^
  143.                                 (*(uint *)((long)puVar6 + (ulong)uVar3 * 4) ^ uVar1) +
  144.                                 (uVar9 ^ uVar7));
  145.               uVar7 = uVar7 + 0x61c88647;
  146.               *puVar5 = uVar9;
  147.             } while (uVar7 != 0);
  148.           }
  149.         }
  150.         uVar13 = (ulong)puVar5[uVar8 - 1];
  151.         lVar10 = 0;
  152.         if ((uVar8 * 4 - 7 <= uVar13) && (uVar13 <= uVar8 * 4 - 4)) {
  153.           lVar10 = malloc(uVar13 + 1);
  154.           memcpy(lVar10,puVar5,uVar13);
  155.           *(undefined *)(lVar10 + uVar13) = 0;
  156.           *param_4 = uVar13;
  157.         }
  158.         free(puVar5);
  159.         free(puVar6);
  160.         goto LAB_00e831b8;
  161.       }
  162.       free(puVar5);
  163.     }
  164.   }
  165.   lVar10 = 0;
  166. LAB_00e831b8:
  167.   if (*(long *)(lVar4 + 0x28) == lStack72) {
  168.     return lVar10;
  169.   }
  170.                     /* WARNING: Subroutine does not return */
  171.   __stack_chk_fail();
  172. }
Advertisement
Add Comment
Please, Sign In to add comment