Untitled

 avatar
unknown
c_cpp
9 months ago
16 kB
16
Indexable
undefined4 DecryptBMD(undefined4 folder,undefined4 fileName,char param_3)

{
  longlong lVar1;
  char cVar2;
  undefined4 uVar3;
  undefined local_474 [772];
  char local_170 [64];
  undefined4 local_130;
  void *buffer;
  void *local_128;
  undefined4 local_124;
  undefined4 local_120;
  undefined4 local_11c;
  undefined4 local_118;
  undefined4 local_114;
  undefined4 local_110;
  int local_10c;
  undefined4 local_108;
  undefined4 local_104;
  undefined4 local_100;
  undefined4 local_fc;
  undefined4 local_f8;
  int local_f4;
  undefined4 local_f0;
  undefined4 local_ec;
  undefined4 local_e8;
  undefined4 local_e4;
  undefined4 local_e0;
  int local_dc;
  void *local_d8;
  void *local_d4;
  void *local_d0;
  void *local_cc;
  undefined4 local_c8;
  void *local_c4;
  void *local_c0;
  undefined local_bc [8];
  void *local_b4;
  undefined4 local_b0;
  void *local_ac;
  int local_a8;
  uint local_a4;
  uint local_a0;
  uint local_9c;
  uint local_98;
  uint local_94;
  int local_90;
  uint local_8c;
  uint local_88;
  void *local_84;
  undefined4 local_80;
  void *local_7c;
  undefined4 local_78;
  undefined4 local_74;
  size_t LENGHT;
  int local_6c;
  undefined local_68;
  undefined local_67;
  undefined local_66;
  undefined local_65;
  undefined local_64;
  undefined local_63;
  undefined local_62;
  undefined local_61;
  undefined local_60;
  undefined local_5f;
  undefined local_5e;
  undefined local_5d;
  undefined local_5c;
  undefined local_5b;
  undefined local_5a;
  undefined local_59;
  undefined local_58;
  undefined local_57;
  undefined local_56;
  undefined local_55;
  undefined local_54;
  undefined local_53;
  undefined local_52;
  undefined local_51;
  undefined local_50;
  undefined local_4f;
  undefined local_4e;
  undefined local_4d;
  undefined local_4c;
  undefined local_4b;
  undefined local_4a;
  undefined local_49;
  uint local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  FILE *FILE;
  undefined4 *local_30;
  undefined *local_2c;
  int local_28;
  int local_24;
  undefined *local_20;
  void *bufferBuffer;
  int local_18;
  int local_14;
  void *local_10;
  undefined *puStack_c;
  undefined4 local_8;
  
  local_8 = 0xffffffff;
  puStack_c = &LAB_01a28514;
  local_10 = ExceptionList;
  if (param_3 == 1) {
    ExceptionList = &local_10;
    FUN_013df841();
    FUN_0199d8d0(local_170,folder);
    FUN_0199d8e0(local_170,fileName);
    FILE = _fopen(local_170,"rb");
    if (FILE == (FILE *)0x0) {
      uVar3 = 0;
    }
    else {
      _fseek(FILE,0,2);
      LENGHT = len(FILE);
      _fseek(FILE,0,0);
      buffer = (void *)create_buffer(LENGHT);
      bufferBuffer = buffer;
      _fread(buffer,1,LENGHT,FILE);
      _fclose(FILE);
      *(undefined *)(local_18 + 0x20) = *(undefined *)((int)bufferBuffer + 3);
      local_14 = 4;
      if (*(char *)(local_18 + 0x20) == '\f') {
        local_74 = *(undefined4 *)((int)bufferBuffer + 4);
        local_14 = 8;
        local_130 = FUN_00997e52(0,(int)bufferBuffer + 8,local_74);
        local_c0 = (void *)create_buffer(local_130);
        local_b4 = local_c0;
        FUN_00997e52(local_c0,(int)bufferBuffer + local_14,local_74);
        local_c4 = bufferBuffer;
        FID_conflict:_free(bufferBuffer);
        bufferBuffer = local_b4;
        local_14 = 0;
      }
      else if (*(char *)(local_18 + 0x20) == '\x0e') {
        local_78 = *(undefined4 *)((int)bufferBuffer + 4);
        local_14 = 8;
        local_c8 = FUN_017711fa(0,(int)bufferBuffer + 8,local_78);
        local_cc = (void *)create_buffer(local_c8);
        local_7c = local_cc;
        FUN_017711fa(local_cc,(int)bufferBuffer + local_14,local_78);
        local_d0 = bufferBuffer;
        FID_conflict:_free(bufferBuffer);
        bufferBuffer = local_7c;
        local_14 = 0;
      }
      else if (*(char *)(local_18 + 0x20) == '\x0f') {
        local_68 = 0xcc;
        local_67 = 0x50;
        local_66 = 0x45;
        local_65 = 0x13;
        local_64 = 0xc2;
        local_63 = 0xa6;
        local_62 = 0x57;
        local_61 = 0x4e;
        local_60 = 0xd6;
        local_5f = 0x9a;
        local_5e = 0x45;
        local_5d = 0x89;
        local_5c = 0xbf;
        local_5b = 0x2f;
        local_5a = 0xbc;
        local_59 = 0xd9;
        local_58 = 0x39;
        local_57 = 0xb3;
        local_56 = 0xb3;
        local_55 = 0xbd;
        local_54 = 0x50;
        local_53 = 0xbd;
        local_52 = 0xcc;
        local_51 = 0xb6;
        local_50 = 0x85;
        local_4f = 0x46;
        local_4e = 0xd1;
        local_4d = 0xd6;
        local_4c = 0x16;
        local_4b = 0x54;
        local_4a = 0xe0;
        local_49 = 0x87;
        thunk_FUN_009272b0(local_474,&local_68,0x20);
        local_80 = *(undefined4 *)((int)bufferBuffer + local_14);
        local_14 = local_14 + 4;
        local_d4 = (void *)create_buffer(local_80);
        local_84 = local_d4;
        thunk_FUN_00928cb0(local_d4,(int)bufferBuffer + local_14,local_80,local_474);
        if (bufferBuffer != (void *)0x0) {
          local_d8 = bufferBuffer;
          FID_conflict:_free(bufferBuffer);
        }
        bufferBuffer = local_84;
        local_14 = 0;
      }
      FUN_01971170(local_18,(int)bufferBuffer + local_14,0x20);
      *(undefined2 *)(local_18 + 0x24) = *(undefined2 *)((int)bufferBuffer + local_14 + 0x20);
      *(undefined2 *)(local_18 + 0x22) = *(undefined2 *)((int)bufferBuffer + local_14 + 0x22);
      *(undefined2 *)(local_18 + 0x26) = *(undefined2 *)((int)bufferBuffer + local_14 + 0x24);
      local_14 = local_14 + 0x26;
      if (*(short *)(local_18 + 0x24) < 1) {
        local_88 = 1;
      }
      else {
        local_88 = (uint)*(short *)(local_18 + 0x24);
      }
      local_8c = local_88;
      local_6c = create_buffer(-(uint)((int)((ulonglong)local_88 * 0x20 >> 0x20) != 0) |
                               (uint)((ulonglong)local_88 * 0x20));
      local_8 = 0;
      if (local_6c == 0) {
        local_90 = 0;
      }
      else {
        FUN_009915cb(local_6c,0x20,local_8c,FUN_011567c9);
        local_90 = local_6c;
      }
      local_dc = local_90;
      local_8 = 0xffffffff;
      *(int *)(local_18 + 0x28) = local_90;
      if (*(short *)(local_18 + 0x22) < 1) {
        local_94 = 1;
      }
      else {
        local_94 = (uint)*(short *)(local_18 + 0x22);
      }
      local_e0 = create_buffer(-(uint)((int)((ulonglong)local_94 * 0x8c >> 0x20) != 0) |
                               (uint)((ulonglong)local_94 * 0x8c));
      *(undefined4 *)(local_18 + 0x2c) = local_e0;
      if (*(short *)(local_18 + 0x26) < 1) {
        local_98 = 1;
      }
      else {
        local_98 = (uint)*(short *)(local_18 + 0x26);
      }
      local_e4 = create_buffer(-(uint)((int)((ulonglong)local_98 * 0x10 >> 0x20) != 0) |
                               (uint)((ulonglong)local_98 * 0x10));
      *(undefined4 *)(local_18 + 0x30) = local_e4;
      if (*(short *)(local_18 + 0x24) < 1) {
        local_9c = 1;
      }
      else {
        local_9c = (uint)*(short *)(local_18 + 0x24);
      }
      local_e8 = create_buffer(-(uint)((int)((ulonglong)local_9c * 0x20 >> 0x20) != 0) |
                               (uint)((ulonglong)local_9c * 0x20));
      *(undefined4 *)(local_18 + 0x34) = local_e8;
      if (*(short *)(local_18 + 0x24) < 1) {
        local_a0 = 1;
      }
      else {
        local_a0 = (uint)*(short *)(local_18 + 0x24);
      }
      local_ec = create_buffer(-(uint)((int)((ulonglong)local_a0 * 4 >> 0x20) != 0) |
                               (uint)((ulonglong)local_a0 * 4));
      *(undefined4 *)(local_18 + 0x38) = local_ec;
      if (*(short *)(local_18 + 0x24) < 1) {
        local_a4 = 1;
      }
      else {
        local_a4 = (uint)*(short *)(local_18 + 0x24);
      }
      local_f0 = create_buffer(-(uint)((int)((ulonglong)local_a4 * 4 >> 0x20) != 0) |
                               (uint)((ulonglong)local_a4 * 4));
      *(undefined4 *)(local_18 + 0x3c) = local_f0;
      *(undefined4 *)(local_18 + 0x40) = 0;
      if (*(short *)(local_18 + 0x24) < 1) {
        local_a8 = 1;
      }
      else {
        local_a8 = (int)*(short *)(local_18 + 0x24);
      }
      local_f4 = local_a8;
      local_f8 = 0;
      FUN_0115674d(*(undefined4 *)(local_18 + 0x3c),&local_f8,&local_f4);
      for (local_28 = 0; local_28 < *(short *)(local_18 + 0x24); local_28 = local_28 + 1) {
        local_20 = (undefined *)(local_28 * 0x20 + *(int *)(local_18 + 0x28));
        *(undefined2 *)(local_20 + 4) = *(undefined2 *)((int)bufferBuffer + local_14);
        *(undefined2 *)(local_20 + 6) = *(undefined2 *)((int)bufferBuffer + local_14 + 2);
        *(undefined2 *)(local_20 + 8) = *(undefined2 *)((int)bufferBuffer + local_14 + 4);
        *(undefined2 *)(local_20 + 10) = *(undefined2 *)((int)bufferBuffer + local_14 + 6);
        *(undefined2 *)(local_20 + 2) = *(undefined2 *)((int)bufferBuffer + local_14 + 8);
        local_14 = local_14 + 10;
        *local_20 = 0;
        local_fc = create_buffer(-(uint)((int)((ulonglong)(uint)(int)*(short *)(local_20 + 4) * 0x10
                                              >> 0x20) != 0) |
                                 (uint)((ulonglong)(uint)(int)*(short *)(local_20 + 4) * 0x10));
        *(undefined4 *)(local_20 + 0xc) = local_fc;
        local_100 = create_buffer(-(uint)((int)((ulonglong)(uint)(int)*(short *)(local_20 + 6) *
                                                0x14 >> 0x20) != 0) |
                                  (uint)((ulonglong)(uint)(int)*(short *)(local_20 + 6) * 0x14));
        *(undefined4 *)(local_20 + 0x10) = local_100;
        local_104 = create_buffer(-(uint)((int)((ulonglong)(uint)(int)*(short *)(local_20 + 8) * 8
                                               >> 0x20) != 0) |
                                  (uint)((ulonglong)(uint)(int)*(short *)(local_20 + 8) * 8));
        *(undefined4 *)(local_20 + 0x14) = local_104;
        local_108 = create_buffer(-(uint)((int)((ulonglong)(uint)(int)*(short *)(local_20 + 10) *
                                                0x24 >> 0x20) != 0) |
                                  (uint)((ulonglong)(uint)(int)*(short *)(local_20 + 10) * 0x24));
        *(undefined4 *)(local_20 + 0x18) = local_108;
        local_24 = (int)*(short *)(local_20 + 4) << 4;
        FUN_01971170(*(undefined4 *)(local_20 + 0xc),(int)bufferBuffer + local_14,local_24);
        local_14 = local_14 + local_24;
        local_24 = *(short *)(local_20 + 6) * 0x14;
        FUN_01971170(*(undefined4 *)(local_20 + 0x10),(int)bufferBuffer + local_14,local_24);
        local_14 = local_14 + local_24;
        local_24 = (int)*(short *)(local_20 + 8) << 3;
        FUN_01971170(*(undefined4 *)(local_20 + 0x14),(int)bufferBuffer + local_14,local_24);
        local_14 = local_14 + local_24;
        local_24 = 0x24;
        local_10c = 0x40;
        for (local_44 = 0; local_44 < *(short *)(local_20 + 10); local_44 = local_44 + 1) {
          FUN_01971170(local_44 * 0x24 + *(int *)(local_20 + 0x18),(int)bufferBuffer + local_14,
                       local_24);
          local_14 = local_14 + local_10c;
        }
        FUN_01971170(*(int *)(local_18 + 0x34) + local_28 * 0x20,(int)bufferBuffer + local_14,0x20);
        local_14 = local_14 + 0x20;
        FUN_011567ac();
        local_8 = 1;
        cVar2 = FUN_012a4ea8(*(int *)(local_18 + 0x34) + local_28 * 0x20);
        if (cVar2 == '\0') {
          *(undefined4 *)(local_20 + 0x1c) = 0;
        }
        else {
          local_ac = operator_new(5);
          local_8._0_1_ = 2;
          if (local_ac == (void *)0x0) {
            local_b0 = 0;
          }
          else {
            local_b0 = FUN_0115677c();
          }
          local_110 = local_b0;
          local_8 = CONCAT31(local_8._1_3_,1);
          *(undefined4 *)(local_20 + 0x1c) = local_b0;
          FUN_012a4e61(local_bc);
        }
        local_8 = 0xffffffff;
        FUN_01156838();
      }
      for (local_28 = 0; local_28 < *(short *)(local_18 + 0x26); local_28 = local_28 + 1) {
        local_2c = (undefined *)(local_28 * 0x10 + *(int *)(local_18 + 0x30));
        *local_2c = 0;
        *(undefined2 *)(local_2c + 8) = *(undefined2 *)((int)bufferBuffer + local_14);
        local_2c[10] = *(undefined *)((int)bufferBuffer + local_14 + 2);
        local_14 = local_14 + 3;
        if (local_2c[10] == '\0') {
          *(undefined4 *)(local_2c + 0xc) = 0;
        }
        else {
          lVar1 = (ulonglong)
                  (-(uint)((int)((ulonglong)(uint)(int)*(short *)(local_2c + 8) * 3 >> 0x20) != 0) |
                  (uint)((ulonglong)(uint)(int)*(short *)(local_2c + 8) * 3)) * 4;
          local_114 = create_buffer(-(uint)((int)((ulonglong)lVar1 >> 0x20) != 0) | (uint)lVar1);
          *(undefined4 *)(local_2c + 0xc) = local_114;
          local_24 = *(short *)(local_2c + 8) * 0xc;
          FUN_01971170(*(undefined4 *)(local_2c + 0xc),(int)bufferBuffer + local_14,local_24);
          local_14 = local_14 + local_24;
        }
      }
      for (local_28 = 0; local_28 < *(short *)(local_18 + 0x22); local_28 = local_28 + 1) {
        local_38 = local_28 * 0x8c + *(int *)(local_18 + 0x2c);
        *(undefined *)(local_38 + 0x22) = *(undefined *)((int)bufferBuffer + local_14);
        local_14 = local_14 + 1;
        if (*(char *)(local_38 + 0x22) == '\0') {
          FUN_01971170(local_38,(int)bufferBuffer + local_14,0x20);
          *(undefined2 *)(local_38 + 0x20) = *(undefined2 *)((int)bufferBuffer + local_14 + 0x20);
          local_14 = local_14 + 0x22;
          lVar1 = (ulonglong)(uint)(int)*(short *)(local_18 + 0x26) * 0xc;
          local_118 = create_buffer(-(uint)((int)((ulonglong)lVar1 >> 0x20) != 0) | (uint)lVar1);
          *(undefined4 *)(local_38 + 0x24) = local_118;
          for (local_3c = 0; local_3c < *(short *)(local_18 + 0x26); local_3c = local_3c + 1) {
            local_30 = (undefined4 *)(local_3c * 0xc + *(int *)(local_38 + 0x24));
            local_24 = *(short *)(*(int *)(local_18 + 0x30) + 8 + local_3c * 0x10) * 0xc;
            local_48 = (uint)*(short *)(*(int *)(local_18 + 0x30) + 8 + local_3c * 0x10);
            lVar1 = (ulonglong)
                    (-(uint)((int)((ulonglong)local_48 * 3 >> 0x20) != 0) |
                    (uint)((ulonglong)local_48 * 3)) * 4;
            local_11c = create_buffer(-(uint)((int)((ulonglong)lVar1 >> 0x20) != 0) | (uint)lVar1);
            *local_30 = local_11c;
            lVar1 = (ulonglong)
                    (-(uint)((int)((ulonglong)local_48 * 3 >> 0x20) != 0) |
                    (uint)((ulonglong)local_48 * 3)) * 4;
            local_120 = create_buffer(-(uint)((int)((ulonglong)lVar1 >> 0x20) != 0) | (uint)lVar1);
            local_30[1] = local_120;
            lVar1 = (ulonglong)
                    (-(uint)((int)((ulonglong)local_48 * 4 >> 0x20) != 0) |
                    (uint)((ulonglong)local_48 * 4)) * 4;
            local_124 = create_buffer(-(uint)((int)((ulonglong)lVar1 >> 0x20) != 0) | (uint)lVar1);
            local_30[2] = local_124;
            FUN_01971170(*local_30,(int)bufferBuffer + local_14,local_24);
            local_14 = local_14 + local_24;
            FUN_01971170(local_30[1],(int)bufferBuffer + local_14,local_24);
            local_14 = local_14 + local_24;
            for (local_40 = 0; local_40 < (int)local_48; local_40 = local_40 + 1) {
              FUN_00d8899c(local_40 * 0xc + local_30[1],local_40 * 0x10 + local_30[2]);
            }
          }
        }
      }
      local_128 = bufferBuffer;
      FID_conflict:_free(bufferBuffer);
      FUN_013de12a(0);
      _memset((void *)(local_18 + 0xb6),-1,0x14);
      uVar3 = 1;
    }
  }
  else {
    uVar3 = 1;
  }
  ExceptionList = local_10;
  return uVar3;
}

Editor is loading...
Leave a Comment