int * FUN_004754f4(int param_1)

{
  char cVar1;
  bool bVar2;
  int *piVar3;
  int **ppiVar4;
  int *piVar5;
  int iVar6;
  char *pcVar7;
  undefined4 uVar8;
  char *pcVar9;
  int iVar10;
  int *local_20;
  int *local_1c;
  
  pcVar9 = *(char **)(param_1 + 0xc);
  iVar6 = (int)*pcVar9;
  if (((iVar6 == 0x72) || (iVar6 == 0x56)) || (iVar6 == 0x4b)) {
    piVar3 = (int *)FUN_00473228(param_1,&local_20,0);
    if (piVar3 == (int *)0x0) {
      return (int *)0x0;
    }
    iVar6 = FUN_004754f4(param_1);
    *piVar3 = iVar6;
    if (iVar6 == 0) {
      return (int *)0x0;
    }
    if (local_20 == (int *)0x0) {
      return (int *)0x0;
    }
    iVar6 = *(int *)(param_1 + 0x20);
    if (*(int *)(param_1 + 0x24) <= iVar6) {
      return (int *)0x0;
    }
    *(int **)(*(int *)(param_1 + 0x1c) + iVar6 * 4) = local_20;
    *(int *)(param_1 + 0x20) = iVar6 + 1;
    return local_20;
  }
  if (iVar6 == 0x53) {
    cVar1 = pcVar9[1]   //possible issue identified - semgrep
    if (((9 < (byte)(cVar1 - 0x30U)) && (cVar1 != '_')) && (0x19 < (byte)(cVar1 + 0xbfU))) {
      piVar3 = (int *)FUN_0047733c();
      if ((piVar3 != (int *)0x0) && (*piVar3 == 0x15)) {
        return piVar3;
      }
      goto LAB_00475cf4;
    }
    piVar5 = (int *)FUN_00473458(param_1,0);
    if (**(char **)(param_1 + 0xc) != 'I') {
      return piVar5;
    }
LAB_00475b00:
    local_20 = piVar5;
    local_1c = (int *)FUN_004771ac(param_1);
    uVar8 = 4;
  }
  else {
    if (0x53 < iVar6) {
      if (iVar6 < 0x70) {
        if (0x6b < iVar6) goto LAB_00475708;
        if (iVar6 == 0x5a) goto LAB_00475814;
        if (iVar6 < 0x5b) {
          if (iVar6 == 0x54) {
            piVar5 = (int *)FUN_00473368();
            piVar3 = piVar5;
            if (**(char **)(param_1 + 0xc) != 'I') goto LAB_00475cf4;
            if (piVar5 == (int *)0x0) {
              return (int *)0x0;
            }
            iVar6 = *(int *)(param_1 + 0x20);
            if (*(int *)(param_1 + 0x24) <= iVar6) {
              return (int *)0x0;
            }
            *(int **)(*(int *)(param_1 + 0x1c) + iVar6 * 4) = piVar5;
            *(int *)(param_1 + 0x20) = iVar6 + 1;
            goto LAB_00475b00;
          }
          if (iVar6 != 0x55) {
            return (int *)0x0;
          }
          *(char **)(param_1 + 0xc) = pcVar9 + 1;
          local_20 = (int *)FUN_00475334();
          piVar5 = (int *)FUN_004754f4(param_1);
          uVar8 = 0x1c;
          local_1c = local_20;
          goto LAB_00475c2c;
        }
        bVar2 = 9 < iVar6 - 0x61U;
      }
      else {
        if (iVar6 == 0x75) {
          *(char **)(param_1 + 0xc) = pcVar9 + 1;
          piVar5 = (int *)FUN_00475334();
          uVar8 = 0x23;
          goto LAB_00475c28;
        }
        if (0x75 < iVar6) {
          if (0x7a < iVar6) {
            return (int *)0x0;
          }
          goto LAB_00475708;
        }
        bVar2 = iVar6 < 0x73;
      }
      if (bVar2) {
        return (int *)0x0;
      }
LAB_00475708:
      piVar3 = (int *)0x0;
      if ((&DWORD_004ada40 + iVar6 * 5 != (dword *)0x0) &&
         (iVar10 = *(int *)(param_1 + 0x14), iVar10 < *(int *)(param_1 + 0x18))) {
        piVar3 = (int *)(*(int *)(param_1 + 0x10) + iVar10 * 0xc);
        *(int *)(param_1 + 0x14) = iVar10 + 1;
        if (piVar3 != (int *)0x0) {
          *piVar3 = 0x22;
          piVar3[1] = (int)(&DWORD_004ada40 + iVar6 * 5);
        }
      }
      iVar6 = *(int *)(piVar3[1] + 4);
      *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;
      *(int *)(param_1 + 0x30) = *(int *)(param_1 + 0x30) + iVar6;
      return piVar3;
    }
    if (iVar6 == 0x47) {
      *(char **)(param_1 + 0xc) = pcVar9 + 1;
      piVar5 = (int *)FUN_004754f4();
      uVar8 = 0x21;
    }
    else if (iVar6 < 0x48) {
      if (iVar6 == 0x41) {
        pcVar7 = pcVar9 + 1;
        *(char **)(param_1 + 0xc) = pcVar7;
        piVar5 = (int *)0x0;
        if (pcVar9[1] != 0x5f) {
          if (((int)pcVar9[1] - 0x30U & 0xff) < 10) {
            do {
              iVar6 = *(int *)(param_1 + 0xc);
              iVar10 = iVar6 + 1;
              *(int *)(param_1 + 0xc) = iVar10;
            } while ((byte)(*(char *)(iVar6 + 1) - 0x30U) < 10);
            iVar6 = *(int *)(param_1 + 0x14);
            piVar3 = (int *)0x0;
            if (*(int *)(param_1 + 0x18) <= iVar6) goto LAB_00475cf4;
            piVar5 = (int *)(*(int *)(param_1 + 0x10) + iVar6 * 0xc);
            *(int *)(param_1 + 0x14) = iVar6 + 1;
            if ((piVar5 != (int *)0x0) && (iVar10 = iVar10 - (int)pcVar7, iVar10 != 0)) {
              piVar5[1] = (int)pcVar7;
              piVar5[2] = iVar10;
              *piVar5 = 0;
              goto LAB_004758fc;
            }
          }
          else {
            piVar5 = (int *)FUN_00476e1c();
            if (piVar5 != (int *)0x0) goto LAB_004758fc;
          }
LAB_00475a14:
          piVar3 = (int *)0x0;
          goto LAB_00475cf4;
        }
LAB_004758fc:
        piVar3 = (int *)0x0;
        if (**(char **)(param_1 + 0xc) != '_') goto LAB_00475cf4;
        *(char **)(param_1 + 0xc) = *(char **)(param_1 + 0xc) + 1;
        local_1c = (int *)FUN_004754f4(param_1);
        uVar8 = 0x25;
        goto LAB_00475c2c;
      }
      if (iVar6 < 0x42) {
        if (9 < iVar6 - 0x30U) {
          return (int *)0x0;
        }
        goto LAB_00475814;
      }
      if (iVar6 != 0x43) {
        if (iVar6 != 0x46) {
          return (int *)0x0;
        }
        *(char **)(param_1 + 0xc) = pcVar9 + 1;
        if (pcVar9[1] == 'Y') {
          *(char **)(param_1 + 0xc) = pcVar9 + 2;
        }
        piVar3 = (int *)FUN_00476208(param_1,1);
        if (**(char **)(param_1 + 0xc) == 'E') {
          *(char **)(param_1 + 0xc) = *(char **)(param_1 + 0xc) + 1;
        }
        else {
          piVar3 = (int *)0x0;
        }
        goto LAB_00475cf4;
      }
      *(char **)(param_1 + 0xc) = pcVar9 + 1;
      piVar5 = (int *)FUN_004754f4();
      uVar8 = 0x20;
    }
    else if (iVar6 == 0x4f) {
      *(char **)(param_1 + 0xc) = pcVar9 + 1;
      piVar5 = (int *)FUN_004754f4();
      uVar8 = 0x1f;
    }
    else {
      if (iVar6 < 0x50) {
        if (iVar6 == 0x4d) {
          *(char **)(param_1 + 0xc) = pcVar9 + 1;
          piVar5 = (int *)FUN_004754f4();
          ppiVar4 = (int **)FUN_00473228(param_1,&local_1c,1);
          if (ppiVar4 != (int **)0x0) {
            piVar3 = (int *)FUN_004754f4(param_1);
            *ppiVar4 = piVar3;
            if (piVar3 != (int *)0x0) {
              if ((ppiVar4 != &local_1c) && (*piVar3 != 0x24)) {
                piVar3 = (int *)0x0;
                if (local_1c == (int *)0x0) goto LAB_00475cf4;
                iVar6 = *(int *)(param_1 + 0x20);
                piVar3 = (int *)0x0;
                if (*(int *)(param_1 + 0x24) <= iVar6) goto LAB_00475cf4;
                *(int **)(*(int *)(param_1 + 0x1c) + iVar6 * 4) = local_1c;
                *(int *)(param_1 + 0x20) = iVar6 + 1;
              }
              uVar8 = 0x26;
              goto LAB_00475c2c;
            }
          }
          goto LAB_00475a14;
        }
        if (iVar6 != 0x4e) {
          return (int *)0x0;
        }
LAB_00475814:
        piVar3 = (int *)FUN_0047733c(param_1);
        goto LAB_00475cf4;
      }
      if (iVar6 == 0x50) {
        *(char **)(param_1 + 0xc) = pcVar9 + 1;
        piVar5 = (int *)FUN_004754f4();
        uVar8 = 0x1d;
      }
      else {
        if (iVar6 != 0x52) {
          return (int *)0x0;
        }
        *(char **)(param_1 + 0xc) = pcVar9 + 1;
        piVar5 = (int *)FUN_004754f4();
        uVar8 = 0x1e;
      }
    }
LAB_00475c28:
    local_1c = (int *)0x0;
  }
LAB_00475c2c:
  piVar3 = (int *)FUN_00473000(param_1,uVar8,piVar5,local_1c);
LAB_00475cf4:
  local_20 = piVar3;
  if (local_20 == (int *)0x0) {
    return (int *)0x0;
  }
  iVar6 = *(int *)(param_1 + 0x20);
  if (*(int *)(param_1 + 0x24) <= iVar6) {
    return (int *)0x0;
  }
  *(int **)(*(int *)(param_1 + 0x1c) + iVar6 * 4) = local_20;
  *(int *)(param_1 + 0x20) = iVar6 + 1;
  return local_20;
}