undefined1 * FUN_00481984(undefined4 param_1,char *param_2,undefined4 param_3)

{
  char *pcVar1;
  bool bVar2;
  int iVar3;
  int iVar4;
  undefined4 *puVar5;
  int iVar6;
  int iVar7;
  char cVar8;
  uint uVar9;
  undefined1 *puVar10;
  char *pcVar11;
  uint uVar12;
  undefined1 *puVar13;
  undefined1 *puVar14;
  char cVar15;
  undefined1 local_168 [4];
  undefined8 *local_164 [5];
  char local_150 [127];
  undefined1 uStack_d1;
  char *local_d0;
  undefined1 *local_cc;
  undefined1 *local_c8;
  int local_c4;
  uint local_c0;
  char local_bc;
  int local_b8;
  int local_b4;
  uint local_b0;
  byte local_aa;
  undefined1 auStack_80 [72];
  char **local_38;
  undefined1 *local_34;
  undefined1 *local_30;
  
  iVar3 = FUN_00482080(&local_d0);
  if (iVar3 < 0) {
    iVar3 = FUN_00483e50(local_d0);
    if (iVar3 != 0) {
      FUN_004887a0(local_d0,iVar3,param_1);
    }
    return (undefined1 *)0xffffffff;
  }
  FUN_00482170(&local_d0,param_3);
  local_34 = auStack_80;
  local_30 = local_168;
  puVar14 = (undefined1 *)0x0;
  pcVar11 = param_2;
  local_38 = &local_d0;
LAB_00481a4c:
  do {
    while( true ) {
      do {
        for (; (*pcVar11 != '\0' && (*pcVar11 != '%')); pcVar11 = pcVar11 + 1) {
        }
        iVar3 = (int)pcVar11 - (int)param_2   //possible issue identified - semgrep
        if (pcVar11 != param_2) {
          iVar4 = 0;
          if (0 < iVar3) {
            iVar4 = FUN_004887a0(param_2,iVar3,param_1);
          }
          puVar14 = puVar14 + iVar4;
          if (iVar4 != iVar3) {
            return (undefined1 *)0xffffffff;
          }
        }
        if (*pcVar11 == '\0') {
          return puVar14;
        }
        pcVar1 = pcVar11 + 1;
        param_2 = pcVar11 + 1;
        pcVar11 = pcVar11 + 2;
      } while (*pcVar1 == '%');
      local_d0 = param_2;
      FUN_004823c0(local_38);
      FUN_004821e0(local_38);
      puVar10 = local_34;
      if (0 < local_b8) {
        puVar10 = local_34 + (1 - (uint)local_aa) * -8;
      }
      iVar3 = 0;
      while( true ) {
        iVar4 = iVar3 * 4;
        bVar2 = local_b4 <= iVar3;
        iVar3 = iVar3 + 1;
        if (bVar2) break;
        *(undefined1 **)(local_30 + iVar4 + 4) = puVar10;
        puVar10 = puVar10 + 8;
      }
      if (local_b0 != 0) break;
      FUN_00488b20(*(undefined4 *)local_164[0],local_c0 & 0xf00,puVar14,(int)puVar14 >> 0x1f);
      param_2 = local_d0;
      pcVar11 = local_d0;
    }
    if (7 < local_b0) {
      if (local_b0 < 0x10) {
        iVar3 = FUN_00488c80(param_1,local_b0,(int)*local_164[0],
                             (int)((ulonglong)*local_164[0] >> 0x20),&local_cc,FUN_00481860);
      }
      else {
        if (local_b0 < 0x12) {
          return (undefined1 *)0xffffffff;
        }
        if (local_b0 < 0x14) {
          if (local_b0 == 0x13) {
            pcVar11 = *(char **)local_164[0];
            if (pcVar11 != (char *)0x0) goto LAB_00481db4;
            cVar15 = ' ';
            pcVar11 = "(null)";
            uVar12 = 0xb;
            iVar3 = 0;
            puVar13 = (undefined1 *)0x6;
          }
          else {
            pcVar11 = local_150;
            local_150[1] = 0;
            local_150[0] = (char)*(undefined4 *)local_164[0];
            cVar15 = ' ';
            uVar12 = 0xb;
            iVar3 = 0;
            puVar13 = (undefined1 *)0x1;
          }
          goto LAB_00481ec0;
        }
        if (local_b0 == 0x14) {
          puVar5 = (undefined4 *)FUN_0047f6f0();
          pcVar11 = (char *)FUN_00483bf0(*puVar5,local_150,0x80);
LAB_00481db4:
          puVar10 = (undefined1 *)0xffffffff;
          if (-1 < (int)local_cc) {
            puVar10 = local_cc;
          }
          puVar13 = (undefined1 *)FUN_00483f30(pcVar11,puVar10);
          cVar15 = ' ';
          uVar12 = 0xb;
          goto LAB_00481de0;
        }
        cVar15 = *PTR_DAT_004b77b0;
        pcVar11 = PTR_DAT_004b77b0;
        while (cVar15 != local_c4) {
          pcVar11 = pcVar11 + 1;
          if (PTR_DAT_004b77b0 + 10 <= pcVar11) {
            return (undefined1 *)0xffffffff;
          }
          cVar15 = *pcVar11;
        }
        iVar3 = (*(code *)(&DAT_004c2324)[(int)pcVar11 - (int)PTR_DAT_004b77b0])
                          (param_1,&local_cc,local_164);
      }
      puVar14 = puVar14 + iVar3;
      param_2 = local_d0;
      pcVar11 = local_d0;
      if (iVar3 < 0) {
        return (undefined1 *)0xffffffff;
      }
      goto LAB_00481a4c;
    }
    iVar3 = (int)(char)(&DAT_004988ab)[local_b0];
    if (local_b0 < 6) {
      uVar12 = 0xb;
      if (local_b0 == 1) {
        uVar12 = 6;
      }
    }
    else {
      iVar3 = -iVar3;
      uVar12 = 0xb;
    }
    cVar15 = ' ';
    if ((int)local_cc < 0) {
      cVar15 = local_bc;
    }
    uVar9 = 0x400;
    if (local_b0 != 1) {
      uVar9 = (uint)local_38[10 - (1 - (uint)local_aa)] & 0xf00;
    }
    FUN_00488aa0(uVar9,local_164[0],iVar3);
    pcVar11 = (char *)FUN_00488b60(&uStack_d1);
    if (5 < local_b0) {
      if (*pcVar11 == '-') {
        local_c0 = local_c0 | 2;
        pcVar11 = pcVar11 + 1;
        uVar12 = 2;
      }
      else if ((local_c0 & 2) == 0) {
        if ((local_c0 & 1) != 0) {
          uVar12 = 4;
        }
      }
      else {
        uVar12 = 0;
      }
    }
    puVar10 = local_cc;
    if ((int)local_cc < 0) {
      puVar10 = (undefined1 *)0x1;
    }
    puVar13 = &uStack_d1 + -(int)pcVar11;
    if ((local_c0 & 0x10) == 0) {
LAB_00481cf4:
      cVar8 = *pcVar11;
    }
    else {
      if (local_b0 < 3) {
        uVar12 = 6;
      }
      if (local_b0 == 3) {
        uVar12 = 9;
      }
      if (local_b0 == 4) {
        if (puVar10 <= puVar13) {
          puVar10 = (undefined1 *)0x1;
          if (*pcVar11 != '0') {
            puVar10 = (undefined1 *)((int)&local_d0 + -(int)pcVar11);
          }
          goto LAB_00481cf4;
        }
        cVar8 = *pcVar11;
      }
      else {
        cVar8 = *pcVar11;
      }
    }
    if (cVar8 == '0') {
      if (5 < uVar12) {
        uVar12 = 0xb;
      }
      if (local_b0 == 1) {
        puVar13 = (undefined1 *)0x5;
        pcVar11 = "(nil)";
      }
      else {
        if (puVar10 != (undefined1 *)0x0) goto LAB_00481d3c;
        puVar13 = (undefined1 *)0x0;
      }
LAB_00481de0:
      iVar3 = 0;
    }
    else {
LAB_00481d3c:
      iVar3 = (int)puVar10 - (int)puVar13;
      if (puVar10 <= puVar13) {
        iVar3 = 0;
      }
    }
LAB_00481ec0:
    puVar10 = puVar13 + iVar3;
    if (uVar12 != 0xb) {
      iVar4 = 2;
      if (uVar12 < 6) {
        iVar4 = 1;
      }
      puVar10 = puVar10 + iVar4;
    }
    iVar4 = 0;
    if (puVar10 < local_c8) {
      iVar4 = (int)local_c8 - (int)puVar10;
    }
    puVar14 = puVar10 + (int)puVar14 + iVar4;
    if (cVar15 == '0') {
      iVar3 = iVar3 + iVar4;
      iVar4 = 0;
    }
    if ((local_c0 & 8) == 0) {
      local_168[0] = 0x20;
      for (iVar7 = iVar4; iVar7 != 0; iVar7 = iVar7 + -1) {
        iVar6 = FUN_004887a0(local_30,1,param_1);
        if (iVar6 != 1) {
          if (iVar4 - iVar7 != iVar4) {
            return (undefined1 *)0xffffffff;
          }
          break;
        }
      }
      iVar4 = 0;
    }
    FUN_004838a0(&UNK_004988a0 + uVar12,param_1);
    local_168[0] = 0x30;
    for (iVar7 = iVar3; iVar7 != 0; iVar7 = iVar7 + -1) {
      iVar6 = FUN_004887a0(local_30,1,param_1);
      if (iVar6 != 1) {
        if (iVar3 - iVar7 != iVar3) {
          return (undefined1 *)0xffffffff;
        }
        break;
      }
    }
    if ((puVar13 != (undefined1 *)0x0) &&
       (puVar10 = (undefined1 *)FUN_004887a0(pcVar11,puVar13,param_1), puVar10 != puVar13)) {
      return (undefined1 *)0xffffffff;
    }
    local_168[0] = 0x20;
    for (iVar3 = iVar4; param_2 = local_d0, pcVar11 = local_d0, iVar3 != 0; iVar3 = iVar3 + -1) {
      iVar7 = FUN_004887a0(local_30,1,param_1);
      if (iVar7 != 1) {
        param_2 = local_d0;
        pcVar11 = local_d0;
        if (iVar4 - iVar3 != iVar4) {
          return (undefined1 *)0xffffffff;
        }
        break;
      }
    }
  } while( true );
}