/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 FUN_0040eb80(char *param_1,char *param_2)

{
  char cVar1;
  bool bVar2;
  FILE *__stream;
  uint uVar3;
  char *pcVar4;
  char *pcVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  char local_128 [256];
  
  if ((param_2 != (char *)0x0) && (__stream = fopen(param_2,"r"), __stream != (FILE *)0x0)) {   //possible issue identified - semgrep
    iVar8 = 0;
    bVar2 = false;
LAB_0040ec08:
    while ((uVar3 = fgetc(__stream), uVar3 != 0xffffffff && (uVar3 != 10))) {   //possible issue identified - semgrep
      if ((!bVar2) && ((iVar8 != 0 || ((uVar3 & 0xffffff80) == 0)))) {
        if ((uVar3 == 0x27) || (uVar3 == 0x23)) {
          bVar2 = true;
        }
        else {
          local_128[iVar8] = (char)uVar3;
          iVar8 = iVar8 + 1;
        }
      }
    }
    local_128[iVar8] = '\0';
    pcVar5 = local_128;
    iVar7 = 0;
    do {
      pcVar4 = pcVar5;
      iVar6 = iVar7 + 1;
      if (iVar8 <= iVar7) goto LAB_0040ec84;
      pcVar5 = pcVar4 + 1;
      iVar7 = iVar6;
    } while ((*(ushort *)(___ctype_b + *pcVar4 * 2) & 0x20) == 0);
    *pcVar4 = '\0';
LAB_0040ec84:
    if (local_128[0] != '\0') {
      iVar6 = strcmp(local_128,param_1);
      pcVar5 = local_128 + iVar7;
      if (iVar6 == 0) {
        for (; iVar7 < iVar8; iVar7 = iVar7 + 1) {
          cVar1 = *pcVar5;
          pcVar5 = pcVar5 + 1;
          if ((*(ushort *)(___ctype_b + cVar1 * 2) & 0x20) == 0) {
            pcVar5 = local_128 + iVar7;
            iVar8 = strcasecmp(pcVar5,PTR_s_FOREGROUND_00430484);
            if (iVar8 == 0) {
              iVar7 = 0;
            }
            else {
              iVar8 = strcasecmp(pcVar5,PTR_s_BACKGROUND_0043048c);
              iVar7 = 1;
              if (iVar8 != 0) break;
            }
            fclose(__stream);
            return (&DAT_00430480)[iVar7 * 2];
          }
        }
      }
    }
    iVar8 = 0;
    if (uVar3 != 0xffffffff) {
      bVar2 = false;
      goto LAB_0040ec08;
    }
    fclose(__stream);
  }
  return 1;
}