
/* WARNING: Type propagation algorithm not settling */

char * rpl_strcasestr(char *haystack_start,char *needle_start)

{
  bool bVar1;
  undefined *puVar2;
  size_t sVar3;
  int *piVar4;
  int *piVar5;
  uchar *haystack;
  uchar *puVar6;
  void *pvVar7;
  char *pcVar8;
  uint uVar9;
  char *pcVar10;
  int *in_a2;
  char *pcVar11;
  int iVar12;
  int iVar13;
  char *pcVar14;
  uint uVar15;
  char *pcVar16;
  uint uVar17;
  char *pcVar18;
  char *pcVar19;
  uint uVar20;
  char *pcVar21;
  int iVar22;
  char *local_54;
  size_t period;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0004b460;
  uVar9 = (uint)*haystack_start;
  local_2c = *(int *)PTR___stack_chk_guard_0004b460;
  uVar20 = (uint)*needle_start;
  puVar6 = (uchar *)haystack_start;
  pcVar10 = needle_start;
  if (uVar9 == 0) {
    if (uVar20 != 0) {
      puVar6 = (uchar *)0x0;
    }
  }
  else if (uVar20 != 0) {
    bVar1 = true;
    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();
    iVar22 = *piVar4;
    pcVar14 = needle_start;
    pcVar18 = haystack_start;
    do {
      uVar15 = uVar9 & 0xff;
      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);
      }
      uVar17 = uVar20 & 0xff;
      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);
      }
      pcVar18 = pcVar18 + 1;
      uVar9 = (uint)*pcVar18;
      pcVar14 = pcVar14 + 1;
      uVar20 = (uint)*pcVar14;
      if (uVar15 != uVar17) {
        bVar1 = false;
      }
      if (uVar9 == 0) {
        puVar6 = (uchar *)0x0;
        if (uVar20 != 0) goto LAB_00034a2c;
        break;
      }
    } while (uVar20 != 0);
    pcVar14 = pcVar14 + -(int)needle_start;
    puVar6 = (uchar *)haystack_start;
    if (!bVar1) {
      haystack = (uchar *)(haystack_start + 1);
      pcVar18 = pcVar14 + -1;
      if (pcVar14 < (char *)0x20) {
        if (pcVar14 < (char *)0x3) {
          period = 1;
          local_54 = pcVar18;
        }
        else {
          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);
        }
        sVar3 = period;
        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);
        if (iVar22 == 0) {
          pcVar16 = (char *)0x0;
          pcVar11 = (char *)0x0;
LAB_00034b08:
          pcVar19 = pcVar14 + (int)pcVar16;
          pcVar10 = (char *)0x0;
          in_a2 = (int *)(pcVar19 + -(int)pcVar18);
          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);
          if (pvVar7 == (void *)0x0) {
            puVar6 = (uchar *)0x0;
            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;
            pcVar10 = (char *)(uint)(local_54 < pcVar11);
            pcVar8 = local_54;
            if (pcVar10 != (char *)0x0) {
              pcVar8 = pcVar11;
            }
            pcVar18 = pcVar19;
            if (pcVar8 < pcVar14) {
              iVar22 = *piVar4;
              do {
                uVar9 = (uint)(byte)needle_start[(int)pcVar8];
                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {
                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);
                }
                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];
                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {
                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);
                }
                if (uVar9 != uVar20) {
                  if (pcVar8 < pcVar14) {
                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;
                    pcVar11 = (char *)0x0;
                    goto LAB_00034b08;
                  }
                  break;
                }
                pcVar8 = pcVar8 + 1;
              } while (pcVar14 != pcVar8);
            }
            pcVar19 = local_54;
            if (pcVar11 < local_54) {
              iVar22 = *piVar4;
              pcVar8 = local_54;
              do {
                pcVar21 = pcVar8 + -1;
                uVar9 = (uint)(byte)needle_start[(int)pcVar21];
                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {
                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);
                }
                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];
                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {
                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);
                }
                pcVar19 = pcVar8;
              } while ((uVar9 == uVar20) &&
                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));
            }
            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;
            pcVar16 = pcVar16 + sVar3;
            pcVar11 = pcVar14 + -sVar3;
            goto LAB_00034b08;
          }
        }
        else {
          pcVar16 = (char *)0x0;
          pcVar11 = local_54;
          if (local_54 <= pcVar14 + -(int)local_54) {
            pcVar11 = pcVar14 + -(int)local_54;
          }
          period = (size_t)(pcVar11 + 1);
LAB_00034d40:
          pcVar19 = pcVar14 + (int)pcVar16;
          pcVar10 = (char *)0x0;
          in_a2 = (int *)(pcVar19 + -(int)pcVar18);
          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);
          if (pvVar7 == (void *)0x0) {
            puVar6 = (uchar *)0x0;
            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;
            pcVar18 = pcVar19;
            if (local_54 < pcVar14) {
              iVar22 = *piVar4;
              pcVar19 = local_54;
              do {
                uVar9 = (uint)(byte)needle_start[(int)pcVar19];
                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {
                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);
                }
                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];
                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {
                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);
                }
                if (uVar9 != uVar20) {
                  if (pcVar19 < pcVar14) {
                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;
                    goto LAB_00034d40;
                  }
                  break;
                }
                pcVar19 = pcVar19 + 1;
              } while (pcVar19 < pcVar14);
            }
            pcVar19 = local_54 + -1;
            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;
            iVar22 = *piVar4;
            while( true ) {
              uVar9 = (uint)(byte)needle_start[(int)pcVar19];
              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {
                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);
              }
              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];
              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {
                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);
              }
              pcVar19 = pcVar19 + -1;
              if (uVar9 != uVar20) break;
              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;
            }
            pcVar16 = pcVar16 + (int)(pcVar11 + 1);
            goto LAB_00034d40;
          }
        }
        puVar6 = (uchar *)0x0;
      }
      else {
        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,
                                              (size_t)pcVar14);
        pcVar10 = pcVar18;
        in_a2 = (int *)needle_start;
      }
    }
  }
LAB_00034a2c:
  if (local_2c == *(int *)puVar2) {
    return (char *)puVar6;
  }
  (*(code *)PTR___stack_chk_fail_0004b438)();
  iVar12 = 1;
  iVar22 = 1;
  pcVar18 = (char *)0xffffffff;
  pcVar14 = (char *)0x0;
  do {
    iVar13 = iVar22 + local_2c;
    pcVar16 = pcVar14 + iVar22;
    pcVar11 = pcVar14;
    while( true ) {
      pcVar14 = pcVar16;
      if (pcVar10 <= pcVar14) {
        iVar13 = 1;
        *in_a2 = iVar12;
        iVar22 = 1;
        pcVar14 = (char *)0x0;
        pcVar11 = (char *)0xffffffff;
        do {
          iVar12 = iVar22 + local_2c;
          pcVar19 = pcVar14 + iVar22;
          pcVar16 = pcVar14;
          while( true ) {
            pcVar14 = pcVar19;
            if (pcVar10 <= pcVar14) {
              pcVar10 = pcVar18 + 1;
              if (pcVar18 + 1 <= pcVar11 + 1) {
                *in_a2 = iVar13;
                pcVar10 = pcVar11 + 1;
              }
              return pcVar10;
            }
            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;
            iVar22 = 1;
            iVar13 = (int)pcVar14 - (int)pcVar11;
            iVar12 = local_2c + 1;
            pcVar19 = pcVar14 + 1;
            pcVar16 = pcVar14;
          }
          if (pcVar14[local_2c] == pcVar11[iVar12]) {
            if (iVar22 == iVar13) {
              iVar22 = 1;
            }
            else {
              iVar22 = iVar22 + 1;
              pcVar14 = pcVar16;
            }
          }
          else {
            iVar13 = 1;
            iVar22 = 1;
            pcVar14 = pcVar16 + 1;
            pcVar11 = pcVar16;
          }
        } while( true );
      }
      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;
      iVar22 = 1;
      iVar12 = (int)pcVar14 - (int)pcVar18;
      iVar13 = local_2c + 1;
      pcVar16 = pcVar14 + 1;
      pcVar11 = pcVar14;
    }
    if (pcVar14[local_2c] == pcVar18[iVar13]) {
      if (iVar22 == iVar12) {
        iVar22 = 1;
      }
      else {
        iVar22 = iVar22 + 1;
        pcVar14 = pcVar11;
      }
    }
    else {
      iVar12 = 1;
      iVar22 = 1;
      pcVar18 = pcVar11;
      pcVar14 = pcVar11 + 1;
    }
  } while( true );
LAB_00034f3c:
  puVar6 = haystack + (int)pcVar16;
  goto LAB_00034a2c;
}



/* WARNING: Type propagation algorithm not settling */

char * rpl_strcasestr(char *param_1,int *param_2,int *param_3)

{
  bool bVar1;
  undefined *puVar2;
  char *pcVar3;
  int *piVar4;
  int *piVar5;
  char *pcVar6;
  int *piVar7;
  uint uVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  char *pcVar17;
  int *piVar18;
  uint uVar19;
  int *piVar20;
  int iVar21;
  int *local_54;
  char *local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0004b460;
  uVar8 = (uint)*param_1;
  local_2c = *(int *)PTR___stack_chk_guard_0004b460;
  uVar19 = (uint)*(char *)param_2;
  pcVar17 = param_1;
  piVar9 = param_2;
  if (uVar8 == 0) {
    if (uVar19 != 0) {
      pcVar17 = (char *)0x0;
    }
  }
  else if (uVar19 != 0) {
    bVar1 = true;
    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();
    iVar21 = *piVar4;
    piVar13 = param_2;
    do {
      uVar14 = uVar8 & 0xff;
      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);
      }
      uVar16 = uVar19 & 0xff;
      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);
      }
      pcVar17 = pcVar17 + 1;
      uVar8 = (uint)*pcVar17;
      piVar13 = (int *)((int)piVar13 + 1);
      uVar19 = (uint)*(char *)piVar13;
      if (uVar14 != uVar16) {
        bVar1 = false;
      }
      if (uVar8 == 0) {
        pcVar17 = (char *)0x0;
        if (uVar19 != 0) goto LAB_00034a2c;
        break;
      }
    } while (uVar19 != 0);
    piVar13 = (int *)((int)piVar13 - (int)param_2);
    pcVar17 = param_1;
    if (!bVar1) {
      pcVar6 = param_1 + 1;
      piVar5 = (int *)((int)piVar13 + -1);
      if (piVar13 < (int *)0x20) {
        if (piVar13 < (int *)0x3) {
          local_30 = (char *)0x1;
          local_54 = piVar5;
        }
        else {
          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);
        }
        pcVar3 = local_30;
        iVar21 = (*(code *)PTR_strncasecmp_0004b378)
                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);
        if (iVar21 == 0) {
          pcVar15 = (char *)0x0;
          piVar10 = (int *)0x0;
LAB_00034b08:
          piVar18 = (int *)((int)piVar13 + (int)pcVar15);
          piVar9 = (int *)0x0;
          param_3 = (int *)((int)piVar18 - (int)piVar5);
          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);
          if (iVar21 == 0) {
            pcVar17 = (char *)0x0;
            if (piVar18 == (int *)0x0) goto LAB_00034a2c;
            piVar9 = (int *)(uint)(local_54 < piVar10);
            piVar7 = local_54;
            if (piVar9 != (int *)0x0) {
              piVar7 = piVar10;
            }
            piVar5 = piVar18;
            if (piVar7 < piVar13) {
              iVar21 = *piVar4;
              do {
                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);
                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);
                }
                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];
                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);
                }
                if (uVar8 != uVar19) {
                  if (piVar7 < piVar13) {
                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;
                    piVar10 = (int *)0x0;
                    goto LAB_00034b08;
                  }
                  break;
                }
                piVar7 = (int *)((int)piVar7 + 1);
              } while (piVar13 != piVar7);
            }
            piVar18 = local_54;
            if (piVar10 < local_54) {
              iVar21 = *piVar4;
              piVar7 = local_54;
              do {
                piVar20 = (int *)((int)piVar7 + -1);
                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);
                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);
                }
                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];
                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);
                }
                piVar18 = piVar7;
              } while ((uVar8 == uVar19) &&
                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));
            }
            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;
            pcVar15 = pcVar15 + (int)pcVar3;
            piVar10 = (int *)((int)piVar13 - (int)pcVar3);
            goto LAB_00034b08;
          }
        }
        else {
          pcVar15 = (char *)0x0;
          piVar10 = local_54;
          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {
            piVar10 = (int *)((int)piVar13 - (int)local_54);
          }
          local_30 = (char *)((int)piVar10 + 1);
LAB_00034d40:
          piVar18 = (int *)((int)piVar13 + (int)pcVar15);
          piVar9 = (int *)0x0;
          param_3 = (int *)((int)piVar18 - (int)piVar5);
          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);
          if (iVar21 == 0) {
            pcVar17 = (char *)0x0;
            if (piVar18 == (int *)0x0) goto LAB_00034a2c;
            piVar5 = piVar18;
            if (local_54 < piVar13) {
              iVar21 = *piVar4;
              piVar18 = local_54;
              do {
                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);
                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);
                }
                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];
                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);
                }
                if (uVar8 != uVar19) {
                  if (piVar18 < piVar13) {
                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;
                    goto LAB_00034d40;
                  }
                  break;
                }
                piVar18 = (int *)((int)piVar18 + 1);
              } while (piVar18 < piVar13);
            }
            pcVar17 = (char *)((int)local_54 + -1);
            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;
            iVar21 = *piVar4;
            while( true ) {
              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);
              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);
              }
              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];
              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);
              }
              pcVar17 = pcVar17 + -1;
              if (uVar8 != uVar19) break;
              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;
            }
            pcVar15 = pcVar15 + (int)piVar10 + 1;
            goto LAB_00034d40;
          }
        }
        pcVar17 = (char *)0x0;
      }
      else {
        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);
        piVar9 = piVar5;
        param_3 = param_2;
      }
    }
  }
LAB_00034a2c:
  if (local_2c == *(int *)puVar2) {
    return pcVar17;
  }
  (*(code *)PTR___stack_chk_fail_0004b438)();
  iVar11 = 1;
  iVar21 = 1;
  piVar4 = (int *)0xffffffff;
  piVar13 = (int *)0x0;
  do {
    iVar12 = iVar21 + local_2c;
    piVar10 = (int *)(iVar21 + (int)piVar13);
    piVar5 = piVar13;
    while( true ) {
      piVar13 = piVar10;
      if (piVar9 <= piVar13) {
        iVar12 = 1;
        *param_3 = iVar11;
        iVar21 = 1;
        piVar13 = (int *)0x0;
        piVar5 = (int *)0xffffffff;
        do {
          iVar11 = iVar21 + local_2c;
          piVar18 = (int *)(iVar21 + (int)piVar13);
          piVar10 = piVar13;
          while( true ) {
            piVar13 = piVar18;
            if (piVar9 <= piVar13) {
              pcVar17 = (char *)((int)piVar4 + 1);
              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {
                *param_3 = iVar12;
                pcVar17 = (char *)((int)piVar5 + 1);
              }
              return pcVar17;
            }
            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;
            iVar21 = 1;
            iVar12 = (int)piVar13 - (int)piVar5;
            iVar11 = local_2c + 1;
            piVar18 = (int *)((int)piVar13 + 1);
            piVar10 = piVar13;
          }
          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {
            if (iVar21 == iVar12) {
              iVar21 = 1;
            }
            else {
              iVar21 = iVar21 + 1;
              piVar13 = piVar10;
            }
          }
          else {
            iVar12 = 1;
            iVar21 = 1;
            piVar13 = (int *)((int)piVar10 + 1);
            piVar5 = piVar10;
          }
        } while( true );
      }
      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;
      iVar21 = 1;
      iVar11 = (int)piVar13 - (int)piVar4;
      iVar12 = local_2c + 1;
      piVar10 = (int *)((int)piVar13 + 1);
      piVar5 = piVar13;
    }
    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {
      if (iVar21 == iVar11) {
        iVar21 = 1;
      }
      else {
        iVar21 = iVar21 + 1;
        piVar13 = piVar5;
      }
    }
    else {
      iVar11 = 1;
      iVar21 = 1;
      piVar4 = piVar5;
      piVar13 = (int *)((int)piVar5 + 1);
    }
  } while( true );
LAB_00034f3c:
  pcVar17 = pcVar6 + (int)pcVar15;
  goto LAB_00034a2c;
}


lui gp,0x2
addiu gp,gp,-0x1774
addu gp,gp,t9
addiu sp,sp,-0x78
lw v0,-0x7cf0(gp)
sw s1,0x54(sp)
or s1,a0,zero
sw gp,0x10(sp)
sw ra,0x74(sp)
sw s8,0x70(sp)
sw s7,0x6c(sp)
sw s6,0x68(sp)
sw s5,0x64(sp)
sw s4,0x60(sp)
sw s3,0x5c(sp)
sw s2,0x58(sp)
sw s0,0x50(sp)
sw v0,0x34(sp)
lb v1,0x0(a0)
lw v0,0x0(v0)
lb s7,0x0(a1)
sw v1,0x20(sp)
sw v0,0x4c(sp)
beq v1,zero,0x00034f2c
_nop
beq s7,zero,0x00034a74
_lw t9,-0x7e78(gp)
or s2,a1,zero
li s6,0x1
jalr t9
_or s0,s2,zero
or s5,s1,zero
lw gp,0x10(sp)
lw s8,0x0(v0)
lw v1,0x20(sp)
b 0x00034960
_sw v0,0x1c(sp)
beq s7,zero,0x000349f0
_nop
andi s3,v1,0xff
sll v0,s3,0x1
addu v0,s8,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x0003499c
_andi s4,s7,0xff
lw t9,-0x7e70(gp)
jalr t9
_sll s3,s3,0x2
lw v0,0x0(v0)
lw gp,0x10(sp)
addu s3,v0,s3
lw s3,0x0(s3)
andi s4,s7,0xff
sll v0,s4,0x1
addu v0,s8,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x000349cc
_lw t9,-0x7e70(gp)
jalr t9
_sll s4,s4,0x2
lw v0,0x0(v0)
lw gp,0x10(sp)
addu s4,v0,s4
lw s4,0x0(s4)
addiu s5,s5,0x1
lb v1,0x0(s5)
addiu s0,s0,0x1
lb s7,0x0(s0)
xor s3,s3,s4
bne v1,zero,0x00034958
_movn s6,zero,s3
bne s7,zero,0x00034a2c
_or v0,zero,zero
bne s6,zero,0x00034a74
_subu s0,s0,s2
addiu v0,s1,0x1
sw v0,0x20(sp)
sltiu v0,s0,0x20
bne v0,zero,0x00034a7c
_addiu v1,s0,-0x1
lw t9,-0x7fc8(gp)
or a3,s0,zero
lw a0,0x20(sp)
or a2,s2,zero
addiu t9,t9,0x420c
bal 0x0003420c
_or a1,v1,zero
lw gp,0x10(sp)
lw v1,0x34(sp)
lw a0,0x4c(sp)
lw v1,0x0(v1)
bne a0,v1,0x00034f4c
_lw ra,0x74(sp)
lw s8,0x70(sp)
lw s7,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x78
b 0x00034a2c
_or v0,zero,zero
b 0x00034a2c
_or v0,s1,zero
sltiu v0,s0,0x3
bne v0,zero,0x00034f18
_lw t9,-0x7fc8(gp)
addiu a2,sp,0x48
sw v1,0x28(sp)
or a1,s0,zero
addiu t9,t9,0x3f40
bal 0x00033f40
_or a0,s2,zero
lw gp,0x10(sp)
lw v1,0x28(sp)
sw v0,0x24(sp)
lw v0,0x48(sp)
sw v0,0x3c(sp)
lw v0,0x3c(sp)
or a0,s2,zero
lw t9,-0x7dd8(gp)
lw a2,0x24(sp)
addu a1,s2,v0
jalr t9
_sw v1,0x28(sp)
lw gp,0x10(sp)
bne v0,zero,0x00034d04
_lw v1,0x28(sp)
lw a0,0x24(sp)
or s4,zero,zero
or s3,zero,zero
addiu v0,a0,-0x1
sw v0,0x40(sp)
lw v0,0x3c(sp)
subu v0,s0,v0
sw v0,0x44(sp)
li v0,0x1
subu v0,v0,a0
sw v0,0x38(sp)
lw v0,0x20(sp)
addu s5,s0,s3
lw t9,-0x7ecc(gp)
or a1,zero,zero
subu a2,s5,v1
sw s5,0x30(sp)
bal 0x00022da0
_addu a0,v0,v1
bne v0,zero,0x00034a6c
_lw gp,0x10(sp)
beq s5,zero,0x00034a2c
_or v0,zero,zero
lw v0,0x24(sp)
sltu a1,v0,s4
movn v0,s4,a1
or s7,v0,zero
sltu v0,v0,s0
beq v0,zero,0x00034c1c
_lw v0,0x1c(sp)
b 0x00034b88
_lw s8,0x0(v0)
jalr t9
_nop
sll v1,s5,0x2
lw v0,0x0(v0)
addu v1,v0,v1
lw v1,0x0(v1)
bne s6,v1,0x00034bfc
_lw gp,0x10(sp)
addiu s7,s7,0x1
beq s0,s7,0x00034c20
_lw v0,0x24(sp)
addu v0,s2,s7
lbu s6,0x0(v0)
sll v0,s6,0x1
addu v0,s8,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x00034bcc
_addu v0,s3,s7
lw t9,-0x7e70(gp)
jalr t9
_nop
sll v1,s6,0x2
lw v0,0x0(v0)
lw gp,0x10(sp)
addu v1,v0,v1
lw s6,0x0(v1)
addu v0,s3,s7
addu v0,s1,v0
lbu s5,0x1(v0)
sll v0,s5,0x1
addu v0,s8,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
bne v0,zero,0x00034b5c
_lw t9,-0x7e70(gp)
or v1,s5,zero
beq s6,v1,0x00034b80
_addiu s7,s7,0x1
addiu s7,s7,-0x1
sltu v0,s7,s0
beq v0,zero,0x00034c1c
_lw v0,0x38(sp)
or s4,zero,zero
lw v1,0x30(sp)
addu s3,v0,s3
b 0x00034b08
_addu s3,s3,s7
lw v0,0x24(sp)
sltu v0,s4,v0
beq v0,zero,0x00034f44
_lw s7,0x40(sp)
lw v0,0x1c(sp)
b 0x00034c44
_lw s8,0x0(v0)
beq s4,s7,0x00034cfc
_addiu v0,s7,-0x1
or s7,v0,zero
addu v0,s2,s7
lbu a0,0x0(v0)
sll v0,a0,0x1
addu v0,s8,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x00034c88
_addiu s5,s7,0x1
lw t9,-0x7e70(gp)
jalr t9
_sw a0,0x28(sp)
lw a0,0x28(sp)
lw v0,0x0(v0)
lw gp,0x10(sp)
sll v1,a0,0x2
addu v1,v0,v1
lw a0,0x0(v1)
addu v0,s3,s7
addu v0,s1,v0
lbu v1,0x1(v0)
sll v0,v1,0x1
addu v0,s8,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x00034cd4
_lw t9,-0x7e70(gp)
sw v1,0x2c(sp)
jalr t9
_sw a0,0x28(sp)
lw v1,0x2c(sp)
lw v0,0x0(v0)
lw gp,0x10(sp)
sll v1,v1,0x2
lw a0,0x28(sp)
addu v1,v0,v1
lw v1,0x0(v1)
beq a0,v1,0x00034c38
_nop
addiu s4,s4,0x1
sltu s4,s5,s4
bne s4,zero,0x00034f38
_lw s4,0x44(sp)
lw v0,0x3c(sp)
lw v1,0x30(sp)
b 0x00034b08
_addu s3,s3,v0
b 0x00034cdc
_or s5,s4,zero
lw a1,0x24(sp)
or s3,zero,zero
li s5,-0x1
subu a0,s0,a1
or a2,a1,zero
sltu v0,a0,a1
movz a2,a0,v0
sltu a0,a1,s0
sw a0,0x38(sp)
li a0,0x1
addiu v0,a2,0x1
subu a0,a0,a1
sw v0,0x40(sp)
sw a0,0x3c(sp)
sw v0,0x48(sp)
lw v0,0x20(sp)
addu s4,s0,s3
lw t9,-0x7ecc(gp)
or a1,zero,zero
subu a2,s4,v1
sw s4,0x30(sp)
bal 0x00022da0
_addu a0,v0,v1
bne v0,zero,0x00034a6c
_lw gp,0x10(sp)
beq s4,zero,0x00034a2c
_or v0,zero,zero
lw v0,0x38(sp)
beq v0,zero,0x00034e48
_lw v0,0x1c(sp)
lw s7,0x24(sp)
b 0x00034db8
_lw s6,0x0(v0)
jalr t9
_nop
sll v1,s4,0x2
lw v0,0x0(v0)
addu v1,v0,v1
lw v1,0x0(v1)
bne s8,v1,0x00034e2c
_lw gp,0x10(sp)
addiu s7,s7,0x1
sltu v0,s7,s0
beq v0,zero,0x00034e4c
_lw v0,0x24(sp)
addu v0,s2,s7
lbu s8,0x0(v0)
sll v0,s8,0x1
addu v0,s6,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x00034dfc
_addu v0,s3,s7
lw t9,-0x7e70(gp)
jalr t9
_nop
sll v1,s8,0x2
lw v0,0x0(v0)
lw gp,0x10(sp)
addu v1,v0,v1
lw s8,0x0(v1)
addu v0,s3,s7
addu v0,s1,v0
lbu s4,0x1(v0)
sll v0,s4,0x1
addu v0,s6,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
bne v0,zero,0x00034d88
_lw t9,-0x7e70(gp)
or v1,s4,zero
beq s8,v1,0x00034dac
_addiu s7,s7,0x1
addiu s7,s7,-0x1
sltu v0,s7,s0
beq v0,zero,0x00034e48
_lw v0,0x3c(sp)
lw v1,0x30(sp)
addu s3,v0,s3
b 0x00034d40
_addu s3,s3,s7
lw v0,0x24(sp)
addiu s7,v0,-0x1
beq s7,s5,0x00034f3c
_lw v0,0x20(sp)
lw v0,0x1c(sp)
b 0x00034e6c
_lw s6,0x0(v0)
beq s7,s5,0x00034f3c
_lw v0,0x20(sp)
addu v0,s2,s7
lbu a0,0x0(v0)
sll v0,a0,0x1
addu v0,s6,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x00034eb4
_addu v0,s3,s7
lw t9,-0x7e70(gp)
jalr t9
_sw a0,0x28(sp)
lw a0,0x28(sp)
lw v0,0x0(v0)
lw gp,0x10(sp)
sll v1,a0,0x2
addu v1,v0,v1
lw a0,0x0(v1)
addu v0,s3,s7
addu v0,s1,v0
lbu v1,0x1(v0)
sll v0,v1,0x1
addu v0,s6,v0
lhu v0,0x0(v0)
andi v0,v0,0x1
beq v0,zero,0x00034efc
_lw t9,-0x7e70(gp)
sw v1,0x2c(sp)
jalr t9
_sw a0,0x28(sp)
lw v1,0x2c(sp)
lw v0,0x0(v0)
lw gp,0x10(sp)
sll v1,v1,0x2
lw a0,0x28(sp)
addu v1,v0,v1
lw v1,0x0(v1)
beq a0,v1,0x00034e64
_addiu s7,s7,-0x1
addiu s7,s7,0x1
lw v0,0x40(sp)
lw v1,0x30(sp)
b 0x00034d40
_addu s3,s3,v0
li v0,0x1
sw v1,0x24(sp)
sw v0,0x3c(sp)
b 0x00034ab4
_sw v0,0x48(sp)
or v0,a0,zero
b 0x00034a2c
_movn v0,zero,s7
lw v0,0x20(sp)
b 0x00034a2c
_addu v0,v0,s3
b 0x00034cdc
_lw s5,0x24(sp)
lw t9,-0x7d18(gp)
jalr t9
_nop
nop
nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nchar * rpl_strcasestr(char *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}\n\n" comment (function_definition "char * rpl_strcasestr(char *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}" primitive_type (pointer_declarator "* rpl_strcasestr(char *param_1,int *param_2,int *param_3)" * (function_declarator "rpl_strcasestr(char *param_1,int *param_2,int *param_3)" identifier (parameter_list "(char *param_1,int *param_2,int *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0004b460;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0004b460" identifier = identifier) ;) (expression_statement "uVar8 = (uint)*param_1;" (assignment_expression "uVar8 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0004b460;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0004b460" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004b460" * (cast_expression "(int *)PTR___stack_chk_guard_0004b460" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar19 = (uint)*(char *)param_2;" (assignment_expression "uVar19 = (uint)*(char *)param_2" identifier = (binary_expression "(uint)*(char *)param_2" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar17 = param_1;" (assignment_expression "pcVar17 = param_1" identifier = identifier) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (if_statement "if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }" { (if_statement "if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar17 = (char *)0x0;\n    }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" else (if_statement "if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0004b2d8" * (cast_expression "(code *)PTR___ctype_b_loc_0004b2d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar13 = param_2;" (assignment_expression "piVar13 = param_2" identifier = identifier) ;) (do_statement "do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);" do (compound_statement "{\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    }" { (expression_statement "uVar14 = uVar8 & 0xff;" (assignment_expression "uVar14 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar14 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar14 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar14 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar14 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar14 * 2)" ( (binary_expression "iVar21 + uVar14 * 2" identifier + (binary_expression "uVar14 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar14 = *(uint *)(*piVar5 + uVar14 * 4);" (assignment_expression "uVar14 = *(uint *)(*piVar5 + uVar14 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar14 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar14 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar14 * 4)" ( (binary_expression "*piVar5 + uVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar16 = uVar19 & 0xff;" (assignment_expression "uVar16 = uVar19 & 0xff" identifier = (binary_expression "uVar19 & 0xff" identifier & number_literal)) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar16 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar16 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar16 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar16 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar16 * 2)" ( (binary_expression "iVar21 + uVar16 * 2" identifier + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar16 = *(uint *)(*piVar5 + uVar16 * 4);" (assignment_expression "uVar16 = *(uint *)(*piVar5 + uVar16 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar16 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar16 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar16 * 4)" ( (binary_expression "*piVar5 + uVar16 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar16 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = (uint)*pcVar17;" (assignment_expression "uVar8 = (uint)*pcVar17" identifier = (binary_expression "(uint)*pcVar17" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar19 = (uint)*(char *)piVar13;" (assignment_expression "uVar19 = (uint)*(char *)piVar13" identifier = (binary_expression "(uint)*(char *)piVar13" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (uVar14 != uVar16) {\n        bVar1 = false;\n      }" if (parenthesized_expression "(uVar14 != uVar16)" ( (binary_expression "uVar14 != uVar16" identifier != identifier) )) (compound_statement "{\n        bVar1 = false;\n      }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (if_statement "if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar19 != 0) goto LAB_00034a2c;" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) ;) (expression_statement "piVar13 = (int *)((int)piVar13 - (int)param_2);" (assignment_expression "piVar13 = (int *)((int)piVar13 - (int)param_2)" identifier = (cast_expression "(int *)((int)piVar13 - (int)param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)param_2)" ( (binary_expression "(int)piVar13 - (int)param_2" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar17 = param_1;" (assignment_expression "pcVar17 = param_1" identifier = identifier) ;) (if_statement "if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }" { (expression_statement "pcVar6 = param_1 + 1;" (assignment_expression "pcVar6 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = (int *)((int)piVar13 + -1);" (assignment_expression "piVar5 = (int *)((int)piVar13 + -1)" identifier = (cast_expression "(int *)((int)piVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" if (parenthesized_expression "(piVar13 < (int *)0x20)" ( (binary_expression "piVar13 < (int *)0x20" identifier < (cast_expression "(int *)0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }" { (if_statement "if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" if (parenthesized_expression "(piVar13 < (int *)0x3)" ( (binary_expression "piVar13 < (int *)0x3" identifier < (cast_expression "(int *)0x3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }" { (expression_statement "local_30 = (char *)0x1;" (assignment_expression "local_30 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_54 = piVar5;" (assignment_expression "local_54 = piVar5" identifier = identifier) ;) }) (else_clause "else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" else (compound_statement "{\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" { (expression_statement "local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);" (assignment_expression "local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30)" identifier = (cast_expression "(int *)FUN_00033f40(param_2,piVar13,&local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00033f40(param_2,piVar13,&local_30)" identifier (argument_list "(param_2,piVar13,&local_30)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "pcVar3 = local_30;" (assignment_expression "pcVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);" (assignment_expression "iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54)" identifier = (call_expression "(*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54)" (parenthesized_expression "(*(code *)PTR_strncasecmp_0004b378)" ( (pointer_expression "*(code *)PTR_strncasecmp_0004b378" * (cast_expression "(code *)PTR_strncasecmp_0004b378" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,(char *)((int)param_2 + (int)local_30),local_54)" ( identifier , (cast_expression "(char *)((int)param_2 + (int)local_30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)local_30)" ( (binary_expression "(int)param_2 + (int)local_30" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , identifier )))) ;) (if_statement "if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }" { (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);" statement_identifier : (expression_statement "piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (assignment_expression "piVar18 = (int *)((int)piVar13 + (int)pcVar15)" identifier = (cast_expression "(int *)((int)piVar13 + (int)pcVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (int)pcVar15)" ( (binary_expression "(int)piVar13 + (int)pcVar15" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = (int *)((int)piVar18 - (int)piVar5);" (assignment_expression "param_3 = (int *)((int)piVar18 - (int)piVar5)" identifier = (cast_expression "(int *)((int)piVar18 - (int)piVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 - (int)piVar5)" ( (binary_expression "(int)piVar18 - (int)piVar5" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar21 = rpl_memchr(pcVar6 + (int)piVar5);" (assignment_expression "iVar21 = rpl_memchr(pcVar6 + (int)piVar5)" identifier = (call_expression "rpl_memchr(pcVar6 + (int)piVar5)" identifier (argument_list "(pcVar6 + (int)piVar5)" ( (binary_expression "pcVar6 + (int)piVar5" identifier + (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar18 == (int *)0x0) goto LAB_00034a2c;" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (expression_statement "piVar9 = (int *)(uint)(local_54 < piVar10);" (assignment_expression "piVar9 = (int *)(uint)(local_54 < piVar10)" identifier = (cast_expression "(int *)(uint)(local_54 < piVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_54 < piVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < piVar10)" ( (binary_expression "local_54 < piVar10" identifier < identifier) ))))) ;) (expression_statement "piVar7 = local_54;" (assignment_expression "piVar7 = local_54" identifier = identifier) ;) (if_statement "if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              piVar7 = piVar10;\n            }" { (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" identifier = identifier) ;) })) (expression_statement "piVar5 = piVar18;" (assignment_expression "piVar5 = piVar18" identifier = identifier) ;) (if_statement "if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }" if (parenthesized_expression "(piVar7 < piVar13)" ( (binary_expression "piVar7 < piVar13" identifier < identifier) )) (compound_statement "{\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }" { (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (do_statement "do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);" do (compound_statement "{\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              }" { (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)piVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)piVar7)" ( (binary_expression "(int)param_2 + (int)piVar7" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar8 * 4)" ( (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar7))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)piVar7)" identifier + (cast_expression "(int)(pcVar15 + (int)piVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)piVar7)" ( (binary_expression "pcVar15 + (int)piVar7" identifier + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar19 * 4)" ( (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (if_statement "if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" if (parenthesized_expression "(uVar8 != uVar19)" ( (binary_expression "uVar8 != uVar19" identifier != identifier) )) (compound_statement "{\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" { (if_statement "if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }" if (parenthesized_expression "(piVar7 < piVar13)" ( (binary_expression "piVar7 < piVar13" identifier < identifier) )) (compound_statement "{\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }" { (expression_statement "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;" (assignment_expression "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7" identifier = (binary_expression "pcVar15 + (1 - (int)local_54) + (int)piVar7" (binary_expression "pcVar15 + (1 - (int)local_54)" identifier + (parenthesized_expression "(1 - (int)local_54)" ( (binary_expression "1 - (int)local_54" number_literal - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00034b08;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "piVar7 = (int *)((int)piVar7 + 1);" (assignment_expression "piVar7 = (int *)((int)piVar7 + 1)" identifier = (cast_expression "(int *)((int)piVar7 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 1)" ( (binary_expression "(int)piVar7 + 1" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(piVar13 != piVar7)" ( (binary_expression "piVar13 != piVar7" identifier != identifier) )) ;) })) (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" identifier = identifier) ;) (if_statement "if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }" if (parenthesized_expression "(piVar10 < local_54)" ( (binary_expression "piVar10 < local_54" identifier < identifier) )) (compound_statement "{\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }" { (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar7 = local_54;" (assignment_expression "piVar7 = local_54" identifier = identifier) ;) (do_statement "do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));" do (compound_statement "{\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              }" { (expression_statement "piVar20 = (int *)((int)piVar7 + -1);" (assignment_expression "piVar20 = (int *)((int)piVar7 + -1)" identifier = (cast_expression "(int *)((int)piVar7 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + -1)" ( (binary_expression "(int)piVar7 + -1" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar20)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)piVar20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)piVar20)" ( (binary_expression "(int)param_2 + (int)piVar20" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar8 * 4)" ( (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar20))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)piVar20)" identifier + (cast_expression "(int)(pcVar15 + (int)piVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)piVar20)" ( (binary_expression "pcVar15 + (int)piVar20" identifier + (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar19 * 4)" ( (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" identifier = identifier) ;) }) while (parenthesized_expression "((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20))" ( (binary_expression "(uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20)" (parenthesized_expression "(uVar8 == uVar19)" ( (binary_expression "uVar8 == uVar19" identifier == identifier) )) && (parenthesized_expression "(piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20)" ( (comma_expression "piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20" (assignment_expression "piVar18 = piVar10" identifier = identifier) , (comma_expression "piVar7 = piVar20, piVar10 != piVar20" (assignment_expression "piVar7 = piVar20" identifier = identifier) , (binary_expression "piVar10 != piVar20" identifier != identifier))) ))) )) ;) })) (if_statement "if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;" if (parenthesized_expression "(piVar18 < (int *)((int)piVar10 + 1))" ( (binary_expression "piVar18 < (int *)((int)piVar10 + 1)" identifier < (cast_expression "(int *)((int)piVar10 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 1)" ( (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) (expression_statement "pcVar15 = pcVar15 + (int)pcVar3;" (assignment_expression "pcVar15 = pcVar15 + (int)pcVar3" identifier = (binary_expression "pcVar15 + (int)pcVar3" identifier + (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar10 = (int *)((int)piVar13 - (int)pcVar3);" (assignment_expression "piVar10 = (int *)((int)piVar13 - (int)pcVar3)" identifier = (cast_expression "(int *)((int)piVar13 - (int)pcVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)pcVar3)" ( (binary_expression "(int)piVar13 - (int)pcVar3" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto LAB_00034b08;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" else (compound_statement "{\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" { (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar10 = local_54;" (assignment_expression "piVar10 = local_54" identifier = identifier) ;) (if_statement "if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }" if (parenthesized_expression "(local_54 <= (int *)((int)piVar13 - (int)local_54))" ( (binary_expression "local_54 <= (int *)((int)piVar13 - (int)local_54)" identifier <= (cast_expression "(int *)((int)piVar13 - (int)local_54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)local_54)" ( (binary_expression "(int)piVar13 - (int)local_54" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }" { (expression_statement "piVar10 = (int *)((int)piVar13 - (int)local_54);" (assignment_expression "piVar10 = (int *)((int)piVar13 - (int)local_54)" identifier = (cast_expression "(int *)((int)piVar13 - (int)local_54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)local_54)" ( (binary_expression "(int)piVar13 - (int)local_54" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "local_30 = (char *)((int)piVar10 + 1);" (assignment_expression "local_30 = (char *)((int)piVar10 + 1)" identifier = (cast_expression "(char *)((int)piVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 1)" ( (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);" statement_identifier : (expression_statement "piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (assignment_expression "piVar18 = (int *)((int)piVar13 + (int)pcVar15)" identifier = (cast_expression "(int *)((int)piVar13 + (int)pcVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (int)pcVar15)" ( (binary_expression "(int)piVar13 + (int)pcVar15" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = (int *)((int)piVar18 - (int)piVar5);" (assignment_expression "param_3 = (int *)((int)piVar18 - (int)piVar5)" identifier = (cast_expression "(int *)((int)piVar18 - (int)piVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 - (int)piVar5)" ( (binary_expression "(int)piVar18 - (int)piVar5" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar21 = rpl_memchr(pcVar6 + (int)piVar5);" (assignment_expression "iVar21 = rpl_memchr(pcVar6 + (int)piVar5)" identifier = (call_expression "rpl_memchr(pcVar6 + (int)piVar5)" identifier (argument_list "(pcVar6 + (int)piVar5)" ( (binary_expression "pcVar6 + (int)piVar5" identifier + (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar18 == (int *)0x0) goto LAB_00034a2c;" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (expression_statement "piVar5 = piVar18;" (assignment_expression "piVar5 = piVar18" identifier = identifier) ;) (if_statement "if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }" if (parenthesized_expression "(local_54 < piVar13)" ( (binary_expression "local_54 < piVar13" identifier < identifier) )) (compound_statement "{\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }" { (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" identifier = identifier) ;) (do_statement "do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);" do (compound_statement "{\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              }" { (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)piVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)piVar18)" ( (binary_expression "(int)param_2 + (int)piVar18" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar7 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar7 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar7 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar7 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + uVar8 * 4)" ( (binary_expression "*piVar7 + uVar8 * 4" (pointer_expression "*piVar7" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar18))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)piVar18)" identifier + (cast_expression "(int)(pcVar15 + (int)piVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)piVar18)" ( (binary_expression "pcVar15 + (int)piVar18" identifier + (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar7 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar7 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar7 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar7 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + uVar19 * 4)" ( (binary_expression "*piVar7 + uVar19 * 4" (pointer_expression "*piVar7" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (if_statement "if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" if (parenthesized_expression "(uVar8 != uVar19)" ( (binary_expression "uVar8 != uVar19" identifier != identifier) )) (compound_statement "{\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" { (if_statement "if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }" if (parenthesized_expression "(piVar18 < piVar13)" ( (binary_expression "piVar18 < piVar13" identifier < identifier) )) (compound_statement "{\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }" { (expression_statement "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;" (assignment_expression "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18" identifier = (binary_expression "pcVar15 + (1 - (int)local_54) + (int)piVar18" (binary_expression "pcVar15 + (1 - (int)local_54)" identifier + (parenthesized_expression "(1 - (int)local_54)" ( (binary_expression "1 - (int)local_54" number_literal - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00034d40;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "piVar18 = (int *)((int)piVar18 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar18 + 1)" identifier = (cast_expression "(int *)((int)piVar18 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + 1)" ( (binary_expression "(int)piVar18 + 1" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(piVar18 < piVar13)" ( (binary_expression "piVar18 < piVar13" identifier < identifier) )) ;) })) (expression_statement "pcVar17 = (char *)((int)local_54 + -1);" (assignment_expression "pcVar17 = (char *)((int)local_54 + -1)" identifier = (cast_expression "(char *)((int)local_54 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + -1)" ( (binary_expression "(int)local_54 + -1" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;" if (parenthesized_expression "(pcVar17 == (char *)0xffffffff)" ( (binary_expression "pcVar17 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (while_statement "while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" { (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)pcVar17)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)pcVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)pcVar17)" ( (binary_expression "(int)param_2 + (int)pcVar17" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar8 * 4)" ( (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)pcVar17))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)pcVar17)" identifier + (cast_expression "(int)(pcVar15 + (int)pcVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)pcVar17)" ( (binary_expression "pcVar15 + (int)pcVar17" identifier + (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar19 * 4)" ( (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "pcVar17 = pcVar17 + -1;" (assignment_expression "pcVar17 = pcVar17 + -1" identifier = (binary_expression "pcVar17 + -1" identifier + number_literal)) ;) (if_statement "if (uVar8 != uVar19) break;" if (parenthesized_expression "(uVar8 != uVar19)" ( (binary_expression "uVar8 != uVar19" identifier != identifier) )) (break_statement "break;" break ;)) (if_statement "if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;" if (parenthesized_expression "(pcVar17 == (char *)0xffffffff)" ( (binary_expression "pcVar17 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) })) (expression_statement "pcVar15 = pcVar15 + (int)piVar10 + 1;" (assignment_expression "pcVar15 = pcVar15 + (int)piVar10 + 1" identifier = (binary_expression "pcVar15 + (int)piVar10 + 1" (binary_expression "pcVar15 + (int)piVar10" identifier + (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (goto_statement "goto LAB_00034d40;" goto statement_identifier ;) })) }))) (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" else (compound_statement "{\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" { (expression_statement "pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);" (assignment_expression "pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" identifier = (cast_expression "(char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" identifier (argument_list "(pcVar6,piVar5,param_2,piVar13)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" identifier = identifier) ;) (expression_statement "param_3 = param_2;" (assignment_expression "param_3 = param_2" identifier = identifier) ;) }))) })) })))) (labeled_statement "LAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar17;\n  }" { (return_statement "return pcVar17;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0004b438)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004b438)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004b438)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004b438" * (cast_expression "(code *)PTR___stack_chk_fail_0004b438" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar4 = (int *)0xffffffff;" (assignment_expression "piVar4 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar13 = (int *)0x0;" (assignment_expression "piVar13 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );" do (compound_statement "{\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  }" { (expression_statement "iVar12 = iVar21 + local_2c;" (assignment_expression "iVar12 = iVar21 + local_2c" identifier = (binary_expression "iVar21 + local_2c" identifier + identifier)) ;) (expression_statement "piVar10 = (int *)(iVar21 + (int)piVar13);" (assignment_expression "piVar10 = (int *)(iVar21 + (int)piVar13)" identifier = (cast_expression "(int *)(iVar21 + (int)piVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + (int)piVar13)" ( (binary_expression "iVar21 + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar5 = piVar13;" (assignment_expression "piVar5 = piVar13" identifier = identifier) ;) (while_statement "while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }" { (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" identifier = identifier) ;) (if_statement "if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(piVar9 <= piVar13)" ( (binary_expression "piVar9 <= piVar13" identifier <= identifier) )) (compound_statement "{\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "*param_3 = iVar11;" (assignment_expression "*param_3 = iVar11" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)0x0;" (assignment_expression "piVar13 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar5 = (int *)0xffffffff;" (assignment_expression "piVar5 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );" do (compound_statement "{\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        }" { (expression_statement "iVar11 = iVar21 + local_2c;" (assignment_expression "iVar11 = iVar21 + local_2c" identifier = (binary_expression "iVar21 + local_2c" identifier + identifier)) ;) (expression_statement "piVar18 = (int *)(iVar21 + (int)piVar13);" (assignment_expression "piVar18 = (int *)(iVar21 + (int)piVar13)" identifier = (cast_expression "(int *)(iVar21 + (int)piVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + (int)piVar13)" ( (binary_expression "iVar21 + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar10 = piVar13;" (assignment_expression "piVar10 = piVar13" identifier = identifier) ;) (while_statement "while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }" { (expression_statement "piVar13 = piVar18;" (assignment_expression "piVar13 = piVar18" identifier = identifier) ;) (if_statement "if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }" if (parenthesized_expression "(piVar9 <= piVar13)" ( (binary_expression "piVar9 <= piVar13" identifier <= identifier) )) (compound_statement "{\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }" { (expression_statement "pcVar17 = (char *)((int)piVar4 + 1);" (assignment_expression "pcVar17 = (char *)((int)piVar4 + 1)" identifier = (cast_expression "(char *)((int)piVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 1)" ( (binary_expression "(int)piVar4 + 1" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }" if (parenthesized_expression "((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1))" ( (binary_expression "(char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)" (cast_expression "(char *)((int)piVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 1)" ( (binary_expression "(int)piVar4 + 1" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) <= (cast_expression "(char *)((int)piVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }" { (expression_statement "*param_3 = iVar12;" (assignment_expression "*param_3 = iVar12" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pcVar17 = (char *)((int)piVar5 + 1);" (assignment_expression "pcVar17 = (char *)((int)piVar5 + 1)" identifier = (cast_expression "(char *)((int)piVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (return_statement "return pcVar17;" return identifier ;) })) (if_statement "if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;" if (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11))" ( (binary_expression "*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) <= (pointer_expression "*(byte *)((int)piVar5 + iVar11)" * (cast_expression "(byte *)((int)piVar5 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + iVar11)" ( (binary_expression "(int)piVar5 + iVar11" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar12 = (int)piVar13 - (int)piVar5;" (assignment_expression "iVar12 = (int)piVar13 - (int)piVar5" identifier = (binary_expression "(int)piVar13 - (int)piVar5" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar11 = local_2c + 1;" (assignment_expression "iVar11 = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar10 = piVar13;" (assignment_expression "piVar10 = piVar13" identifier = identifier) ;) })) (if_statement "if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" if (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11))" ( (binary_expression "*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (pointer_expression "*(byte *)((int)piVar5 + iVar11)" * (cast_expression "(byte *)((int)piVar5 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + iVar11)" ( (binary_expression "(int)piVar5 + iVar11" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) (compound_statement "{\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }" { (if_statement "if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" if (parenthesized_expression "(iVar21 == iVar12)" ( (binary_expression "iVar21 == iVar12" identifier == identifier) )) (compound_statement "{\n              iVar21 = 1;\n            }" { (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" else (compound_statement "{\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" { (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" identifier = identifier) ;) }))) }) (else_clause "else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" else (compound_statement "{\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)((int)piVar10 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar10 + 1)" identifier = (cast_expression "(int *)((int)piVar10 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 1)" ( (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar5 = piVar10;" (assignment_expression "piVar5 = piVar10" identifier = identifier) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;" if (parenthesized_expression "(*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13))" ( (binary_expression "*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)" (pointer_expression "*(byte *)((int)piVar4 + iVar12)" * (cast_expression "(byte *)((int)piVar4 + iVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + iVar12)" ( (binary_expression "(int)piVar4 + iVar12" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) <= (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar11 = (int)piVar13 - (int)piVar4;" (assignment_expression "iVar11 = (int)piVar13 - (int)piVar4" identifier = (binary_expression "(int)piVar13 - (int)piVar4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar12 = local_2c + 1;" (assignment_expression "iVar12 = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar10 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar5 = piVar13;" (assignment_expression "piVar5 = piVar13" identifier = identifier) ;) })) (if_statement "if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" if (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12))" ( (binary_expression "*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (pointer_expression "*(byte *)((int)piVar4 + iVar12)" * (cast_expression "(byte *)((int)piVar4 + iVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + iVar12)" ( (binary_expression "(int)piVar4 + iVar12" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) (compound_statement "{\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }" { (if_statement "if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" if (parenthesized_expression "(iVar21 == iVar11)" ( (binary_expression "iVar21 == iVar11" identifier == identifier) )) (compound_statement "{\n        iVar21 = 1;\n      }" { (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" else (compound_statement "{\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" { (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar5;" (assignment_expression "piVar13 = piVar5" identifier = identifier) ;) }))) }) (else_clause "else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" else (compound_statement "{\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) (expression_statement "piVar13 = (int *)((int)piVar5 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar5 + 1)" identifier = (cast_expression "(int *)((int)piVar5 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;" statement_identifier : (expression_statement "pcVar17 = pcVar6 + (int)pcVar15;" (assignment_expression "pcVar17 = pcVar6 + (int)pcVar15" identifier = (binary_expression "pcVar6 + (int)pcVar15" identifier + (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nchar * rpl_strcasestr(char *haystack_start,char *needle_start)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  size_t sVar3;\n  int *piVar4;\n  int *piVar5;\n  uchar *haystack;\n  uchar *puVar6;\n  void *pvVar7;\n  char *pcVar8;\n  uint uVar9;\n  char *pcVar10;\n  int *in_a2;\n  char *pcVar11;\n  int iVar12;\n  int iVar13;\n  char *pcVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  char *pcVar18;\n  char *pcVar19;\n  uint uVar20;\n  char *pcVar21;\n  int iVar22;\n  char *local_54;\n  size_t period;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar9 = (uint)*haystack_start;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar20 = (uint)*needle_start;\n  puVar6 = (uchar *)haystack_start;\n  pcVar10 = needle_start;\n  if (uVar9 == 0) {\n    if (uVar20 != 0) {\n      puVar6 = (uchar *)0x0;\n    }\n  }\n  else if (uVar20 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar22 = *piVar4;\n    pcVar14 = needle_start;\n    pcVar18 = haystack_start;\n    do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);\n    pcVar14 = pcVar14 + -(int)needle_start;\n    puVar6 = (uchar *)haystack_start;\n    if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return (char *)puVar6;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar12 = 1;\n  iVar22 = 1;\n  pcVar18 = (char *)0xffffffff;\n  pcVar14 = (char *)0x0;\n  do {\n    iVar13 = iVar22 + local_2c;\n    pcVar16 = pcVar14 + iVar22;\n    pcVar11 = pcVar14;\n    while( true ) {\n      pcVar14 = pcVar16;\n      if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }\n      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;\n      iVar22 = 1;\n      iVar12 = (int)pcVar14 - (int)pcVar18;\n      iVar13 = local_2c + 1;\n      pcVar16 = pcVar14 + 1;\n      pcVar11 = pcVar14;\n    }\n    if (pcVar14[local_2c] == pcVar18[iVar13]) {\n      if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }\n    }\n    else {\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }\n  } while( true );\nLAB_00034f3c:\n  puVar6 = haystack + (int)pcVar16;\n  goto LAB_00034a2c;\n}\n\n" comment (function_definition "char * rpl_strcasestr(char *haystack_start,char *needle_start)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  size_t sVar3;\n  int *piVar4;\n  int *piVar5;\n  uchar *haystack;\n  uchar *puVar6;\n  void *pvVar7;\n  char *pcVar8;\n  uint uVar9;\n  char *pcVar10;\n  int *in_a2;\n  char *pcVar11;\n  int iVar12;\n  int iVar13;\n  char *pcVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  char *pcVar18;\n  char *pcVar19;\n  uint uVar20;\n  char *pcVar21;\n  int iVar22;\n  char *local_54;\n  size_t period;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar9 = (uint)*haystack_start;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar20 = (uint)*needle_start;\n  puVar6 = (uchar *)haystack_start;\n  pcVar10 = needle_start;\n  if (uVar9 == 0) {\n    if (uVar20 != 0) {\n      puVar6 = (uchar *)0x0;\n    }\n  }\n  else if (uVar20 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar22 = *piVar4;\n    pcVar14 = needle_start;\n    pcVar18 = haystack_start;\n    do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);\n    pcVar14 = pcVar14 + -(int)needle_start;\n    puVar6 = (uchar *)haystack_start;\n    if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return (char *)puVar6;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar12 = 1;\n  iVar22 = 1;\n  pcVar18 = (char *)0xffffffff;\n  pcVar14 = (char *)0x0;\n  do {\n    iVar13 = iVar22 + local_2c;\n    pcVar16 = pcVar14 + iVar22;\n    pcVar11 = pcVar14;\n    while( true ) {\n      pcVar14 = pcVar16;\n      if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }\n      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;\n      iVar22 = 1;\n      iVar12 = (int)pcVar14 - (int)pcVar18;\n      iVar13 = local_2c + 1;\n      pcVar16 = pcVar14 + 1;\n      pcVar11 = pcVar14;\n    }\n    if (pcVar14[local_2c] == pcVar18[iVar13]) {\n      if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }\n    }\n    else {\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }\n  } while( true );\nLAB_00034f3c:\n  puVar6 = haystack + (int)pcVar16;\n  goto LAB_00034a2c;\n}" primitive_type (pointer_declarator "* rpl_strcasestr(char *haystack_start,char *needle_start)" * (function_declarator "rpl_strcasestr(char *haystack_start,char *needle_start)" identifier (parameter_list "(char *haystack_start,char *needle_start)" ( (parameter_declaration "char *haystack_start" primitive_type (pointer_declarator "*haystack_start" * identifier)) , (parameter_declaration "char *needle_start" primitive_type (pointer_declarator "*needle_start" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  size_t sVar3;\n  int *piVar4;\n  int *piVar5;\n  uchar *haystack;\n  uchar *puVar6;\n  void *pvVar7;\n  char *pcVar8;\n  uint uVar9;\n  char *pcVar10;\n  int *in_a2;\n  char *pcVar11;\n  int iVar12;\n  int iVar13;\n  char *pcVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  char *pcVar18;\n  char *pcVar19;\n  uint uVar20;\n  char *pcVar21;\n  int iVar22;\n  char *local_54;\n  size_t period;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar9 = (uint)*haystack_start;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar20 = (uint)*needle_start;\n  puVar6 = (uchar *)haystack_start;\n  pcVar10 = needle_start;\n  if (uVar9 == 0) {\n    if (uVar20 != 0) {\n      puVar6 = (uchar *)0x0;\n    }\n  }\n  else if (uVar20 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar22 = *piVar4;\n    pcVar14 = needle_start;\n    pcVar18 = haystack_start;\n    do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);\n    pcVar14 = pcVar14 + -(int)needle_start;\n    puVar6 = (uchar *)haystack_start;\n    if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return (char *)puVar6;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar12 = 1;\n  iVar22 = 1;\n  pcVar18 = (char *)0xffffffff;\n  pcVar14 = (char *)0x0;\n  do {\n    iVar13 = iVar22 + local_2c;\n    pcVar16 = pcVar14 + iVar22;\n    pcVar11 = pcVar14;\n    while( true ) {\n      pcVar14 = pcVar16;\n      if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }\n      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;\n      iVar22 = 1;\n      iVar12 = (int)pcVar14 - (int)pcVar18;\n      iVar13 = local_2c + 1;\n      pcVar16 = pcVar14 + 1;\n      pcVar11 = pcVar14;\n    }\n    if (pcVar14[local_2c] == pcVar18[iVar13]) {\n      if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }\n    }\n    else {\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }\n  } while( true );\nLAB_00034f3c:\n  puVar6 = haystack + (int)pcVar16;\n  goto LAB_00034a2c;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uchar *haystack;" type_identifier (pointer_declarator "*haystack" * identifier) ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int *in_a2;" primitive_type (pointer_declarator "*in_a2" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "char *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "size_t period;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0004b460;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0004b460" identifier = identifier) ;) (expression_statement "uVar9 = (uint)*haystack_start;" (assignment_expression "uVar9 = (uint)*haystack_start" identifier = (binary_expression "(uint)*haystack_start" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0004b460;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0004b460" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004b460" * (cast_expression "(int *)PTR___stack_chk_guard_0004b460" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar20 = (uint)*needle_start;" (assignment_expression "uVar20 = (uint)*needle_start" identifier = (binary_expression "(uint)*needle_start" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar6 = (uchar *)haystack_start;" (assignment_expression "puVar6 = (uchar *)haystack_start" identifier = (cast_expression "(uchar *)haystack_start" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar10 = needle_start;" (assignment_expression "pcVar10 = needle_start" identifier = identifier) ;) (if_statement "if (uVar9 == 0) {\n    if (uVar20 != 0) {\n      puVar6 = (uchar *)0x0;\n    }\n  }\n  else if (uVar20 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar22 = *piVar4;\n    pcVar14 = needle_start;\n    pcVar18 = haystack_start;\n    do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);\n    pcVar14 = pcVar14 + -(int)needle_start;\n    puVar6 = (uchar *)haystack_start;\n    if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }\n  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar20 != 0) {\n      puVar6 = (uchar *)0x0;\n    }\n  }" { (if_statement "if (uVar20 != 0) {\n      puVar6 = (uchar *)0x0;\n    }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      puVar6 = (uchar *)0x0;\n    }" { (expression_statement "puVar6 = (uchar *)0x0;" (assignment_expression "puVar6 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else if (uVar20 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar22 = *piVar4;\n    pcVar14 = needle_start;\n    pcVar18 = haystack_start;\n    do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);\n    pcVar14 = pcVar14 + -(int)needle_start;\n    puVar6 = (uchar *)haystack_start;\n    if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }\n  }" else (if_statement "if (uVar20 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar22 = *piVar4;\n    pcVar14 = needle_start;\n    pcVar18 = haystack_start;\n    do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);\n    pcVar14 = pcVar14 + -(int)needle_start;\n    puVar6 = (uchar *)haystack_start;\n    if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }\n  }" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar22 = *piVar4;\n    pcVar14 = needle_start;\n    pcVar18 = haystack_start;\n    do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);\n    pcVar14 = pcVar14 + -(int)needle_start;\n    puVar6 = (uchar *)haystack_start;\n    if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0004b2d8" * (cast_expression "(code *)PTR___ctype_b_loc_0004b2d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar22 = *piVar4;" (assignment_expression "iVar22 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "pcVar14 = needle_start;" (assignment_expression "pcVar14 = needle_start" identifier = identifier) ;) (expression_statement "pcVar18 = haystack_start;" (assignment_expression "pcVar18 = haystack_start" identifier = identifier) ;) (do_statement "do {\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar20 != 0);" do (compound_statement "{\n      uVar15 = uVar9 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }\n      uVar17 = uVar20 & 0xff;\n      if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }\n      pcVar18 = pcVar18 + 1;\n      uVar9 = (uint)*pcVar18;\n      pcVar14 = pcVar14 + 1;\n      uVar20 = (uint)*pcVar14;\n      if (uVar15 != uVar17) {\n        bVar1 = false;\n      }\n      if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }\n    }" { (expression_statement "uVar15 = uVar9 & 0xff;" (assignment_expression "uVar15 = uVar9 & 0xff" identifier = (binary_expression "uVar9 & 0xff" identifier & number_literal)) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar15 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar15 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar15 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar15 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar15 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar15 * 2)" ( (binary_expression "iVar22 + uVar15 * 2" identifier + (binary_expression "uVar15 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar15 = *(uint *)(*piVar5 + uVar15 * 4);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar15 = *(uint *)(*piVar5 + uVar15 * 4);" (assignment_expression "uVar15 = *(uint *)(*piVar5 + uVar15 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar15 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar15 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar15 * 4)" ( (binary_expression "*piVar5 + uVar15 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar15 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar17 = uVar20 & 0xff;" (assignment_expression "uVar17 = uVar20 & 0xff" identifier = (binary_expression "uVar20 & 0xff" identifier & number_literal)) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar17 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar17 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar17 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar17 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar17 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar17 * 2)" ( (binary_expression "iVar22 + uVar17 * 2" identifier + (binary_expression "uVar17 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar17 = *(uint *)(*piVar5 + uVar17 * 4);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar17 = *(uint *)(*piVar5 + uVar17 * 4);" (assignment_expression "uVar17 = *(uint *)(*piVar5 + uVar17 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar17 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar17 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar17 * 4)" ( (binary_expression "*piVar5 + uVar17 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar17 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "pcVar18 = pcVar18 + 1;" (assignment_expression "pcVar18 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = (uint)*pcVar18;" (assignment_expression "uVar9 = (uint)*pcVar18" identifier = (binary_expression "(uint)*pcVar18" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (uint)*pcVar14;" (assignment_expression "uVar20 = (uint)*pcVar14" identifier = (binary_expression "(uint)*pcVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if (uVar15 != uVar17) {\n        bVar1 = false;\n      }" if (parenthesized_expression "(uVar15 != uVar17)" ( (binary_expression "uVar15 != uVar17" identifier != identifier) )) (compound_statement "{\n        bVar1 = false;\n      }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (if_statement "if (uVar9 == 0) {\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar6 = (uchar *)0x0;\n        if (uVar20 != 0) goto LAB_00034a2c;\n        break;\n      }" { (expression_statement "puVar6 = (uchar *)0x0;" (assignment_expression "puVar6 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar20 != 0) goto LAB_00034a2c;" if (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(uVar20 != 0)" ( (binary_expression "uVar20 != 0" identifier != number_literal) )) ;) (expression_statement "pcVar14 = pcVar14 + -(int)needle_start;" (assignment_expression "pcVar14 = pcVar14 + -(int)needle_start" identifier = (binary_expression "pcVar14 + -(int)needle_start" identifier + (unary_expression "-(int)needle_start" - (cast_expression "(int)needle_start" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "puVar6 = (uchar *)haystack_start;" (assignment_expression "puVar6 = (uchar *)haystack_start" identifier = (cast_expression "(uchar *)haystack_start" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (!bVar1) {\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n      haystack = (uchar *)(haystack_start + 1);\n      pcVar18 = pcVar14 + -1;\n      if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }\n    }" { (expression_statement "haystack = (uchar *)(haystack_start + 1);" (assignment_expression "haystack = (uchar *)(haystack_start + 1)" identifier = (cast_expression "(uchar *)(haystack_start + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(haystack_start + 1)" ( (binary_expression "haystack_start + 1" identifier + number_literal) )))) ;) (expression_statement "pcVar18 = pcVar14 + -1;" (assignment_expression "pcVar18 = pcVar14 + -1" identifier = (binary_expression "pcVar14 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar14 < (char *)0x20) {\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }\n      else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }" if (parenthesized_expression "(pcVar14 < (char *)0x20)" ( (binary_expression "pcVar14 < (char *)0x20" identifier < (cast_expression "(char *)0x20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }\n        sVar3 = period;\n        iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);\n        if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }\n        puVar6 = (uchar *)0x0;\n      }" { (if_statement "if (pcVar14 < (char *)0x3) {\n          period = 1;\n          local_54 = pcVar18;\n        }\n        else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }" if (parenthesized_expression "(pcVar14 < (char *)0x3)" ( (binary_expression "pcVar14 < (char *)0x3" identifier < (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          period = 1;\n          local_54 = pcVar18;\n        }" { (expression_statement "period = 1;" (assignment_expression "period = 1" identifier = number_literal) ;) (expression_statement "local_54 = pcVar18;" (assignment_expression "local_54 = pcVar18" identifier = identifier) ;) }) (else_clause "else {\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }" else (compound_statement "{\n          local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);\n        }" { (expression_statement "local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period);" (assignment_expression "local_54 = (char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period)" identifier = (cast_expression "(char *)critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "critical_factorization((uchar *)needle_start,(size_t)pcVar14,&period)" identifier (argument_list "((uchar *)needle_start,(size_t)pcVar14,&period)" ( (cast_expression "(uchar *)needle_start" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)pcVar14" ( (type_descriptor "size_t" primitive_type) ) identifier) , (pointer_expression "&period" & identifier) ))))) ;) }))) (expression_statement "sVar3 = period;" (assignment_expression "sVar3 = period" identifier = identifier) ;) (expression_statement "iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54);" (assignment_expression "iVar22 = (*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54)" identifier = (call_expression "(*(code *)PTR_strncasecmp_0004b378)(needle_start,needle_start + period,local_54)" (parenthesized_expression "(*(code *)PTR_strncasecmp_0004b378)" ( (pointer_expression "*(code *)PTR_strncasecmp_0004b378" * (cast_expression "(code *)PTR_strncasecmp_0004b378" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(needle_start,needle_start + period,local_54)" ( identifier , (binary_expression "needle_start + period" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar22 == 0) {\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar16 = (char *)0x0;\n          pcVar11 = (char *)0x0;\nLAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }\n        }" { (expression_statement "pcVar16 = (char *)0x0;" (assignment_expression "pcVar16 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00034b08:\n          pcVar19 = pcVar14 + (int)pcVar16;" statement_identifier : (expression_statement "pcVar19 = pcVar14 + (int)pcVar16;" (assignment_expression "pcVar19 = pcVar14 + (int)pcVar16" identifier = (binary_expression "pcVar14 + (int)pcVar16" identifier + (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "pcVar10 = (char *)0x0;" (assignment_expression "pcVar10 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_a2 = (int *)(pcVar19 + -(int)pcVar18);" (assignment_expression "in_a2 = (int *)(pcVar19 + -(int)pcVar18)" identifier = (cast_expression "(int *)(pcVar19 + -(int)pcVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + -(int)pcVar18)" ( (binary_expression "pcVar19 + -(int)pcVar18" identifier + (unary_expression "-(int)pcVar18" - (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);" (assignment_expression "pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2)" identifier = (call_expression "rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2)" identifier (argument_list "(haystack + (int)pcVar18,0,(size_t)in_a2)" ( (binary_expression "haystack + (int)pcVar18" identifier + (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , (cast_expression "(size_t)in_a2" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar10 = (char *)(uint)(local_54 < pcVar11);\n            pcVar8 = local_54;\n            if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }\n            pcVar18 = pcVar19;\n            if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }\n            pcVar19 = local_54;\n            if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }\n            if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;\n            pcVar16 = pcVar16 + sVar3;\n            pcVar11 = pcVar14 + -sVar3;\n            goto LAB_00034b08;\n          }" { (expression_statement "puVar6 = (uchar *)0x0;" (assignment_expression "puVar6 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar19 == (char *)0x0) goto LAB_00034a2c;" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (expression_statement "pcVar10 = (char *)(uint)(local_54 < pcVar11);" (assignment_expression "pcVar10 = (char *)(uint)(local_54 < pcVar11)" identifier = (cast_expression "(char *)(uint)(local_54 < pcVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_54 < pcVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < pcVar11)" ( (binary_expression "local_54 < pcVar11" identifier < identifier) ))))) ;) (expression_statement "pcVar8 = local_54;" (assignment_expression "pcVar8 = local_54" identifier = identifier) ;) (if_statement "if (pcVar10 != (char *)0x0) {\n              pcVar8 = pcVar11;\n            }" if (parenthesized_expression "(pcVar10 != (char *)0x0)" ( (binary_expression "pcVar10 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar8 = pcVar11;\n            }" { (expression_statement "pcVar8 = pcVar11;" (assignment_expression "pcVar8 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar18 = pcVar19;" (assignment_expression "pcVar18 = pcVar19" identifier = identifier) ;) (if_statement "if (pcVar8 < pcVar14) {\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }" if (parenthesized_expression "(pcVar8 < pcVar14)" ( (binary_expression "pcVar8 < pcVar14" identifier < identifier) )) (compound_statement "{\n              iVar22 = *piVar4;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);\n            }" { (expression_statement "iVar22 = *piVar4;" (assignment_expression "iVar22 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (do_statement "do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              } while (pcVar14 != pcVar8);" do (compound_statement "{\n                uVar9 = (uint)(byte)needle_start[(int)pcVar8];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                pcVar8 = pcVar8 + 1;\n              }" { (expression_statement "uVar9 = (uint)(byte)needle_start[(int)pcVar8];" (assignment_expression "uVar9 = (uint)(byte)needle_start[(int)pcVar8]" identifier = (cast_expression "(uint)(byte)needle_start[(int)pcVar8]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)needle_start[(int)pcVar8]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "needle_start[(int)pcVar8]" identifier [ (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier) ])))) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar9 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar9 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar9 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar9 * 2)" ( (binary_expression "iVar22 + uVar9 * 2" identifier + (binary_expression "uVar9 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = *(uint *)(*piVar5 + uVar9 * 4);" (assignment_expression "uVar9 = *(uint *)(*piVar5 + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar9 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar9 * 4)" ( (binary_expression "*piVar5 + uVar9 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1];" (assignment_expression "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1]" identifier = (subscript_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))[1]" (call_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar8))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(haystack_start + (int)(pcVar16 + (int)pcVar8))" ( (binary_expression "haystack_start + (int)(pcVar16 + (int)pcVar8)" identifier + (cast_expression "(int)(pcVar16 + (int)pcVar8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar16 + (int)pcVar8)" ( (binary_expression "pcVar16 + (int)pcVar8" identifier + (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar20 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar20 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar20 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar20 * 2)" ( (binary_expression "iVar22 + uVar20 * 2" identifier + (binary_expression "uVar20 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar20 = *(uint *)(*piVar5 + uVar20 * 4);" (assignment_expression "uVar20 = *(uint *)(*piVar5 + uVar20 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar20 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar20 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar20 * 4)" ( (binary_expression "*piVar5 + uVar20 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar20 * 4" identifier * number_literal)) ))))) ;) })) (if_statement "if (uVar9 != uVar20) {\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" if (parenthesized_expression "(uVar9 != uVar20)" ( (binary_expression "uVar9 != uVar20" identifier != identifier) )) (compound_statement "{\n                  if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" { (if_statement "if (pcVar8 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }" if (parenthesized_expression "(pcVar8 < pcVar14)" ( (binary_expression "pcVar8 < pcVar14" identifier < identifier) )) (compound_statement "{\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;\n                    pcVar11 = (char *)0x0;\n                    goto LAB_00034b08;\n                  }" { (expression_statement "pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8;" (assignment_expression "pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar8" identifier = (binary_expression "pcVar16 + (1 - (int)local_54) + (int)pcVar8" (binary_expression "pcVar16 + (1 - (int)local_54)" identifier + (parenthesized_expression "(1 - (int)local_54)" ( (binary_expression "1 - (int)local_54" number_literal - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)pcVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar11 = (char *)0x0;" (assignment_expression "pcVar11 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00034b08;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pcVar8 = pcVar8 + 1;" (assignment_expression "pcVar8 = pcVar8 + 1" identifier = (binary_expression "pcVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar14 != pcVar8)" ( (binary_expression "pcVar14 != pcVar8" identifier != identifier) )) ;) })) (expression_statement "pcVar19 = local_54;" (assignment_expression "pcVar19 = local_54" identifier = identifier) ;) (if_statement "if (pcVar11 < local_54) {\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }" if (parenthesized_expression "(pcVar11 < local_54)" ( (binary_expression "pcVar11 < local_54" identifier < identifier) )) (compound_statement "{\n              iVar22 = *piVar4;\n              pcVar8 = local_54;\n              do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));\n            }" { (expression_statement "iVar22 = *piVar4;" (assignment_expression "iVar22 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "pcVar8 = local_54;" (assignment_expression "pcVar8 = local_54" identifier = identifier) ;) (do_statement "do {\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              } while ((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21));" do (compound_statement "{\n                pcVar21 = pcVar8 + -1;\n                uVar9 = (uint)(byte)needle_start[(int)pcVar21];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                pcVar19 = pcVar8;\n              }" { (expression_statement "pcVar21 = pcVar8 + -1;" (assignment_expression "pcVar21 = pcVar8 + -1" identifier = (binary_expression "pcVar8 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = (uint)(byte)needle_start[(int)pcVar21];" (assignment_expression "uVar9 = (uint)(byte)needle_start[(int)pcVar21]" identifier = (cast_expression "(uint)(byte)needle_start[(int)pcVar21]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)needle_start[(int)pcVar21]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "needle_start[(int)pcVar21]" identifier [ (cast_expression "(int)pcVar21" ( (type_descriptor "int" primitive_type) ) identifier) ])))) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar9 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar9 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar9 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar9 * 2)" ( (binary_expression "iVar22 + uVar9 * 2" identifier + (binary_expression "uVar9 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = *(uint *)(*piVar5 + uVar9 * 4);" (assignment_expression "uVar9 = *(uint *)(*piVar5 + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar9 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar9 * 4)" ( (binary_expression "*piVar5 + uVar9 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1];" (assignment_expression "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1]" identifier = (subscript_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))[1]" (call_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar21))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(haystack_start + (int)(pcVar16 + (int)pcVar21))" ( (binary_expression "haystack_start + (int)(pcVar16 + (int)pcVar21)" identifier + (cast_expression "(int)(pcVar16 + (int)pcVar21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar16 + (int)pcVar21)" ( (binary_expression "pcVar16 + (int)pcVar21" identifier + (cast_expression "(int)pcVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar20 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar20 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar20 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar20 * 2)" ( (binary_expression "iVar22 + uVar20 * 2" identifier + (binary_expression "uVar20 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar20 = *(uint *)(*piVar5 + uVar20 * 4);" (assignment_expression "uVar20 = *(uint *)(*piVar5 + uVar20 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar20 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar20 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar20 * 4)" ( (binary_expression "*piVar5 + uVar20 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar20 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "pcVar19 = pcVar8;" (assignment_expression "pcVar19 = pcVar8" identifier = identifier) ;) }) while (parenthesized_expression "((uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21))" ( (binary_expression "(uVar9 == uVar20) &&\n                      (pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21)" (parenthesized_expression "(uVar9 == uVar20)" ( (binary_expression "uVar9 == uVar20" identifier == identifier) )) && (parenthesized_expression "(pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21)" ( (comma_expression "pcVar19 = pcVar11, pcVar8 = pcVar21, pcVar11 != pcVar21" (assignment_expression "pcVar19 = pcVar11" identifier = identifier) , (comma_expression "pcVar8 = pcVar21, pcVar11 != pcVar21" (assignment_expression "pcVar8 = pcVar21" identifier = identifier) , (binary_expression "pcVar11 != pcVar21" identifier != identifier))) ))) )) ;) })) (if_statement "if (pcVar19 < pcVar11 + 1) goto LAB_00034f3c;" if (parenthesized_expression "(pcVar19 < pcVar11 + 1)" ( (binary_expression "pcVar19 < pcVar11 + 1" identifier < (binary_expression "pcVar11 + 1" identifier + number_literal)) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) (expression_statement "pcVar16 = pcVar16 + sVar3;" (assignment_expression "pcVar16 = pcVar16 + sVar3" identifier = (binary_expression "pcVar16 + sVar3" identifier + identifier)) ;) (expression_statement "pcVar11 = pcVar14 + -sVar3;" (assignment_expression "pcVar11 = pcVar14 + -sVar3" identifier = (binary_expression "pcVar14 + -sVar3" identifier + (unary_expression "-sVar3" - identifier))) ;) (goto_statement "goto LAB_00034b08;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }" else (compound_statement "{\n          pcVar16 = (char *)0x0;\n          pcVar11 = local_54;\n          if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }\n          period = (size_t)(pcVar11 + 1);\nLAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;\n          pcVar10 = (char *)0x0;\n          in_a2 = (int *)(pcVar19 + -(int)pcVar18);\n          pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);\n          if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }\n        }" { (expression_statement "pcVar16 = (char *)0x0;" (assignment_expression "pcVar16 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = local_54;" (assignment_expression "pcVar11 = local_54" identifier = identifier) ;) (if_statement "if (local_54 <= pcVar14 + -(int)local_54) {\n            pcVar11 = pcVar14 + -(int)local_54;\n          }" if (parenthesized_expression "(local_54 <= pcVar14 + -(int)local_54)" ( (binary_expression "local_54 <= pcVar14 + -(int)local_54" identifier <= (binary_expression "pcVar14 + -(int)local_54" identifier + (unary_expression "-(int)local_54" - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n            pcVar11 = pcVar14 + -(int)local_54;\n          }" { (expression_statement "pcVar11 = pcVar14 + -(int)local_54;" (assignment_expression "pcVar11 = pcVar14 + -(int)local_54" identifier = (binary_expression "pcVar14 + -(int)local_54" identifier + (unary_expression "-(int)local_54" - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "period = (size_t)(pcVar11 + 1);" (assignment_expression "period = (size_t)(pcVar11 + 1)" identifier = (cast_expression "(size_t)(pcVar11 + 1)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(pcVar11 + 1)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) )))) ;) (labeled_statement "LAB_00034d40:\n          pcVar19 = pcVar14 + (int)pcVar16;" statement_identifier : (expression_statement "pcVar19 = pcVar14 + (int)pcVar16;" (assignment_expression "pcVar19 = pcVar14 + (int)pcVar16" identifier = (binary_expression "pcVar14 + (int)pcVar16" identifier + (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "pcVar10 = (char *)0x0;" (assignment_expression "pcVar10 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "in_a2 = (int *)(pcVar19 + -(int)pcVar18);" (assignment_expression "in_a2 = (int *)(pcVar19 + -(int)pcVar18)" identifier = (cast_expression "(int *)(pcVar19 + -(int)pcVar18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + -(int)pcVar18)" ( (binary_expression "pcVar19 + -(int)pcVar18" identifier + (unary_expression "-(int)pcVar18" - (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier))) )))) ;) (expression_statement "pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2);" (assignment_expression "pvVar7 = rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2)" identifier = (call_expression "rpl_memchr(haystack + (int)pcVar18,0,(size_t)in_a2)" identifier (argument_list "(haystack + (int)pcVar18,0,(size_t)in_a2)" ( (binary_expression "haystack + (int)pcVar18" identifier + (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal , (cast_expression "(size_t)in_a2" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (pvVar7 == (void *)0x0) {\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar6 = (uchar *)0x0;\n            if (pcVar19 == (char *)0x0) goto LAB_00034a2c;\n            pcVar18 = pcVar19;\n            if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }\n            pcVar19 = local_54 + -1;\n            if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar22 = *piVar4;\n            while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar16 = pcVar16 + (int)(pcVar11 + 1);\n            goto LAB_00034d40;\n          }" { (expression_statement "puVar6 = (uchar *)0x0;" (assignment_expression "puVar6 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar19 == (char *)0x0) goto LAB_00034a2c;" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (expression_statement "pcVar18 = pcVar19;" (assignment_expression "pcVar18 = pcVar19" identifier = identifier) ;) (if_statement "if (local_54 < pcVar14) {\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }" if (parenthesized_expression "(local_54 < pcVar14)" ( (binary_expression "local_54 < pcVar14" identifier < identifier) )) (compound_statement "{\n              iVar22 = *piVar4;\n              pcVar19 = local_54;\n              do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);\n            }" { (expression_statement "iVar22 = *piVar4;" (assignment_expression "iVar22 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "pcVar19 = local_54;" (assignment_expression "pcVar19 = local_54" identifier = identifier) ;) (do_statement "do {\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              } while (pcVar19 < pcVar14);" do (compound_statement "{\n                uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n                if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }\n                uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n                if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }\n                if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                pcVar19 = pcVar19 + 1;\n              }" { (expression_statement "uVar9 = (uint)(byte)needle_start[(int)pcVar19];" (assignment_expression "uVar9 = (uint)(byte)needle_start[(int)pcVar19]" identifier = (cast_expression "(uint)(byte)needle_start[(int)pcVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)needle_start[(int)pcVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "needle_start[(int)pcVar19]" identifier [ (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier) ])))) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar9 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar9 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar9 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar9 * 2)" ( (binary_expression "iVar22 + uVar9 * 2" identifier + (binary_expression "uVar9 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n                }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = *(uint *)(*piVar5 + uVar9 * 4);" (assignment_expression "uVar9 = *(uint *)(*piVar5 + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar9 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar9 * 4)" ( (binary_expression "*piVar5 + uVar9 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];" (assignment_expression "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1]" identifier = (subscript_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1]" (call_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(haystack_start + (int)(pcVar16 + (int)pcVar19))" ( (binary_expression "haystack_start + (int)(pcVar16 + (int)pcVar19)" identifier + (cast_expression "(int)(pcVar16 + (int)pcVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar16 + (int)pcVar19)" ( (binary_expression "pcVar16 + (int)pcVar19" identifier + (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar20 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar20 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar20 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar20 * 2)" ( (binary_expression "iVar22 + uVar20 * 2" identifier + (binary_expression "uVar20 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n                }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar20 = *(uint *)(*piVar5 + uVar20 * 4);" (assignment_expression "uVar20 = *(uint *)(*piVar5 + uVar20 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar20 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar20 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar20 * 4)" ( (binary_expression "*piVar5 + uVar20 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar20 * 4" identifier * number_literal)) ))))) ;) })) (if_statement "if (uVar9 != uVar20) {\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" if (parenthesized_expression "(uVar9 != uVar20)" ( (binary_expression "uVar9 != uVar20" identifier != identifier) )) (compound_statement "{\n                  if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" { (if_statement "if (pcVar19 < pcVar14) {\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }" if (parenthesized_expression "(pcVar19 < pcVar14)" ( (binary_expression "pcVar19 < pcVar14" identifier < identifier) )) (compound_statement "{\n                    pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;\n                    goto LAB_00034d40;\n                  }" { (expression_statement "pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19;" (assignment_expression "pcVar16 = pcVar16 + (1 - (int)local_54) + (int)pcVar19" identifier = (binary_expression "pcVar16 + (1 - (int)local_54) + (int)pcVar19" (binary_expression "pcVar16 + (1 - (int)local_54)" identifier + (parenthesized_expression "(1 - (int)local_54)" ( (binary_expression "1 - (int)local_54" number_literal - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00034d40;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pcVar19 = pcVar19 + 1;" (assignment_expression "pcVar19 = pcVar19 + 1" identifier = (binary_expression "pcVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar19 < pcVar14)" ( (binary_expression "pcVar19 < pcVar14" identifier < identifier) )) ;) })) (expression_statement "pcVar19 = local_54 + -1;" (assignment_expression "pcVar19 = local_54 + -1" identifier = (binary_expression "local_54 + -1" identifier + number_literal)) ;) (if_statement "if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;" if (parenthesized_expression "(pcVar19 == (char *)0xffffffff)" ( (binary_expression "pcVar19 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) (expression_statement "iVar22 = *piVar4;" (assignment_expression "iVar22 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (while_statement "while( true ) {\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar9 = (uint)(byte)needle_start[(int)pcVar19];\n              if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }\n              uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];\n              if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }\n              pcVar19 = pcVar19 + -1;\n              if (uVar9 != uVar20) break;\n              if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" { (expression_statement "uVar9 = (uint)(byte)needle_start[(int)pcVar19];" (assignment_expression "uVar9 = (uint)(byte)needle_start[(int)pcVar19]" identifier = (cast_expression "(uint)(byte)needle_start[(int)pcVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)needle_start[(int)pcVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "needle_start[(int)pcVar19]" identifier [ (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier) ])))) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar9 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar9 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar9 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar9 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar9 * 2)" ( (binary_expression "iVar22 + uVar9 * 2" identifier + (binary_expression "uVar9 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar9 = *(uint *)(*piVar5 + uVar9 * 4);\n              }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar9 = *(uint *)(*piVar5 + uVar9 * 4);" (assignment_expression "uVar9 = *(uint *)(*piVar5 + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar9 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar9 * 4)" ( (binary_expression "*piVar5 + uVar9 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1];" (assignment_expression "uVar20 = (uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1]" identifier = (subscript_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))[1]" (call_expression "(uint)(byte)(haystack_start + (int)(pcVar16 + (int)pcVar19))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(haystack_start + (int)(pcVar16 + (int)pcVar19))" ( (binary_expression "haystack_start + (int)(pcVar16 + (int)pcVar19)" identifier + (cast_expression "(int)(pcVar16 + (int)pcVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar16 + (int)pcVar19)" ( (binary_expression "pcVar16 + (int)pcVar19" identifier + (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0) {\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }" if (parenthesized_expression "((*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar22 + uVar20 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar22 + uVar20 * 2) & 1" (pointer_expression "*(ushort *)(iVar22 + uVar20 * 2)" * (cast_expression "(ushort *)(iVar22 + uVar20 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + uVar20 * 2)" ( (binary_expression "iVar22 + uVar20 * 2" identifier + (binary_expression "uVar20 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar20 = *(uint *)(*piVar5 + uVar20 * 4);\n              }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar20 = *(uint *)(*piVar5 + uVar20 * 4);" (assignment_expression "uVar20 = *(uint *)(*piVar5 + uVar20 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar20 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar20 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar20 * 4)" ( (binary_expression "*piVar5 + uVar20 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar20 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "pcVar19 = pcVar19 + -1;" (assignment_expression "pcVar19 = pcVar19 + -1" identifier = (binary_expression "pcVar19 + -1" identifier + number_literal)) ;) (if_statement "if (uVar9 != uVar20) break;" if (parenthesized_expression "(uVar9 != uVar20)" ( (binary_expression "uVar9 != uVar20" identifier != identifier) )) (break_statement "break;" break ;)) (if_statement "if (pcVar19 == (char *)0xffffffff) goto LAB_00034f3c;" if (parenthesized_expression "(pcVar19 == (char *)0xffffffff)" ( (binary_expression "pcVar19 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) })) (expression_statement "pcVar16 = pcVar16 + (int)(pcVar11 + 1);" (assignment_expression "pcVar16 = pcVar16 + (int)(pcVar11 + 1)" identifier = (binary_expression "pcVar16 + (int)(pcVar11 + 1)" identifier + (cast_expression "(int)(pcVar11 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar11 + 1)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00034d40;" goto statement_identifier ;) })) }))) (expression_statement "puVar6 = (uchar *)0x0;" (assignment_expression "puVar6 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }" else (compound_statement "{\n        puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);\n        pcVar10 = pcVar18;\n        in_a2 = (int *)needle_start;\n      }" { (expression_statement "puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14);" (assignment_expression "puVar6 = (uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14)" identifier = (cast_expression "(uchar *)two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "two_way_long_needle(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14)" identifier (argument_list "(haystack,(size_t)pcVar18,(uchar *)needle_start,\n                                              (size_t)pcVar14)" ( identifier , (cast_expression "(size_t)pcVar18" ( (type_descriptor "size_t" primitive_type) ) identifier) , (cast_expression "(uchar *)needle_start" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)pcVar14" ( (type_descriptor "size_t" primitive_type) ) identifier) ))))) ;) (expression_statement "pcVar10 = pcVar18;" (assignment_expression "pcVar10 = pcVar18" identifier = identifier) ;) (expression_statement "in_a2 = (int *)needle_start;" (assignment_expression "in_a2 = (int *)needle_start" identifier = (cast_expression "(int *)needle_start" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) })) })))) (labeled_statement "LAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return (char *)puVar6;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar2) {\n    return (char *)puVar6;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return (char *)puVar6;\n  }" { (return_statement "return (char *)puVar6;" return (cast_expression "(char *)puVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0004b438)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004b438)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004b438)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004b438" * (cast_expression "(code *)PTR___stack_chk_fail_0004b438" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) (expression_statement "pcVar18 = (char *)0xffffffff;" (assignment_expression "pcVar18 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar14 = (char *)0x0;" (assignment_expression "pcVar14 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    iVar13 = iVar22 + local_2c;\n    pcVar16 = pcVar14 + iVar22;\n    pcVar11 = pcVar14;\n    while( true ) {\n      pcVar14 = pcVar16;\n      if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }\n      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;\n      iVar22 = 1;\n      iVar12 = (int)pcVar14 - (int)pcVar18;\n      iVar13 = local_2c + 1;\n      pcVar16 = pcVar14 + 1;\n      pcVar11 = pcVar14;\n    }\n    if (pcVar14[local_2c] == pcVar18[iVar13]) {\n      if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }\n    }\n    else {\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar13 = iVar22 + local_2c;\n    pcVar16 = pcVar14 + iVar22;\n    pcVar11 = pcVar14;\n    while( true ) {\n      pcVar14 = pcVar16;\n      if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }\n      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;\n      iVar22 = 1;\n      iVar12 = (int)pcVar14 - (int)pcVar18;\n      iVar13 = local_2c + 1;\n      pcVar16 = pcVar14 + 1;\n      pcVar11 = pcVar14;\n    }\n    if (pcVar14[local_2c] == pcVar18[iVar13]) {\n      if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }\n    }\n    else {\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }\n  }" { (expression_statement "iVar13 = iVar22 + local_2c;" (assignment_expression "iVar13 = iVar22 + local_2c" identifier = (binary_expression "iVar22 + local_2c" identifier + identifier)) ;) (expression_statement "pcVar16 = pcVar14 + iVar22;" (assignment_expression "pcVar16 = pcVar14 + iVar22" identifier = (binary_expression "pcVar14 + iVar22" identifier + identifier)) ;) (expression_statement "pcVar11 = pcVar14;" (assignment_expression "pcVar11 = pcVar14" identifier = identifier) ;) (while_statement "while( true ) {\n      pcVar14 = pcVar16;\n      if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }\n      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;\n      iVar22 = 1;\n      iVar12 = (int)pcVar14 - (int)pcVar18;\n      iVar13 = local_2c + 1;\n      pcVar16 = pcVar14 + 1;\n      pcVar11 = pcVar14;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pcVar14 = pcVar16;\n      if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }\n      if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;\n      iVar22 = 1;\n      iVar12 = (int)pcVar14 - (int)pcVar18;\n      iVar13 = local_2c + 1;\n      pcVar16 = pcVar14 + 1;\n      pcVar11 = pcVar14;\n    }" { (expression_statement "pcVar14 = pcVar16;" (assignment_expression "pcVar14 = pcVar16" identifier = identifier) ;) (if_statement "if (pcVar10 <= pcVar14) {\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(pcVar10 <= pcVar14)" ( (binary_expression "pcVar10 <= pcVar14" identifier <= identifier) )) (compound_statement "{\n        iVar13 = 1;\n        *in_a2 = iVar12;\n        iVar22 = 1;\n        pcVar14 = (char *)0x0;\n        pcVar11 = (char *)0xffffffff;\n        do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );\n      }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "*in_a2 = iVar12;" (assignment_expression "*in_a2 = iVar12" (pointer_expression "*in_a2" * identifier) = identifier) ;) (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) (expression_statement "pcVar14 = (char *)0x0;" (assignment_expression "pcVar14 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = (char *)0xffffffff;" (assignment_expression "pcVar11 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        } while( true );" do (compound_statement "{\n          iVar12 = iVar22 + local_2c;\n          pcVar19 = pcVar14 + iVar22;\n          pcVar16 = pcVar14;\n          while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }\n          if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }\n        }" { (expression_statement "iVar12 = iVar22 + local_2c;" (assignment_expression "iVar12 = iVar22 + local_2c" identifier = (binary_expression "iVar22 + local_2c" identifier + identifier)) ;) (expression_statement "pcVar19 = pcVar14 + iVar22;" (assignment_expression "pcVar19 = pcVar14 + iVar22" identifier = (binary_expression "pcVar14 + iVar22" identifier + identifier)) ;) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" identifier = identifier) ;) (while_statement "while( true ) {\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pcVar14 = pcVar19;\n            if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }\n            if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;\n            iVar22 = 1;\n            iVar13 = (int)pcVar14 - (int)pcVar11;\n            iVar12 = local_2c + 1;\n            pcVar19 = pcVar14 + 1;\n            pcVar16 = pcVar14;\n          }" { (expression_statement "pcVar14 = pcVar19;" (assignment_expression "pcVar14 = pcVar19" identifier = identifier) ;) (if_statement "if (pcVar10 <= pcVar14) {\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }" if (parenthesized_expression "(pcVar10 <= pcVar14)" ( (binary_expression "pcVar10 <= pcVar14" identifier <= identifier) )) (compound_statement "{\n              pcVar10 = pcVar18 + 1;\n              if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }\n              return pcVar10;\n            }" { (expression_statement "pcVar10 = pcVar18 + 1;" (assignment_expression "pcVar10 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar18 + 1 <= pcVar11 + 1) {\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }" if (parenthesized_expression "(pcVar18 + 1 <= pcVar11 + 1)" ( (binary_expression "pcVar18 + 1 <= pcVar11 + 1" (binary_expression "pcVar18 + 1" identifier + number_literal) <= (binary_expression "pcVar11 + 1" identifier + number_literal)) )) (compound_statement "{\n                *in_a2 = iVar13;\n                pcVar10 = pcVar11 + 1;\n              }" { (expression_statement "*in_a2 = iVar13;" (assignment_expression "*in_a2 = iVar13" (pointer_expression "*in_a2" * identifier) = identifier) ;) (expression_statement "pcVar10 = pcVar11 + 1;" (assignment_expression "pcVar10 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) })) (return_statement "return pcVar10;" return identifier ;) })) (if_statement "if ((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]) break;" if (parenthesized_expression "((byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12])" ( (binary_expression "(byte)pcVar14[local_2c] <= (byte)pcVar11[iVar12]" (cast_expression "(byte)pcVar14[local_2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[local_2c]" identifier [ identifier ])) <= (cast_expression "(byte)pcVar11[iVar12]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar11[iVar12]" identifier [ identifier ]))) )) (break_statement "break;" break ;)) (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) (expression_statement "iVar13 = (int)pcVar14 - (int)pcVar11;" (assignment_expression "iVar13 = (int)pcVar14 - (int)pcVar11" identifier = (binary_expression "(int)pcVar14 - (int)pcVar11" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar12 = local_2c + 1;" (assignment_expression "iVar12 = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "pcVar19 = pcVar14 + 1;" (assignment_expression "pcVar19 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = pcVar14;" (assignment_expression "pcVar16 = pcVar14" identifier = identifier) ;) })) (if_statement "if (pcVar14[local_2c] == pcVar11[iVar12]) {\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }\n          else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }" if (parenthesized_expression "(pcVar14[local_2c] == pcVar11[iVar12])" ( (binary_expression "pcVar14[local_2c] == pcVar11[iVar12]" (subscript_expression "pcVar14[local_2c]" identifier [ identifier ]) == (subscript_expression "pcVar11[iVar12]" identifier [ identifier ])) )) (compound_statement "{\n            if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }\n          }" { (if_statement "if (iVar22 == iVar13) {\n              iVar22 = 1;\n            }\n            else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }" if (parenthesized_expression "(iVar22 == iVar13)" ( (binary_expression "iVar22 == iVar13" identifier == identifier) )) (compound_statement "{\n              iVar22 = 1;\n            }" { (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }" else (compound_statement "{\n              iVar22 = iVar22 + 1;\n              pcVar14 = pcVar16;\n            }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = pcVar16;" (assignment_expression "pcVar14 = pcVar16" identifier = identifier) ;) }))) }) (else_clause "else {\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }" else (compound_statement "{\n            iVar13 = 1;\n            iVar22 = 1;\n            pcVar14 = pcVar16 + 1;\n            pcVar11 = pcVar16;\n          }" { (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) (expression_statement "pcVar14 = pcVar16 + 1;" (assignment_expression "pcVar14 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]) break;" if (parenthesized_expression "((byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c])" ( (binary_expression "(byte)pcVar18[iVar13] <= (byte)pcVar14[local_2c]" (cast_expression "(byte)pcVar18[iVar13]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar18[iVar13]" identifier [ identifier ])) <= (cast_expression "(byte)pcVar14[local_2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[local_2c]" identifier [ identifier ]))) )) (break_statement "break;" break ;)) (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) (expression_statement "iVar12 = (int)pcVar14 - (int)pcVar18;" (assignment_expression "iVar12 = (int)pcVar14 - (int)pcVar18" identifier = (binary_expression "(int)pcVar14 - (int)pcVar18" (cast_expression "(int)pcVar14" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar13 = local_2c + 1;" (assignment_expression "iVar13 = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = pcVar14 + 1;" (assignment_expression "pcVar16 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (expression_statement "pcVar11 = pcVar14;" (assignment_expression "pcVar11 = pcVar14" identifier = identifier) ;) })) (if_statement "if (pcVar14[local_2c] == pcVar18[iVar13]) {\n      if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }\n    }\n    else {\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }" if (parenthesized_expression "(pcVar14[local_2c] == pcVar18[iVar13])" ( (binary_expression "pcVar14[local_2c] == pcVar18[iVar13]" (subscript_expression "pcVar14[local_2c]" identifier [ identifier ]) == (subscript_expression "pcVar18[iVar13]" identifier [ identifier ])) )) (compound_statement "{\n      if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }\n    }" { (if_statement "if (iVar22 == iVar12) {\n        iVar22 = 1;\n      }\n      else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }" if (parenthesized_expression "(iVar22 == iVar12)" ( (binary_expression "iVar22 == iVar12" identifier == identifier) )) (compound_statement "{\n        iVar22 = 1;\n      }" { (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }" else (compound_statement "{\n        iVar22 = iVar22 + 1;\n        pcVar14 = pcVar11;\n      }" { (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "pcVar14 = pcVar11;" (assignment_expression "pcVar14 = pcVar11" identifier = identifier) ;) }))) }) (else_clause "else {\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }" else (compound_statement "{\n      iVar12 = 1;\n      iVar22 = 1;\n      pcVar18 = pcVar11;\n      pcVar14 = pcVar11 + 1;\n    }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "iVar22 = 1;" (assignment_expression "iVar22 = 1" identifier = number_literal) ;) (expression_statement "pcVar18 = pcVar11;" (assignment_expression "pcVar18 = pcVar11" identifier = identifier) ;) (expression_statement "pcVar14 = pcVar11 + 1;" (assignment_expression "pcVar14 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_00034f3c:\n  puVar6 = haystack + (int)pcVar16;" statement_identifier : (expression_statement "puVar6 = haystack + (int)pcVar16;" (assignment_expression "puVar6 = haystack + (int)pcVar16" identifier = (binary_expression "haystack + (int)pcVar16" identifier + (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;) })))
(translation_unit "char * rpl_strcasestr(char *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}\n\n" (function_definition "char * rpl_strcasestr(char *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}" primitive_type (pointer_declarator "* rpl_strcasestr(char *param_1,int *param_2,int *param_3)" * (function_declarator "rpl_strcasestr(char *param_1,int *param_2,int *param_3)" identifier (parameter_list "(char *param_1,int *param_2,int *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_0004b460;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0004b460" identifier = identifier) ;) (expression_statement "uVar8 = (uint)*param_1;" (assignment_expression "uVar8 = (uint)*param_1" identifier = (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0004b460;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0004b460" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0004b460" * (cast_expression "(int *)PTR___stack_chk_guard_0004b460" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar19 = (uint)*(char *)param_2;" (assignment_expression "uVar19 = (uint)*(char *)param_2" identifier = (binary_expression "(uint)*(char *)param_2" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar17 = param_1;" (assignment_expression "pcVar17 = param_1" identifier = identifier) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (if_statement "if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }" { (if_statement "if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar17 = (char *)0x0;\n    }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" else (if_statement "if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_0004b2d8" * (cast_expression "(code *)PTR___ctype_b_loc_0004b2d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar13 = param_2;" (assignment_expression "piVar13 = param_2" identifier = identifier) ;) (do_statement "do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);" do (compound_statement "{\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    }" { (expression_statement "uVar14 = uVar8 & 0xff;" (assignment_expression "uVar14 = uVar8 & 0xff" identifier = (binary_expression "uVar8 & 0xff" identifier & number_literal)) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar14 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar14 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar14 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar14 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar14 * 2)" ( (binary_expression "iVar21 + uVar14 * 2" identifier + (binary_expression "uVar14 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar14 = *(uint *)(*piVar5 + uVar14 * 4);" (assignment_expression "uVar14 = *(uint *)(*piVar5 + uVar14 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar14 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar14 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar14 * 4)" ( (binary_expression "*piVar5 + uVar14 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar14 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar16 = uVar19 & 0xff;" (assignment_expression "uVar16 = uVar19 & 0xff" identifier = (binary_expression "uVar19 & 0xff" identifier & number_literal)) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar16 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar16 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar16 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar16 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar16 * 2)" ( (binary_expression "iVar21 + uVar16 * 2" identifier + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }" { (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar16 = *(uint *)(*piVar5 + uVar16 * 4);" (assignment_expression "uVar16 = *(uint *)(*piVar5 + uVar16 * 4)" identifier = (pointer_expression "*(uint *)(*piVar5 + uVar16 * 4)" * (cast_expression "(uint *)(*piVar5 + uVar16 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar5 + uVar16 * 4)" ( (binary_expression "*piVar5 + uVar16 * 4" (pointer_expression "*piVar5" * identifier) + (binary_expression "uVar16 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = (uint)*pcVar17;" (assignment_expression "uVar8 = (uint)*pcVar17" identifier = (binary_expression "(uint)*pcVar17" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar19 = (uint)*(char *)piVar13;" (assignment_expression "uVar19 = (uint)*(char *)piVar13" identifier = (binary_expression "(uint)*(char *)piVar13" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (uVar14 != uVar16) {\n        bVar1 = false;\n      }" if (parenthesized_expression "(uVar14 != uVar16)" ( (binary_expression "uVar14 != uVar16" identifier != identifier) )) (compound_statement "{\n        bVar1 = false;\n      }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) })) (if_statement "if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar19 != 0) goto LAB_00034a2c;" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (break_statement "break;" break ;) })) }) while (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) ;) (expression_statement "piVar13 = (int *)((int)piVar13 - (int)param_2);" (assignment_expression "piVar13 = (int *)((int)piVar13 - (int)param_2)" identifier = (cast_expression "(int *)((int)piVar13 - (int)param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)param_2)" ( (binary_expression "(int)piVar13 - (int)param_2" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar17 = param_1;" (assignment_expression "pcVar17 = param_1" identifier = identifier) ;) (if_statement "if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (compound_statement "{\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }" { (expression_statement "pcVar6 = param_1 + 1;" (assignment_expression "pcVar6 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = (int *)((int)piVar13 + -1);" (assignment_expression "piVar5 = (int *)((int)piVar13 + -1)" identifier = (cast_expression "(int *)((int)piVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" if (parenthesized_expression "(piVar13 < (int *)0x20)" ( (binary_expression "piVar13 < (int *)0x20" identifier < (cast_expression "(int *)0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }" { (if_statement "if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" if (parenthesized_expression "(piVar13 < (int *)0x3)" ( (binary_expression "piVar13 < (int *)0x3" identifier < (cast_expression "(int *)0x3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }" { (expression_statement "local_30 = (char *)0x1;" (assignment_expression "local_30 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_54 = piVar5;" (assignment_expression "local_54 = piVar5" identifier = identifier) ;) }) (else_clause "else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" else (compound_statement "{\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" { (expression_statement "local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);" (assignment_expression "local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30)" identifier = (cast_expression "(int *)FUN_00033f40(param_2,piVar13,&local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00033f40(param_2,piVar13,&local_30)" identifier (argument_list "(param_2,piVar13,&local_30)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) ))))) ;) }))) (expression_statement "pcVar3 = local_30;" (assignment_expression "pcVar3 = local_30" identifier = identifier) ;) (expression_statement "iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);" (assignment_expression "iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54)" identifier = (call_expression "(*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54)" (parenthesized_expression "(*(code *)PTR_strncasecmp_0004b378)" ( (pointer_expression "*(code *)PTR_strncasecmp_0004b378" * (cast_expression "(code *)PTR_strncasecmp_0004b378" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,(char *)((int)param_2 + (int)local_30),local_54)" ( identifier , (cast_expression "(char *)((int)param_2 + (int)local_30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)local_30)" ( (binary_expression "(int)param_2 + (int)local_30" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , identifier )))) ;) (if_statement "if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }" { (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);" statement_identifier : (expression_statement "piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (assignment_expression "piVar18 = (int *)((int)piVar13 + (int)pcVar15)" identifier = (cast_expression "(int *)((int)piVar13 + (int)pcVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (int)pcVar15)" ( (binary_expression "(int)piVar13 + (int)pcVar15" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = (int *)((int)piVar18 - (int)piVar5);" (assignment_expression "param_3 = (int *)((int)piVar18 - (int)piVar5)" identifier = (cast_expression "(int *)((int)piVar18 - (int)piVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 - (int)piVar5)" ( (binary_expression "(int)piVar18 - (int)piVar5" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar21 = rpl_memchr(pcVar6 + (int)piVar5);" (assignment_expression "iVar21 = rpl_memchr(pcVar6 + (int)piVar5)" identifier = (call_expression "rpl_memchr(pcVar6 + (int)piVar5)" identifier (argument_list "(pcVar6 + (int)piVar5)" ( (binary_expression "pcVar6 + (int)piVar5" identifier + (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar18 == (int *)0x0) goto LAB_00034a2c;" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (expression_statement "piVar9 = (int *)(uint)(local_54 < piVar10);" (assignment_expression "piVar9 = (int *)(uint)(local_54 < piVar10)" identifier = (cast_expression "(int *)(uint)(local_54 < piVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_54 < piVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_54 < piVar10)" ( (binary_expression "local_54 < piVar10" identifier < identifier) ))))) ;) (expression_statement "piVar7 = local_54;" (assignment_expression "piVar7 = local_54" identifier = identifier) ;) (if_statement "if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              piVar7 = piVar10;\n            }" { (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" identifier = identifier) ;) })) (expression_statement "piVar5 = piVar18;" (assignment_expression "piVar5 = piVar18" identifier = identifier) ;) (if_statement "if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }" if (parenthesized_expression "(piVar7 < piVar13)" ( (binary_expression "piVar7 < piVar13" identifier < identifier) )) (compound_statement "{\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }" { (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (do_statement "do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);" do (compound_statement "{\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              }" { (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar7)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)piVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)piVar7)" ( (binary_expression "(int)param_2 + (int)piVar7" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar8 * 4)" ( (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar7))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)piVar7)" identifier + (cast_expression "(int)(pcVar15 + (int)piVar7)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)piVar7)" ( (binary_expression "pcVar15 + (int)piVar7" identifier + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar19 * 4)" ( (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (if_statement "if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" if (parenthesized_expression "(uVar8 != uVar19)" ( (binary_expression "uVar8 != uVar19" identifier != identifier) )) (compound_statement "{\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" { (if_statement "if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }" if (parenthesized_expression "(piVar7 < piVar13)" ( (binary_expression "piVar7 < piVar13" identifier < identifier) )) (compound_statement "{\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }" { (expression_statement "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;" (assignment_expression "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7" identifier = (binary_expression "pcVar15 + (1 - (int)local_54) + (int)piVar7" (binary_expression "pcVar15 + (1 - (int)local_54)" identifier + (parenthesized_expression "(1 - (int)local_54)" ( (binary_expression "1 - (int)local_54" number_literal - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00034b08;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "piVar7 = (int *)((int)piVar7 + 1);" (assignment_expression "piVar7 = (int *)((int)piVar7 + 1)" identifier = (cast_expression "(int *)((int)piVar7 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + 1)" ( (binary_expression "(int)piVar7 + 1" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(piVar13 != piVar7)" ( (binary_expression "piVar13 != piVar7" identifier != identifier) )) ;) })) (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" identifier = identifier) ;) (if_statement "if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }" if (parenthesized_expression "(piVar10 < local_54)" ( (binary_expression "piVar10 < local_54" identifier < identifier) )) (compound_statement "{\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }" { (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar7 = local_54;" (assignment_expression "piVar7 = local_54" identifier = identifier) ;) (do_statement "do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));" do (compound_statement "{\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              }" { (expression_statement "piVar20 = (int *)((int)piVar7 + -1);" (assignment_expression "piVar20 = (int *)((int)piVar7 + -1)" identifier = (cast_expression "(int *)((int)piVar7 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + -1)" ( (binary_expression "(int)piVar7 + -1" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar20)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)piVar20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)piVar20)" ( (binary_expression "(int)param_2 + (int)piVar20" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar8 * 4)" ( (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar20))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)piVar20)" identifier + (cast_expression "(int)(pcVar15 + (int)piVar20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)piVar20)" ( (binary_expression "pcVar15 + (int)piVar20" identifier + (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar19 * 4)" ( (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" identifier = identifier) ;) }) while (parenthesized_expression "((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20))" ( (binary_expression "(uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20)" (parenthesized_expression "(uVar8 == uVar19)" ( (binary_expression "uVar8 == uVar19" identifier == identifier) )) && (parenthesized_expression "(piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20)" ( (comma_expression "piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20" (assignment_expression "piVar18 = piVar10" identifier = identifier) , (comma_expression "piVar7 = piVar20, piVar10 != piVar20" (assignment_expression "piVar7 = piVar20" identifier = identifier) , (binary_expression "piVar10 != piVar20" identifier != identifier))) ))) )) ;) })) (if_statement "if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;" if (parenthesized_expression "(piVar18 < (int *)((int)piVar10 + 1))" ( (binary_expression "piVar18 < (int *)((int)piVar10 + 1)" identifier < (cast_expression "(int *)((int)piVar10 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 1)" ( (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) (expression_statement "pcVar15 = pcVar15 + (int)pcVar3;" (assignment_expression "pcVar15 = pcVar15 + (int)pcVar3" identifier = (binary_expression "pcVar15 + (int)pcVar3" identifier + (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "piVar10 = (int *)((int)piVar13 - (int)pcVar3);" (assignment_expression "piVar10 = (int *)((int)piVar13 - (int)pcVar3)" identifier = (cast_expression "(int *)((int)piVar13 - (int)pcVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)pcVar3)" ( (binary_expression "(int)piVar13 - (int)pcVar3" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar3" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto LAB_00034b08;" goto statement_identifier ;) })) }) (else_clause "else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" else (compound_statement "{\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" { (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar10 = local_54;" (assignment_expression "piVar10 = local_54" identifier = identifier) ;) (if_statement "if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }" if (parenthesized_expression "(local_54 <= (int *)((int)piVar13 - (int)local_54))" ( (binary_expression "local_54 <= (int *)((int)piVar13 - (int)local_54)" identifier <= (cast_expression "(int *)((int)piVar13 - (int)local_54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)local_54)" ( (binary_expression "(int)piVar13 - (int)local_54" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }" { (expression_statement "piVar10 = (int *)((int)piVar13 - (int)local_54);" (assignment_expression "piVar10 = (int *)((int)piVar13 - (int)local_54)" identifier = (cast_expression "(int *)((int)piVar13 - (int)local_54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 - (int)local_54)" ( (binary_expression "(int)piVar13 - (int)local_54" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "local_30 = (char *)((int)piVar10 + 1);" (assignment_expression "local_30 = (char *)((int)piVar10 + 1)" identifier = (cast_expression "(char *)((int)piVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 1)" ( (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);" statement_identifier : (expression_statement "piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (assignment_expression "piVar18 = (int *)((int)piVar13 + (int)pcVar15)" identifier = (cast_expression "(int *)((int)piVar13 + (int)pcVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (int)pcVar15)" ( (binary_expression "(int)piVar13 + (int)pcVar15" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3 = (int *)((int)piVar18 - (int)piVar5);" (assignment_expression "param_3 = (int *)((int)piVar18 - (int)piVar5)" identifier = (cast_expression "(int *)((int)piVar18 - (int)piVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 - (int)piVar5)" ( (binary_expression "(int)piVar18 - (int)piVar5" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar21 = rpl_memchr(pcVar6 + (int)piVar5);" (assignment_expression "iVar21 = rpl_memchr(pcVar6 + (int)piVar5)" identifier = (call_expression "rpl_memchr(pcVar6 + (int)piVar5)" identifier (argument_list "(pcVar6 + (int)piVar5)" ( (binary_expression "pcVar6 + (int)piVar5" identifier + (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }" { (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar18 == (int *)0x0) goto LAB_00034a2c;" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;)) (expression_statement "piVar5 = piVar18;" (assignment_expression "piVar5 = piVar18" identifier = identifier) ;) (if_statement "if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }" if (parenthesized_expression "(local_54 < piVar13)" ( (binary_expression "local_54 < piVar13" identifier < identifier) )) (compound_statement "{\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }" { (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" identifier = identifier) ;) (do_statement "do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);" do (compound_statement "{\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              }" { (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)piVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)piVar18)" ( (binary_expression "(int)param_2 + (int)piVar18" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar7 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar7 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar7 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar7 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + uVar8 * 4)" ( (binary_expression "*piVar7 + uVar8 * 4" (pointer_expression "*piVar7" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar18))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)piVar18)" identifier + (cast_expression "(int)(pcVar15 + (int)piVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)piVar18)" ( (binary_expression "pcVar15 + (int)piVar18" identifier + (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }" { (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar7 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar7 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar7 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar7 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar7 + uVar19 * 4)" ( (binary_expression "*piVar7 + uVar19 * 4" (pointer_expression "*piVar7" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (if_statement "if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" if (parenthesized_expression "(uVar8 != uVar19)" ( (binary_expression "uVar8 != uVar19" identifier != identifier) )) (compound_statement "{\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" { (if_statement "if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }" if (parenthesized_expression "(piVar18 < piVar13)" ( (binary_expression "piVar18 < piVar13" identifier < identifier) )) (compound_statement "{\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }" { (expression_statement "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;" (assignment_expression "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18" identifier = (binary_expression "pcVar15 + (1 - (int)local_54) + (int)piVar18" (binary_expression "pcVar15 + (1 - (int)local_54)" identifier + (parenthesized_expression "(1 - (int)local_54)" ( (binary_expression "1 - (int)local_54" number_literal - (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00034d40;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "piVar18 = (int *)((int)piVar18 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar18 + 1)" identifier = (cast_expression "(int *)((int)piVar18 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar18 + 1)" ( (binary_expression "(int)piVar18 + 1" (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(piVar18 < piVar13)" ( (binary_expression "piVar18 < piVar13" identifier < identifier) )) ;) })) (expression_statement "pcVar17 = (char *)((int)local_54 + -1);" (assignment_expression "pcVar17 = (char *)((int)local_54 + -1)" identifier = (cast_expression "(char *)((int)local_54 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_54 + -1)" ( (binary_expression "(int)local_54 + -1" (cast_expression "(int)local_54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;" if (parenthesized_expression "(pcVar17 == (char *)0xffffffff)" ( (binary_expression "pcVar17 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (while_statement "while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" { (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17)" identifier = (binary_expression "(uint)*(byte *)((int)param_2 + (int)pcVar17)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)param_2 + (int)pcVar17)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)pcVar17)" ( (binary_expression "(int)param_2 + (int)pcVar17" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar8 * 2)" ( (binary_expression "iVar21 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar8 * 4)" ( (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1]" identifier = (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(param_1 + (int)(pcVar15 + (int)pcVar17))" ( (binary_expression "param_1 + (int)(pcVar15 + (int)pcVar17)" identifier + (cast_expression "(int)(pcVar15 + (int)pcVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar15 + (int)pcVar17)" ( (binary_expression "pcVar15 + (int)pcVar17" identifier + (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ))) [ number_literal ])) ;) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }" if (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" ( (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" ( (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" * (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + uVar19 * 2)" ( (binary_expression "iVar21 + uVar19 * 2" identifier + (binary_expression "uVar19 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }" { (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" ( (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" * (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" identifier = (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" * (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + uVar19 * 4)" ( (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" * identifier) + (binary_expression "uVar19 * 4" identifier * number_literal)) ))))) ;) })) (expression_statement "pcVar17 = pcVar17 + -1;" (assignment_expression "pcVar17 = pcVar17 + -1" identifier = (binary_expression "pcVar17 + -1" identifier + number_literal)) ;) (if_statement "if (uVar8 != uVar19) break;" if (parenthesized_expression "(uVar8 != uVar19)" ( (binary_expression "uVar8 != uVar19" identifier != identifier) )) (break_statement "break;" break ;)) (if_statement "if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;" if (parenthesized_expression "(pcVar17 == (char *)0xffffffff)" ( (binary_expression "pcVar17 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00034f3c;" goto statement_identifier ;)) })) (expression_statement "pcVar15 = pcVar15 + (int)piVar10 + 1;" (assignment_expression "pcVar15 = pcVar15 + (int)piVar10 + 1" identifier = (binary_expression "pcVar15 + (int)piVar10 + 1" (binary_expression "pcVar15 + (int)piVar10" identifier + (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (goto_statement "goto LAB_00034d40;" goto statement_identifier ;) })) }))) (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" else (compound_statement "{\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" { (expression_statement "pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);" (assignment_expression "pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" identifier = (cast_expression "(char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" identifier (argument_list "(pcVar6,piVar5,param_2,piVar13)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" identifier = identifier) ;) (expression_statement "param_3 = param_2;" (assignment_expression "param_3 = param_2" identifier = identifier) ;) }))) })) })))) (labeled_statement "LAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pcVar17;\n  }" { (return_statement "return pcVar17;" return identifier ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_0004b438)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004b438)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004b438)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0004b438" * (cast_expression "(code *)PTR___stack_chk_fail_0004b438" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar4 = (int *)0xffffffff;" (assignment_expression "piVar4 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar13 = (int *)0x0;" (assignment_expression "piVar13 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );" do (compound_statement "{\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  }" { (expression_statement "iVar12 = iVar21 + local_2c;" (assignment_expression "iVar12 = iVar21 + local_2c" identifier = (binary_expression "iVar21 + local_2c" identifier + identifier)) ;) (expression_statement "piVar10 = (int *)(iVar21 + (int)piVar13);" (assignment_expression "piVar10 = (int *)(iVar21 + (int)piVar13)" identifier = (cast_expression "(int *)(iVar21 + (int)piVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + (int)piVar13)" ( (binary_expression "iVar21 + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar5 = piVar13;" (assignment_expression "piVar5 = piVar13" identifier = identifier) ;) (while_statement "while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }" { (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" identifier = identifier) ;) (if_statement "if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }" if (parenthesized_expression "(piVar9 <= piVar13)" ( (binary_expression "piVar9 <= piVar13" identifier <= identifier) )) (compound_statement "{\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "*param_3 = iVar11;" (assignment_expression "*param_3 = iVar11" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)0x0;" (assignment_expression "piVar13 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar5 = (int *)0xffffffff;" (assignment_expression "piVar5 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );" do (compound_statement "{\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        }" { (expression_statement "iVar11 = iVar21 + local_2c;" (assignment_expression "iVar11 = iVar21 + local_2c" identifier = (binary_expression "iVar21 + local_2c" identifier + identifier)) ;) (expression_statement "piVar18 = (int *)(iVar21 + (int)piVar13);" (assignment_expression "piVar18 = (int *)(iVar21 + (int)piVar13)" identifier = (cast_expression "(int *)(iVar21 + (int)piVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + (int)piVar13)" ( (binary_expression "iVar21 + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar10 = piVar13;" (assignment_expression "piVar10 = piVar13" identifier = identifier) ;) (while_statement "while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }" { (expression_statement "piVar13 = piVar18;" (assignment_expression "piVar13 = piVar18" identifier = identifier) ;) (if_statement "if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }" if (parenthesized_expression "(piVar9 <= piVar13)" ( (binary_expression "piVar9 <= piVar13" identifier <= identifier) )) (compound_statement "{\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }" { (expression_statement "pcVar17 = (char *)((int)piVar4 + 1);" (assignment_expression "pcVar17 = (char *)((int)piVar4 + 1)" identifier = (cast_expression "(char *)((int)piVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 1)" ( (binary_expression "(int)piVar4 + 1" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }" if (parenthesized_expression "((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1))" ( (binary_expression "(char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)" (cast_expression "(char *)((int)piVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 1)" ( (binary_expression "(int)piVar4 + 1" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) <= (cast_expression "(char *)((int)piVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }" { (expression_statement "*param_3 = iVar12;" (assignment_expression "*param_3 = iVar12" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "pcVar17 = (char *)((int)piVar5 + 1);" (assignment_expression "pcVar17 = (char *)((int)piVar5 + 1)" identifier = (cast_expression "(char *)((int)piVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (return_statement "return pcVar17;" return identifier ;) })) (if_statement "if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;" if (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11))" ( (binary_expression "*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) <= (pointer_expression "*(byte *)((int)piVar5 + iVar11)" * (cast_expression "(byte *)((int)piVar5 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + iVar11)" ( (binary_expression "(int)piVar5 + iVar11" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar12 = (int)piVar13 - (int)piVar5;" (assignment_expression "iVar12 = (int)piVar13 - (int)piVar5" identifier = (binary_expression "(int)piVar13 - (int)piVar5" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar11 = local_2c + 1;" (assignment_expression "iVar11 = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "piVar18 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar10 = piVar13;" (assignment_expression "piVar10 = piVar13" identifier = identifier) ;) })) (if_statement "if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" if (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11))" ( (binary_expression "*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (pointer_expression "*(byte *)((int)piVar5 + iVar11)" * (cast_expression "(byte *)((int)piVar5 + iVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + iVar11)" ( (binary_expression "(int)piVar5 + iVar11" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) (compound_statement "{\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }" { (if_statement "if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" if (parenthesized_expression "(iVar21 == iVar12)" ( (binary_expression "iVar21 == iVar12" identifier == identifier) )) (compound_statement "{\n              iVar21 = 1;\n            }" { (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" else (compound_statement "{\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" { (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" identifier = identifier) ;) }))) }) (else_clause "else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" else (compound_statement "{\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar13 = (int *)((int)piVar10 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar10 + 1)" identifier = (cast_expression "(int *)((int)piVar10 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 1)" ( (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar5 = piVar10;" (assignment_expression "piVar5 = piVar10" identifier = identifier) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;" if (parenthesized_expression "(*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13))" ( (binary_expression "*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)" (pointer_expression "*(byte *)((int)piVar4 + iVar12)" * (cast_expression "(byte *)((int)piVar4 + iVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + iVar12)" ( (binary_expression "(int)piVar4 + iVar12" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) <= (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) )) (break_statement "break;" break ;)) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "iVar11 = (int)piVar13 - (int)piVar4;" (assignment_expression "iVar11 = (int)piVar13 - (int)piVar4" identifier = (binary_expression "(int)piVar13 - (int)piVar4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar12 = local_2c + 1;" (assignment_expression "iVar12 = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) (expression_statement "piVar10 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar10 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar5 = piVar13;" (assignment_expression "piVar5 = piVar13" identifier = identifier) ;) })) (if_statement "if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" if (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12))" ( (binary_expression "*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" * (cast_expression "(byte *)(local_2c + (int)piVar13)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + (int)piVar13)" ( (binary_expression "local_2c + (int)piVar13" identifier + (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (pointer_expression "*(byte *)((int)piVar4 + iVar12)" * (cast_expression "(byte *)((int)piVar4 + iVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + iVar12)" ( (binary_expression "(int)piVar4 + iVar12" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) )) (compound_statement "{\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }" { (if_statement "if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" if (parenthesized_expression "(iVar21 == iVar11)" ( (binary_expression "iVar21 == iVar11" identifier == identifier) )) (compound_statement "{\n        iVar21 = 1;\n      }" { (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" else (compound_statement "{\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" { (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar5;" (assignment_expression "piVar13 = piVar5" identifier = identifier) ;) }))) }) (else_clause "else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" else (compound_statement "{\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" { (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) (expression_statement "piVar13 = (int *)((int)piVar5 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar5 + 1)" identifier = (cast_expression "(int *)((int)piVar5 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;" statement_identifier : (expression_statement "pcVar17 = pcVar6 + (int)pcVar15;" (assignment_expression "pcVar17 = pcVar6 + (int)pcVar15" identifier = (binary_expression "pcVar6 + (int)pcVar15" identifier + (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (goto_statement "goto LAB_00034a2c;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT))) ))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ))) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) })))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) })) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) while (parenthesized_expression ( BOOL )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "char * rpl_strcasestr(char *param_1,int *param_2,int *param_3)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}" (primitive_type "char") (pointer_declarator "* rpl_strcasestr(char *param_1,int *param_2,int *param_3)" (* "*") (function_declarator "rpl_strcasestr(char *param_1,int *param_2,int *param_3)" (identifier "rpl_strcasestr") (parameter_list "(char *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  char *pcVar3;\n  int *piVar4;\n  int *piVar5;\n  char *pcVar6;\n  int *piVar7;\n  uint uVar8;\n  int *piVar9;\n  int *piVar10;\n  int iVar11;\n  int iVar12;\n  int *piVar13;\n  uint uVar14;\n  char *pcVar15;\n  uint uVar16;\n  char *pcVar17;\n  int *piVar18;\n  uint uVar19;\n  int *piVar20;\n  int iVar21;\n  int *local_54;\n  char *local_30;\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_0004b460;\n  uVar8 = (uint)*param_1;\n  local_2c = *(int *)PTR___stack_chk_guard_0004b460;\n  uVar19 = (uint)*(char *)param_2;\n  pcVar17 = param_1;\n  piVar9 = param_2;\n  if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }\nLAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }\n  (*(code *)PTR___stack_chk_fail_0004b438)();\n  iVar11 = 1;\n  iVar21 = 1;\n  piVar4 = (int *)0xffffffff;\n  piVar13 = (int *)0x0;\n  do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );\nLAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;\n  goto LAB_00034a2c;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "char *pcVar17;" (primitive_type "char") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int *local_54;" (primitive_type "int") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "char *local_30;" (primitive_type "char") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_0004b460;" (assignment_expression "puVar2 = PTR___stack_chk_guard_0004b460" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_0004b460")) (; ";")) (expression_statement "uVar8 = (uint)*param_1;" (assignment_expression "uVar8 = (uint)*param_1" (identifier "uVar8") (= "=") (binary_expression "(uint)*param_1" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0004b460;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0004b460" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0004b460" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0004b460" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0004b460")))) (; ";")) (expression_statement "uVar19 = (uint)*(char *)param_2;" (assignment_expression "uVar19 = (uint)*(char *)param_2" (identifier "uVar19") (= "=") (binary_expression "(uint)*(char *)param_2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")))) (; ";")) (expression_statement "pcVar17 = param_1;" (assignment_expression "pcVar17 = param_1" (identifier "pcVar17") (= "=") (identifier "param_1")) (; ";")) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" (identifier "piVar9") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (uVar8 == 0) {\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }\n  else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }\n  }" ({ "{") (if_statement "if (uVar19 != 0) {\n      pcVar17 = (char *)0x0;\n    }" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar17 = (char *)0x0;\n    }" ({ "{") (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" (identifier "pcVar17") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" (else "else") (if_statement "if (uVar19 != 0) {\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bVar1 = true;\n    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();\n    iVar21 = *piVar4;\n    piVar13 = param_2;\n    do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);\n    piVar13 = (int *)((int)piVar13 - (int)param_2);\n    pcVar17 = param_1;\n    if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }\n  }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();" (assignment_expression "piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_0004b2d8)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_0004b2d8)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_0004b2d8" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_0004b2d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_0004b2d8"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" (identifier "iVar21") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "piVar13 = param_2;" (assignment_expression "piVar13 = param_2" (identifier "piVar13") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    } while (uVar19 != 0);" (do "do") (compound_statement "{\n      uVar14 = uVar8 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }\n      uVar16 = uVar19 & 0xff;\n      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }\n      pcVar17 = pcVar17 + 1;\n      uVar8 = (uint)*pcVar17;\n      piVar13 = (int *)((int)piVar13 + 1);\n      uVar19 = (uint)*(char *)piVar13;\n      if (uVar14 != uVar16) {\n        bVar1 = false;\n      }\n      if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }\n    }" ({ "{") (expression_statement "uVar14 = uVar8 & 0xff;" (assignment_expression "uVar14 = uVar8 & 0xff" (identifier "uVar14") (= "=") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar14 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar14 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar14 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar14 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar14 * 2)" (( "(") (binary_expression "iVar21 + uVar14 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar14 * 2" (identifier "uVar14") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);\n      }" ({ "{") (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar14 = *(uint *)(*piVar5 + uVar14 * 4);" (assignment_expression "uVar14 = *(uint *)(*piVar5 + uVar14 * 4)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(*piVar5 + uVar14 * 4)" (* "*") (cast_expression "(uint *)(*piVar5 + uVar14 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + uVar14 * 4)" (( "(") (binary_expression "*piVar5 + uVar14 * 4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar16 = uVar19 & 0xff;" (assignment_expression "uVar16 = uVar19 & 0xff" (identifier "uVar16") (= "=") (binary_expression "uVar19 & 0xff" (identifier "uVar19") (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar16 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar16 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar16 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar16 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar16 * 2)" (( "(") (binary_expression "iVar21 + uVar16 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar16 * 2" (identifier "uVar16") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);\n      }" ({ "{") (expression_statement "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar16 = *(uint *)(*piVar5 + uVar16 * 4);" (assignment_expression "uVar16 = *(uint *)(*piVar5 + uVar16 * 4)" (identifier "uVar16") (= "=") (pointer_expression "*(uint *)(*piVar5 + uVar16 * 4)" (* "*") (cast_expression "(uint *)(*piVar5 + uVar16 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar5 + uVar16 * 4)" (( "(") (binary_expression "*piVar5 + uVar16 * 4" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (binary_expression "uVar16 * 4" (identifier "uVar16") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + 1" (identifier "pcVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = (uint)*pcVar17;" (assignment_expression "uVar8 = (uint)*pcVar17" (identifier "uVar8") (= "=") (binary_expression "(uint)*pcVar17" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar17"))) (; ";")) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)piVar13 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 1)" (( "(") (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar19 = (uint)*(char *)piVar13;" (assignment_expression "uVar19 = (uint)*(char *)piVar13" (identifier "uVar19") (= "=") (binary_expression "(uint)*(char *)piVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(char *)piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar13")))) (; ";")) (if_statement "if (uVar14 != uVar16) {\n        bVar1 = false;\n      }" (if "if") (parenthesized_expression "(uVar14 != uVar16)" (( "(") (binary_expression "uVar14 != uVar16" (identifier "uVar14") (!= "!=") (identifier "uVar16")) () ")")) (compound_statement "{\n        bVar1 = false;\n      }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (} "}"))) (if_statement "if (uVar8 == 0) {\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar17 = (char *)0x0;\n        if (uVar19 != 0) goto LAB_00034a2c;\n        break;\n      }" ({ "{") (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" (identifier "pcVar17") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (uVar19 != 0) goto LAB_00034a2c;" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00034a2c;" (goto "goto") (statement_identifier "LAB_00034a2c") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "piVar13 = (int *)((int)piVar13 - (int)param_2);" (assignment_expression "piVar13 = (int *)((int)piVar13 - (int)param_2)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)piVar13 - (int)param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 - (int)param_2)" (( "(") (binary_expression "(int)piVar13 - (int)param_2" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (- "-") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")))) (; ";")) (expression_statement "pcVar17 = param_1;" (assignment_expression "pcVar17 = param_1" (identifier "pcVar17") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (!bVar1) {\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (compound_statement "{\n      pcVar6 = param_1 + 1;\n      piVar5 = (int *)((int)piVar13 + -1);\n      if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }\n    }" ({ "{") (expression_statement "pcVar6 = param_1 + 1;" (assignment_expression "pcVar6 = param_1 + 1" (identifier "pcVar6") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar5 = (int *)((int)piVar13 + -1);" (assignment_expression "piVar5 = (int *)((int)piVar13 + -1)" (identifier "piVar5") (= "=") (cast_expression "(int *)((int)piVar13 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -1)" (( "(") (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (piVar13 < (int *)0x20) {\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }\n      else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" (if "if") (parenthesized_expression "(piVar13 < (int *)0x20)" (( "(") (binary_expression "piVar13 < (int *)0x20" (identifier "piVar13") (< "<") (cast_expression "(int *)0x20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) () ")")) (compound_statement "{\n        if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }\n        pcVar3 = local_30;\n        iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);\n        if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }\n        pcVar17 = (char *)0x0;\n      }" ({ "{") (if_statement "if (piVar13 < (int *)0x3) {\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }\n        else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" (if "if") (parenthesized_expression "(piVar13 < (int *)0x3)" (( "(") (binary_expression "piVar13 < (int *)0x3" (identifier "piVar13") (< "<") (cast_expression "(int *)0x3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (compound_statement "{\n          local_30 = (char *)0x1;\n          local_54 = piVar5;\n        }" ({ "{") (expression_statement "local_30 = (char *)0x1;" (assignment_expression "local_30 = (char *)0x1" (identifier "local_30") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_54 = piVar5;" (assignment_expression "local_54 = piVar5" (identifier "local_54") (= "=") (identifier "piVar5")) (; ";")) (} "}")) (else_clause "else {\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" (else "else") (compound_statement "{\n          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);\n        }" ({ "{") (expression_statement "local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);" (assignment_expression "local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30)" (identifier "local_54") (= "=") (cast_expression "(int *)FUN_00033f40(param_2,piVar13,&local_30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00033f40(param_2,piVar13,&local_30)" (identifier "FUN_00033f40") (argument_list "(param_2,piVar13,&local_30)" (( "(") (identifier "param_2") (, ",") (identifier "piVar13") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pcVar3 = local_30;" (assignment_expression "pcVar3 = local_30" (identifier "pcVar3") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);" (assignment_expression "iVar21 = (*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54)" (identifier "iVar21") (= "=") (call_expression "(*(code *)PTR_strncasecmp_0004b378)\n                           (param_2,(char *)((int)param_2 + (int)local_30),local_54)" (parenthesized_expression "(*(code *)PTR_strncasecmp_0004b378)" (( "(") (pointer_expression "*(code *)PTR_strncasecmp_0004b378" (* "*") (cast_expression "(code *)PTR_strncasecmp_0004b378" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncasecmp_0004b378"))) () ")")) (argument_list "(param_2,(char *)((int)param_2 + (int)local_30),local_54)" (( "(") (identifier "param_2") (, ",") (cast_expression "(char *)((int)param_2 + (int)local_30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + (int)local_30)" (( "(") (binary_expression "(int)param_2 + (int)local_30" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")"))) (, ",") (identifier "local_54") () ")")))) (; ";")) (if_statement "if (iVar21 == 0) {\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }\n        else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar15 = (char *)0x0;\n          piVar10 = (int *)0x0;\nLAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }\n        }" ({ "{") (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" (identifier "pcVar15") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" (identifier "piVar10") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_00034b08:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (statement_identifier "LAB_00034b08") (: ":") (expression_statement "piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (assignment_expression "piVar18 = (int *)((int)piVar13 + (int)pcVar15)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar13 + (int)pcVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + (int)pcVar15)" (( "(") (binary_expression "(int)piVar13 + (int)pcVar15" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15"))) () ")")))) (; ";"))) (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" (identifier "piVar9") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_3 = (int *)((int)piVar18 - (int)piVar5);" (assignment_expression "param_3 = (int *)((int)piVar18 - (int)piVar5)" (identifier "param_3") (= "=") (cast_expression "(int *)((int)piVar18 - (int)piVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar18 - (int)piVar5)" (( "(") (binary_expression "(int)piVar18 - (int)piVar5" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (- "-") (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5"))) () ")")))) (; ";")) (expression_statement "iVar21 = rpl_memchr(pcVar6 + (int)piVar5);" (assignment_expression "iVar21 = rpl_memchr(pcVar6 + (int)piVar5)" (identifier "iVar21") (= "=") (call_expression "rpl_memchr(pcVar6 + (int)piVar5)" (identifier "rpl_memchr") (argument_list "(pcVar6 + (int)piVar5)" (( "(") (binary_expression "pcVar6 + (int)piVar5" (identifier "pcVar6") (+ "+") (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5"))) () ")")))) (; ";")) (if_statement "if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar9 = (int *)(uint)(local_54 < piVar10);\n            piVar7 = local_54;\n            if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }\n            piVar5 = piVar18;\n            if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }\n            piVar18 = local_54;\n            if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }\n            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;\n            pcVar15 = pcVar15 + (int)pcVar3;\n            piVar10 = (int *)((int)piVar13 - (int)pcVar3);\n            goto LAB_00034b08;\n          }" ({ "{") (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" (identifier "pcVar17") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar18 == (int *)0x0) goto LAB_00034a2c;" (if "if") (parenthesized_expression "(piVar18 == (int *)0x0)" (( "(") (binary_expression "piVar18 == (int *)0x0" (identifier "piVar18") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00034a2c;" (goto "goto") (statement_identifier "LAB_00034a2c") (; ";"))) (expression_statement "piVar9 = (int *)(uint)(local_54 < piVar10);" (assignment_expression "piVar9 = (int *)(uint)(local_54 < piVar10)" (identifier "piVar9") (= "=") (cast_expression "(int *)(uint)(local_54 < piVar10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(local_54 < piVar10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_54 < piVar10)" (( "(") (binary_expression "local_54 < piVar10" (identifier "local_54") (< "<") (identifier "piVar10")) () ")"))))) (; ";")) (expression_statement "piVar7 = local_54;" (assignment_expression "piVar7 = local_54" (identifier "piVar7") (= "=") (identifier "local_54")) (; ";")) (if_statement "if (piVar9 != (int *)0x0) {\n              piVar7 = piVar10;\n            }" (if "if") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              piVar7 = piVar10;\n            }" ({ "{") (expression_statement "piVar7 = piVar10;" (assignment_expression "piVar7 = piVar10" (identifier "piVar7") (= "=") (identifier "piVar10")) (; ";")) (} "}"))) (expression_statement "piVar5 = piVar18;" (assignment_expression "piVar5 = piVar18" (identifier "piVar5") (= "=") (identifier "piVar18")) (; ";")) (if_statement "if (piVar7 < piVar13) {\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }" (if "if") (parenthesized_expression "(piVar7 < piVar13)" (( "(") (binary_expression "piVar7 < piVar13" (identifier "piVar7") (< "<") (identifier "piVar13")) () ")")) (compound_statement "{\n              iVar21 = *piVar4;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);\n            }" ({ "{") (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" (identifier "iVar21") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (do_statement "do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              } while (piVar13 != piVar7);" (do "do") (compound_statement "{\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }\n                piVar7 = (int *)((int)piVar7 + 1);\n              }" ({ "{") (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)param_2 + (int)piVar7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + (int)piVar7)" (( "(") (binary_expression "(int)param_2 + (int)piVar7" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar8 * 2)" (( "(") (binary_expression "iVar21 + uVar8 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" ({ "{") (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" (* "*") (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar18 + uVar8 * 4)" (( "(") (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1]" (identifier "uVar19") (= "=") (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar7))" (( "(") (binary_expression "param_1 + (int)(pcVar15 + (int)piVar7)" (identifier "param_1") (+ "+") (cast_expression "(int)(pcVar15 + (int)piVar7)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar15 + (int)piVar7)" (( "(") (binary_expression "pcVar15 + (int)piVar7" (identifier "pcVar15") (+ "+") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7"))) () ")")))) () ")"))) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar19 * 2)" (( "(") (binary_expression "iVar21 + uVar19 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar19 * 2" (identifier "uVar19") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" ({ "{") (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" (* "*") (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar18 + uVar19 * 4)" (( "(") (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (+ "+") (binary_expression "uVar19 * 4" (identifier "uVar19") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (uVar8 != uVar19) {\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" (if "if") (parenthesized_expression "(uVar8 != uVar19)" (( "(") (binary_expression "uVar8 != uVar19" (identifier "uVar8") (!= "!=") (identifier "uVar19")) () ")")) (compound_statement "{\n                  if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }\n                  break;\n                }" ({ "{") (if_statement "if (piVar7 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }" (if "if") (parenthesized_expression "(piVar7 < piVar13)" (( "(") (binary_expression "piVar7 < piVar13" (identifier "piVar7") (< "<") (identifier "piVar13")) () ")")) (compound_statement "{\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;\n                    piVar10 = (int *)0x0;\n                    goto LAB_00034b08;\n                  }" ({ "{") (expression_statement "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;" (assignment_expression "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (1 - (int)local_54) + (int)piVar7" (binary_expression "pcVar15 + (1 - (int)local_54)" (identifier "pcVar15") (+ "+") (parenthesized_expression "(1 - (int)local_54)" (( "(") (binary_expression "1 - (int)local_54" (number_literal "1") (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54"))) () ")"))) (+ "+") (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")))) (; ";")) (expression_statement "piVar10 = (int *)0x0;" (assignment_expression "piVar10 = (int *)0x0" (identifier "piVar10") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00034b08;" (goto "goto") (statement_identifier "LAB_00034b08") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar7 = (int *)((int)piVar7 + 1);" (assignment_expression "piVar7 = (int *)((int)piVar7 + 1)" (identifier "piVar7") (= "=") (cast_expression "(int *)((int)piVar7 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + 1)" (( "(") (binary_expression "(int)piVar7 + 1" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar13 != piVar7)" (( "(") (binary_expression "piVar13 != piVar7" (identifier "piVar13") (!= "!=") (identifier "piVar7")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" (identifier "piVar18") (= "=") (identifier "local_54")) (; ";")) (if_statement "if (piVar10 < local_54) {\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }" (if "if") (parenthesized_expression "(piVar10 < local_54)" (( "(") (binary_expression "piVar10 < local_54" (identifier "piVar10") (< "<") (identifier "local_54")) () ")")) (compound_statement "{\n              iVar21 = *piVar4;\n              piVar7 = local_54;\n              do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));\n            }" ({ "{") (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" (identifier "iVar21") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "piVar7 = local_54;" (assignment_expression "piVar7 = local_54" (identifier "piVar7") (= "=") (identifier "local_54")) (; ";")) (do_statement "do {\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              } while ((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));" (do "do") (compound_statement "{\n                piVar20 = (int *)((int)piVar7 + -1);\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }\n                piVar18 = piVar7;\n              }" ({ "{") (expression_statement "piVar20 = (int *)((int)piVar7 + -1);" (assignment_expression "piVar20 = (int *)((int)piVar7 + -1)" (identifier "piVar20") (= "=") (cast_expression "(int *)((int)piVar7 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + -1)" (( "(") (binary_expression "(int)piVar7 + -1" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)param_2 + (int)piVar20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + (int)piVar20)" (( "(") (binary_expression "(int)param_2 + (int)piVar20" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20"))) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar8 * 2)" (( "(") (binary_expression "iVar21 + uVar8 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n                }" ({ "{") (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" (* "*") (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar18 + uVar8 * 4)" (( "(") (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1]" (identifier "uVar19") (= "=") (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar20))" (( "(") (binary_expression "param_1 + (int)(pcVar15 + (int)piVar20)" (identifier "param_1") (+ "+") (cast_expression "(int)(pcVar15 + (int)piVar20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar15 + (int)piVar20)" (( "(") (binary_expression "pcVar15 + (int)piVar20" (identifier "pcVar15") (+ "+") (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20"))) () ")")))) () ")"))) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar19 * 2)" (( "(") (binary_expression "iVar21 + uVar19 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar19 * 2" (identifier "uVar19") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n                }" ({ "{") (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" (* "*") (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar18 + uVar19 * 4)" (( "(") (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (+ "+") (binary_expression "uVar19 * 4" (identifier "uVar19") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar18 = piVar7;" (assignment_expression "piVar18 = piVar7" (identifier "piVar18") (= "=") (identifier "piVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20))" (( "(") (binary_expression "(uVar8 == uVar19) &&\n                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20)" (parenthesized_expression "(uVar8 == uVar19)" (( "(") (binary_expression "uVar8 == uVar19" (identifier "uVar8") (== "==") (identifier "uVar19")) () ")")) (&& "&&") (parenthesized_expression "(piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20)" (( "(") (comma_expression "piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20" (assignment_expression "piVar18 = piVar10" (identifier "piVar18") (= "=") (identifier "piVar10")) (, ",") (comma_expression "piVar7 = piVar20, piVar10 != piVar20" (assignment_expression "piVar7 = piVar20" (identifier "piVar7") (= "=") (identifier "piVar20")) (, ",") (binary_expression "piVar10 != piVar20" (identifier "piVar10") (!= "!=") (identifier "piVar20")))) () ")"))) () ")")) (; ";")) (} "}"))) (if_statement "if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;" (if "if") (parenthesized_expression "(piVar18 < (int *)((int)piVar10 + 1))" (( "(") (binary_expression "piVar18 < (int *)((int)piVar10 + 1)" (identifier "piVar18") (< "<") (cast_expression "(int *)((int)piVar10 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + 1)" (( "(") (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "1")) () ")")))) () ")")) (goto_statement "goto LAB_00034f3c;" (goto "goto") (statement_identifier "LAB_00034f3c") (; ";"))) (expression_statement "pcVar15 = pcVar15 + (int)pcVar3;" (assignment_expression "pcVar15 = pcVar15 + (int)pcVar3" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (int)pcVar3" (identifier "pcVar15") (+ "+") (cast_expression "(int)pcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar3")))) (; ";")) (expression_statement "piVar10 = (int *)((int)piVar13 - (int)pcVar3);" (assignment_expression "piVar10 = (int *)((int)piVar13 - (int)pcVar3)" (identifier "piVar10") (= "=") (cast_expression "(int *)((int)piVar13 - (int)pcVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 - (int)pcVar3)" (( "(") (binary_expression "(int)piVar13 - (int)pcVar3" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (- "-") (cast_expression "(int)pcVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar3"))) () ")")))) (; ";")) (goto_statement "goto LAB_00034b08;" (goto "goto") (statement_identifier "LAB_00034b08") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" (else "else") (compound_statement "{\n          pcVar15 = (char *)0x0;\n          piVar10 = local_54;\n          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }\n          local_30 = (char *)((int)piVar10 + 1);\nLAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);\n          piVar9 = (int *)0x0;\n          param_3 = (int *)((int)piVar18 - (int)piVar5);\n          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);\n          if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }\n        }" ({ "{") (expression_statement "pcVar15 = (char *)0x0;" (assignment_expression "pcVar15 = (char *)0x0" (identifier "pcVar15") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar10 = local_54;" (assignment_expression "piVar10 = local_54" (identifier "piVar10") (= "=") (identifier "local_54")) (; ";")) (if_statement "if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }" (if "if") (parenthesized_expression "(local_54 <= (int *)((int)piVar13 - (int)local_54))" (( "(") (binary_expression "local_54 <= (int *)((int)piVar13 - (int)local_54)" (identifier "local_54") (<= "<=") (cast_expression "(int *)((int)piVar13 - (int)local_54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 - (int)local_54)" (( "(") (binary_expression "(int)piVar13 - (int)local_54" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54"))) () ")")))) () ")")) (compound_statement "{\n            piVar10 = (int *)((int)piVar13 - (int)local_54);\n          }" ({ "{") (expression_statement "piVar10 = (int *)((int)piVar13 - (int)local_54);" (assignment_expression "piVar10 = (int *)((int)piVar13 - (int)local_54)" (identifier "piVar10") (= "=") (cast_expression "(int *)((int)piVar13 - (int)local_54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 - (int)local_54)" (( "(") (binary_expression "(int)piVar13 - (int)local_54" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54"))) () ")")))) (; ";")) (} "}"))) (expression_statement "local_30 = (char *)((int)piVar10 + 1);" (assignment_expression "local_30 = (char *)((int)piVar10 + 1)" (identifier "local_30") (= "=") (cast_expression "(char *)((int)piVar10 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + 1)" (( "(") (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (labeled_statement "LAB_00034d40:\n          piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (statement_identifier "LAB_00034d40") (: ":") (expression_statement "piVar18 = (int *)((int)piVar13 + (int)pcVar15);" (assignment_expression "piVar18 = (int *)((int)piVar13 + (int)pcVar15)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar13 + (int)pcVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + (int)pcVar15)" (( "(") (binary_expression "(int)piVar13 + (int)pcVar15" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15"))) () ")")))) (; ";"))) (expression_statement "piVar9 = (int *)0x0;" (assignment_expression "piVar9 = (int *)0x0" (identifier "piVar9") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_3 = (int *)((int)piVar18 - (int)piVar5);" (assignment_expression "param_3 = (int *)((int)piVar18 - (int)piVar5)" (identifier "param_3") (= "=") (cast_expression "(int *)((int)piVar18 - (int)piVar5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar18 - (int)piVar5)" (( "(") (binary_expression "(int)piVar18 - (int)piVar5" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (- "-") (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5"))) () ")")))) (; ";")) (expression_statement "iVar21 = rpl_memchr(pcVar6 + (int)piVar5);" (assignment_expression "iVar21 = rpl_memchr(pcVar6 + (int)piVar5)" (identifier "iVar21") (= "=") (call_expression "rpl_memchr(pcVar6 + (int)piVar5)" (identifier "rpl_memchr") (argument_list "(pcVar6 + (int)piVar5)" (( "(") (binary_expression "pcVar6 + (int)piVar5" (identifier "pcVar6") (+ "+") (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5"))) () ")")))) (; ";")) (if_statement "if (iVar21 == 0) {\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar17 = (char *)0x0;\n            if (piVar18 == (int *)0x0) goto LAB_00034a2c;\n            piVar5 = piVar18;\n            if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }\n            pcVar17 = (char *)((int)local_54 + -1);\n            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            iVar21 = *piVar4;\n            while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }\n            pcVar15 = pcVar15 + (int)piVar10 + 1;\n            goto LAB_00034d40;\n          }" ({ "{") (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" (identifier "pcVar17") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar18 == (int *)0x0) goto LAB_00034a2c;" (if "if") (parenthesized_expression "(piVar18 == (int *)0x0)" (( "(") (binary_expression "piVar18 == (int *)0x0" (identifier "piVar18") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00034a2c;" (goto "goto") (statement_identifier "LAB_00034a2c") (; ";"))) (expression_statement "piVar5 = piVar18;" (assignment_expression "piVar5 = piVar18" (identifier "piVar5") (= "=") (identifier "piVar18")) (; ";")) (if_statement "if (local_54 < piVar13) {\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }" (if "if") (parenthesized_expression "(local_54 < piVar13)" (( "(") (binary_expression "local_54 < piVar13" (identifier "local_54") (< "<") (identifier "piVar13")) () ")")) (compound_statement "{\n              iVar21 = *piVar4;\n              piVar18 = local_54;\n              do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);\n            }" ({ "{") (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" (identifier "iVar21") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "piVar18 = local_54;" (assignment_expression "piVar18 = local_54" (identifier "piVar18") (= "=") (identifier "local_54")) (; ";")) (do_statement "do {\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              } while (piVar18 < piVar13);" (do "do") (compound_statement "{\n                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);\n                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }\n                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];\n                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }\n                if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }\n                piVar18 = (int *)((int)piVar18 + 1);\n              }" ({ "{") (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)((int)param_2 + (int)piVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)param_2 + (int)piVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + (int)piVar18)" (( "(") (binary_expression "(int)param_2 + (int)piVar18" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18"))) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar8 * 2)" (( "(") (binary_expression "iVar21 + uVar8 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);\n                }" ({ "{") (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(*piVar7 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar7 + uVar8 * 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(*piVar7 + uVar8 * 4)" (* "*") (cast_expression "(uint *)(*piVar7 + uVar8 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar7 + uVar8 * 4)" (( "(") (binary_expression "*piVar7 + uVar8 * 4" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1]" (identifier "uVar19") (= "=") (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(param_1 + (int)(pcVar15 + (int)piVar18))" (( "(") (binary_expression "param_1 + (int)(pcVar15 + (int)piVar18)" (identifier "param_1") (+ "+") (cast_expression "(int)(pcVar15 + (int)piVar18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar15 + (int)piVar18)" (( "(") (binary_expression "pcVar15 + (int)piVar18" (identifier "pcVar15") (+ "+") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18"))) () ")")))) () ")"))) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar19 * 2)" (( "(") (binary_expression "iVar21 + uVar19 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar19 * 2" (identifier "uVar19") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);\n                }" ({ "{") (expression_statement "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar7") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar19 = *(uint *)(*piVar7 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar7 + uVar19 * 4)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(*piVar7 + uVar19 * 4)" (* "*") (cast_expression "(uint *)(*piVar7 + uVar19 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar7 + uVar19 * 4)" (( "(") (binary_expression "*piVar7 + uVar19 * 4" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (+ "+") (binary_expression "uVar19 * 4" (identifier "uVar19") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (if_statement "if (uVar8 != uVar19) {\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" (if "if") (parenthesized_expression "(uVar8 != uVar19)" (( "(") (binary_expression "uVar8 != uVar19" (identifier "uVar8") (!= "!=") (identifier "uVar19")) () ")")) (compound_statement "{\n                  if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }\n                  break;\n                }" ({ "{") (if_statement "if (piVar18 < piVar13) {\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }" (if "if") (parenthesized_expression "(piVar18 < piVar13)" (( "(") (binary_expression "piVar18 < piVar13" (identifier "piVar18") (< "<") (identifier "piVar13")) () ")")) (compound_statement "{\n                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;\n                    goto LAB_00034d40;\n                  }" ({ "{") (expression_statement "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;" (assignment_expression "pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (1 - (int)local_54) + (int)piVar18" (binary_expression "pcVar15 + (1 - (int)local_54)" (identifier "pcVar15") (+ "+") (parenthesized_expression "(1 - (int)local_54)" (( "(") (binary_expression "1 - (int)local_54" (number_literal "1") (- "-") (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54"))) () ")"))) (+ "+") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")))) (; ";")) (goto_statement "goto LAB_00034d40;" (goto "goto") (statement_identifier "LAB_00034d40") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar18 = (int *)((int)piVar18 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar18 + 1)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar18 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar18 + 1)" (( "(") (binary_expression "(int)piVar18 + 1" (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar18 < piVar13)" (( "(") (binary_expression "piVar18 < piVar13" (identifier "piVar18") (< "<") (identifier "piVar13")) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar17 = (char *)((int)local_54 + -1);" (assignment_expression "pcVar17 = (char *)((int)local_54 + -1)" (identifier "pcVar17") (= "=") (cast_expression "(char *)((int)local_54 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_54 + -1)" (( "(") (binary_expression "(int)local_54 + -1" (cast_expression "(int)local_54" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_54")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;" (if "if") (parenthesized_expression "(pcVar17 == (char *)0xffffffff)" (( "(") (binary_expression "pcVar17 == (char *)0xffffffff" (identifier "pcVar17") (== "==") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (goto_statement "goto LAB_00034f3c;" (goto "goto") (statement_identifier "LAB_00034f3c") (; ";"))) (expression_statement "iVar21 = *piVar4;" (assignment_expression "iVar21 = *piVar4" (identifier "iVar21") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (while_statement "while( true ) {\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);\n              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }\n              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];\n              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }\n              pcVar17 = pcVar17 + -1;\n              if (uVar8 != uVar19) break;\n              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;\n            }" ({ "{") (expression_statement "uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);" (assignment_expression "uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)((int)param_2 + (int)pcVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)param_2 + (int)pcVar17)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + (int)pcVar17)" (( "(") (binary_expression "(int)param_2 + (int)pcVar17" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (cast_expression "(int)pcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar17"))) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar8 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar8 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar8 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar8 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar8 * 2)" (( "(") (binary_expression "iVar21 + uVar8 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);\n              }" ({ "{") (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar8 = *(uint *)(*piVar18 + uVar8 * 4);" (assignment_expression "uVar8 = *(uint *)(*piVar18 + uVar8 * 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(*piVar18 + uVar8 * 4)" (* "*") (cast_expression "(uint *)(*piVar18 + uVar8 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar18 + uVar8 * 4)" (( "(") (binary_expression "*piVar18 + uVar8 * 4" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];" (assignment_expression "uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1]" (identifier "uVar19") (= "=") (subscript_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1]" (call_expression "(uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "(param_1 + (int)(pcVar15 + (int)pcVar17))" (( "(") (binary_expression "param_1 + (int)(pcVar15 + (int)pcVar17)" (identifier "param_1") (+ "+") (cast_expression "(int)(pcVar15 + (int)pcVar17)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar15 + (int)pcVar17)" (( "(") (binary_expression "pcVar15 + (int)pcVar17" (identifier "pcVar15") (+ "+") (cast_expression "(int)pcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar17"))) () ")")))) () ")"))) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }" (if "if") (parenthesized_expression "((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0" (parenthesized_expression "(*(ushort *)(iVar21 + uVar19 * 2) & 1)" (( "(") (binary_expression "*(ushort *)(iVar21 + uVar19 * 2) & 1" (pointer_expression "*(ushort *)(iVar21 + uVar19 * 2)" (* "*") (cast_expression "(ushort *)(iVar21 + uVar19 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + uVar19 * 2)" (( "(") (binary_expression "iVar21 + uVar19 * 2" (identifier "iVar21") (+ "+") (binary_expression "uVar19 * 2" (identifier "uVar19") (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();\n                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);\n              }" ({ "{") (expression_statement "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();" (assignment_expression "piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (identifier "piVar18") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)()" (parenthesized_expression "(*(code *)PTR___ctype_tolower_loc_0004b2e0)" (( "(") (pointer_expression "*(code *)PTR___ctype_tolower_loc_0004b2e0" (* "*") (cast_expression "(code *)PTR___ctype_tolower_loc_0004b2e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_tolower_loc_0004b2e0"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar19 = *(uint *)(*piVar18 + uVar19 * 4);" (assignment_expression "uVar19 = *(uint *)(*piVar18 + uVar19 * 4)" (identifier "uVar19") (= "=") (pointer_expression "*(uint *)(*piVar18 + uVar19 * 4)" (* "*") (cast_expression "(uint *)(*piVar18 + uVar19 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar18 + uVar19 * 4)" (( "(") (binary_expression "*piVar18 + uVar19 * 4" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (+ "+") (binary_expression "uVar19 * 4" (identifier "uVar19") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcVar17 = pcVar17 + -1;" (assignment_expression "pcVar17 = pcVar17 + -1" (identifier "pcVar17") (= "=") (binary_expression "pcVar17 + -1" (identifier "pcVar17") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (uVar8 != uVar19) break;" (if "if") (parenthesized_expression "(uVar8 != uVar19)" (( "(") (binary_expression "uVar8 != uVar19" (identifier "uVar8") (!= "!=") (identifier "uVar19")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;" (if "if") (parenthesized_expression "(pcVar17 == (char *)0xffffffff)" (( "(") (binary_expression "pcVar17 == (char *)0xffffffff" (identifier "pcVar17") (== "==") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (goto_statement "goto LAB_00034f3c;" (goto "goto") (statement_identifier "LAB_00034f3c") (; ";"))) (} "}"))) (expression_statement "pcVar15 = pcVar15 + (int)piVar10 + 1;" (assignment_expression "pcVar15 = pcVar15 + (int)piVar10 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (int)piVar10 + 1" (binary_expression "pcVar15 + (int)piVar10" (identifier "pcVar15") (+ "+") (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10"))) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00034d40;" (goto "goto") (statement_identifier "LAB_00034d40") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar17 = (char *)0x0;" (assignment_expression "pcVar17 = (char *)0x0" (identifier "pcVar17") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" (else "else") (compound_statement "{\n        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);\n        piVar9 = piVar5;\n        param_3 = param_2;\n      }" ({ "{") (expression_statement "pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);" (assignment_expression "pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" (identifier "pcVar17") (= "=") (cast_expression "(char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003420c(pcVar6,piVar5,param_2,piVar13)" (identifier "FUN_0003420c") (argument_list "(pcVar6,piVar5,param_2,piVar13)" (( "(") (identifier "pcVar6") (, ",") (identifier "piVar5") (, ",") (identifier "param_2") (, ",") (identifier "piVar13") () ")"))))) (; ";")) (expression_statement "piVar9 = piVar5;" (assignment_expression "piVar9 = piVar5" (identifier "piVar9") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "param_3 = param_2;" (assignment_expression "param_3 = param_2" (identifier "param_3") (= "=") (identifier "param_2")) (; ";")) (} "}")))) (} "}"))) (} "}"))))) (labeled_statement "LAB_00034a2c:\n  if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }" (statement_identifier "LAB_00034a2c") (: ":") (if_statement "if (local_2c == *(int *)puVar2) {\n    return pcVar17;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar2)" (( "(") (binary_expression "local_2c == *(int *)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return pcVar17;\n  }" ({ "{") (return_statement "return pcVar17;" (return "return") (identifier "pcVar17") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_0004b438)();" (call_expression "(*(code *)PTR___stack_chk_fail_0004b438)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0004b438)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0004b438" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0004b438" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0004b438"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar4 = (int *)0xffffffff;" (assignment_expression "piVar4 = (int *)0xffffffff" (identifier "piVar4") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "piVar13 = (int *)0x0;" (assignment_expression "piVar13 = (int *)0x0" (identifier "piVar13") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  } while( true );" (do "do") (compound_statement "{\n    iVar12 = iVar21 + local_2c;\n    piVar10 = (int *)(iVar21 + (int)piVar13);\n    piVar5 = piVar13;\n    while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }\n    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }\n  }" ({ "{") (expression_statement "iVar12 = iVar21 + local_2c;" (assignment_expression "iVar12 = iVar21 + local_2c" (identifier "iVar12") (= "=") (binary_expression "iVar21 + local_2c" (identifier "iVar21") (+ "+") (identifier "local_2c"))) (; ";")) (expression_statement "piVar10 = (int *)(iVar21 + (int)piVar13);" (assignment_expression "piVar10 = (int *)(iVar21 + (int)piVar13)" (identifier "piVar10") (= "=") (cast_expression "(int *)(iVar21 + (int)piVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + (int)piVar13)" (( "(") (binary_expression "iVar21 + (int)piVar13" (identifier "iVar21") (+ "+") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")")))) (; ";")) (expression_statement "piVar5 = piVar13;" (assignment_expression "piVar5 = piVar13" (identifier "piVar5") (= "=") (identifier "piVar13")) (; ";")) (while_statement "while( true ) {\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      piVar13 = piVar10;\n      if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }\n      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;\n      iVar21 = 1;\n      iVar11 = (int)piVar13 - (int)piVar4;\n      iVar12 = local_2c + 1;\n      piVar10 = (int *)((int)piVar13 + 1);\n      piVar5 = piVar13;\n    }" ({ "{") (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" (identifier "piVar13") (= "=") (identifier "piVar10")) (; ";")) (if_statement "if (piVar9 <= piVar13) {\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }" (if "if") (parenthesized_expression "(piVar9 <= piVar13)" (( "(") (binary_expression "piVar9 <= piVar13" (identifier "piVar9") (<= "<=") (identifier "piVar13")) () ")")) (compound_statement "{\n        iVar12 = 1;\n        *param_3 = iVar11;\n        iVar21 = 1;\n        piVar13 = (int *)0x0;\n        piVar5 = (int *)0xffffffff;\n        do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );\n      }" ({ "{") (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (expression_statement "*param_3 = iVar11;" (assignment_expression "*param_3 = iVar11" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar13 = (int *)0x0;" (assignment_expression "piVar13 = (int *)0x0" (identifier "piVar13") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar5 = (int *)0xffffffff;" (assignment_expression "piVar5 = (int *)0xffffffff" (identifier "piVar5") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (do_statement "do {\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        } while( true );" (do "do") (compound_statement "{\n          iVar11 = iVar21 + local_2c;\n          piVar18 = (int *)(iVar21 + (int)piVar13);\n          piVar10 = piVar13;\n          while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }\n          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }\n        }" ({ "{") (expression_statement "iVar11 = iVar21 + local_2c;" (assignment_expression "iVar11 = iVar21 + local_2c" (identifier "iVar11") (= "=") (binary_expression "iVar21 + local_2c" (identifier "iVar21") (+ "+") (identifier "local_2c"))) (; ";")) (expression_statement "piVar18 = (int *)(iVar21 + (int)piVar13);" (assignment_expression "piVar18 = (int *)(iVar21 + (int)piVar13)" (identifier "piVar18") (= "=") (cast_expression "(int *)(iVar21 + (int)piVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + (int)piVar13)" (( "(") (binary_expression "iVar21 + (int)piVar13" (identifier "iVar21") (+ "+") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")")))) (; ";")) (expression_statement "piVar10 = piVar13;" (assignment_expression "piVar10 = piVar13" (identifier "piVar10") (= "=") (identifier "piVar13")) (; ";")) (while_statement "while( true ) {\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            piVar13 = piVar18;\n            if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }\n            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;\n            iVar21 = 1;\n            iVar12 = (int)piVar13 - (int)piVar5;\n            iVar11 = local_2c + 1;\n            piVar18 = (int *)((int)piVar13 + 1);\n            piVar10 = piVar13;\n          }" ({ "{") (expression_statement "piVar13 = piVar18;" (assignment_expression "piVar13 = piVar18" (identifier "piVar13") (= "=") (identifier "piVar18")) (; ";")) (if_statement "if (piVar9 <= piVar13) {\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }" (if "if") (parenthesized_expression "(piVar9 <= piVar13)" (( "(") (binary_expression "piVar9 <= piVar13" (identifier "piVar9") (<= "<=") (identifier "piVar13")) () ")")) (compound_statement "{\n              pcVar17 = (char *)((int)piVar4 + 1);\n              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }\n              return pcVar17;\n            }" ({ "{") (expression_statement "pcVar17 = (char *)((int)piVar4 + 1);" (assignment_expression "pcVar17 = (char *)((int)piVar4 + 1)" (identifier "pcVar17") (= "=") (cast_expression "(char *)((int)piVar4 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 1)" (( "(") (binary_expression "(int)piVar4 + 1" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }" (if "if") (parenthesized_expression "((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1))" (( "(") (binary_expression "(char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)" (cast_expression "(char *)((int)piVar4 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 1)" (( "(") (binary_expression "(int)piVar4 + 1" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "1")) () ")"))) (<= "<=") (cast_expression "(char *)((int)piVar5 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 1)" (( "(") (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "1")) () ")")))) () ")")) (compound_statement "{\n                *param_3 = iVar12;\n                pcVar17 = (char *)((int)piVar5 + 1);\n              }" ({ "{") (expression_statement "*param_3 = iVar12;" (assignment_expression "*param_3 = iVar12" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "pcVar17 = (char *)((int)piVar5 + 1);" (assignment_expression "pcVar17 = (char *)((int)piVar5 + 1)" (identifier "pcVar17") (= "=") (cast_expression "(char *)((int)piVar5 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 1)" (( "(") (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (return_statement "return pcVar17;" (return "return") (identifier "pcVar17") (; ";")) (} "}"))) (if_statement "if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;" (if "if") (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11))" (( "(") (binary_expression "*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" (* "*") (cast_expression "(byte *)(local_2c + (int)piVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + (int)piVar13)" (( "(") (binary_expression "local_2c + (int)piVar13" (identifier "local_2c") (+ "+") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")")))) (<= "<=") (pointer_expression "*(byte *)((int)piVar5 + iVar11)" (* "*") (cast_expression "(byte *)((int)piVar5 + iVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + iVar11)" (( "(") (binary_expression "(int)piVar5 + iVar11" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (identifier "iVar11")) () ")"))))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar12 = (int)piVar13 - (int)piVar5;" (assignment_expression "iVar12 = (int)piVar13 - (int)piVar5" (identifier "iVar12") (= "=") (binary_expression "(int)piVar13 - (int)piVar5" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (- "-") (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")))) (; ";")) (expression_statement "iVar11 = local_2c + 1;" (assignment_expression "iVar11 = local_2c + 1" (identifier "iVar11") (= "=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar18 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar18 = (int *)((int)piVar13 + 1)" (identifier "piVar18") (= "=") (cast_expression "(int *)((int)piVar13 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 1)" (( "(") (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar10 = piVar13;" (assignment_expression "piVar10 = piVar13" (identifier "piVar10") (= "=") (identifier "piVar13")) (; ";")) (} "}"))) (if_statement "if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }\n          else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" (if "if") (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11))" (( "(") (binary_expression "*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" (* "*") (cast_expression "(byte *)(local_2c + (int)piVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + (int)piVar13)" (( "(") (binary_expression "local_2c + (int)piVar13" (identifier "local_2c") (+ "+") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")")))) (== "==") (pointer_expression "*(byte *)((int)piVar5 + iVar11)" (* "*") (cast_expression "(byte *)((int)piVar5 + iVar11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + iVar11)" (( "(") (binary_expression "(int)piVar5 + iVar11" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (identifier "iVar11")) () ")"))))) () ")")) (compound_statement "{\n            if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }\n          }" ({ "{") (if_statement "if (iVar21 == iVar12) {\n              iVar21 = 1;\n            }\n            else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" (if "if") (parenthesized_expression "(iVar21 == iVar12)" (( "(") (binary_expression "iVar21 == iVar12" (identifier "iVar21") (== "==") (identifier "iVar12")) () ")")) (compound_statement "{\n              iVar21 = 1;\n            }" ({ "{") (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" (else "else") (compound_statement "{\n              iVar21 = iVar21 + 1;\n              piVar13 = piVar10;\n            }" ({ "{") (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" (identifier "iVar21") (= "=") (binary_expression "iVar21 + 1" (identifier "iVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar13 = piVar10;" (assignment_expression "piVar13 = piVar10" (identifier "piVar13") (= "=") (identifier "piVar10")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" (else "else") (compound_statement "{\n            iVar12 = 1;\n            iVar21 = 1;\n            piVar13 = (int *)((int)piVar10 + 1);\n            piVar5 = piVar10;\n          }" ({ "{") (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar13 = (int *)((int)piVar10 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar10 + 1)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)piVar10 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + 1)" (( "(") (binary_expression "(int)piVar10 + 1" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar5 = piVar10;" (assignment_expression "piVar5 = piVar10" (identifier "piVar5") (= "=") (identifier "piVar10")) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;" (if "if") (parenthesized_expression "(*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13))" (( "(") (binary_expression "*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)" (pointer_expression "*(byte *)((int)piVar4 + iVar12)" (* "*") (cast_expression "(byte *)((int)piVar4 + iVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + iVar12)" (( "(") (binary_expression "(int)piVar4 + iVar12" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (identifier "iVar12")) () ")")))) (<= "<=") (pointer_expression "*(byte *)(local_2c + (int)piVar13)" (* "*") (cast_expression "(byte *)(local_2c + (int)piVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + (int)piVar13)" (( "(") (binary_expression "local_2c + (int)piVar13" (identifier "local_2c") (+ "+") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")"))))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar11 = (int)piVar13 - (int)piVar4;" (assignment_expression "iVar11 = (int)piVar13 - (int)piVar4" (identifier "iVar11") (= "=") (binary_expression "(int)piVar13 - (int)piVar4" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (- "-") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")))) (; ";")) (expression_statement "iVar12 = local_2c + 1;" (assignment_expression "iVar12 = local_2c + 1" (identifier "iVar12") (= "=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar10 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar10 = (int *)((int)piVar13 + 1)" (identifier "piVar10") (= "=") (cast_expression "(int *)((int)piVar13 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 1)" (( "(") (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar5 = piVar13;" (assignment_expression "piVar5 = piVar13" (identifier "piVar5") (= "=") (identifier "piVar13")) (; ";")) (} "}"))) (if_statement "if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }\n    else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" (if "if") (parenthesized_expression "(*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12))" (( "(") (binary_expression "*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)" (pointer_expression "*(byte *)(local_2c + (int)piVar13)" (* "*") (cast_expression "(byte *)(local_2c + (int)piVar13)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + (int)piVar13)" (( "(") (binary_expression "local_2c + (int)piVar13" (identifier "local_2c") (+ "+") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")")))) (== "==") (pointer_expression "*(byte *)((int)piVar4 + iVar12)" (* "*") (cast_expression "(byte *)((int)piVar4 + iVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + iVar12)" (( "(") (binary_expression "(int)piVar4 + iVar12" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (identifier "iVar12")) () ")"))))) () ")")) (compound_statement "{\n      if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }\n    }" ({ "{") (if_statement "if (iVar21 == iVar11) {\n        iVar21 = 1;\n      }\n      else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" (if "if") (parenthesized_expression "(iVar21 == iVar11)" (( "(") (binary_expression "iVar21 == iVar11" (identifier "iVar21") (== "==") (identifier "iVar11")) () ")")) (compound_statement "{\n        iVar21 = 1;\n      }" ({ "{") (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" (else "else") (compound_statement "{\n        iVar21 = iVar21 + 1;\n        piVar13 = piVar5;\n      }" ({ "{") (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" (identifier "iVar21") (= "=") (binary_expression "iVar21 + 1" (identifier "iVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar13 = piVar5;" (assignment_expression "piVar13 = piVar5" (identifier "piVar13") (= "=") (identifier "piVar5")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" (else "else") (compound_statement "{\n      iVar11 = 1;\n      iVar21 = 1;\n      piVar4 = piVar5;\n      piVar13 = (int *)((int)piVar5 + 1);\n    }" ({ "{") (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" (identifier "iVar21") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" (identifier "piVar4") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "piVar13 = (int *)((int)piVar5 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar5 + 1)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)piVar5 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 1)" (( "(") (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "LAB_00034f3c:\n  pcVar17 = pcVar6 + (int)pcVar15;" (statement_identifier "LAB_00034f3c") (: ":") (expression_statement "pcVar17 = pcVar6 + (int)pcVar15;" (assignment_expression "pcVar17 = pcVar6 + (int)pcVar15" (identifier "pcVar17") (= "=") (binary_expression "pcVar6 + (int)pcVar15" (identifier "pcVar6") (+ "+") (cast_expression "(int)pcVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar15")))) (; ";"))) (goto_statement "goto LAB_00034a2c;" (goto "goto") (statement_identifier "LAB_00034a2c") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (break_statement)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (goto_statement label: (statement_identifier)))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) condition: (parenthesized_expression (true))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) condition: (parenthesized_expression (true))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (goto_statement label: (statement_identifier)))))

/* WARNING: Type propagation algorithm not settling */

char * MASKED(char *param_1,int *param_2,int *param_3)

{
  bool bVar1;
  undefined *puVar2;
  char *pcVar3;
  int *piVar4;
  int *piVar5;
  char *pcVar6;
  int *piVar7;
  uint uVar8;
  int *piVar9;
  int *piVar10;
  int iVar11;
  int iVar12;
  int *piVar13;
  uint uVar14;
  char *pcVar15;
  uint uVar16;
  char *pcVar17;
  int *piVar18;
  uint uVar19;
  int *piVar20;
  int iVar21;
  int *local_54;
  char *local_30;
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_0004b460;
  uVar8 = (uint)*param_1;
  local_2c = *(int *)PTR___stack_chk_guard_0004b460;
  uVar19 = (uint)*(char *)param_2;
  pcVar17 = param_1;
  piVar9 = param_2;
  if (uVar8 == 0) {
    if (uVar19 != 0) {
      pcVar17 = (char *)0x0;
    }
  }
  else if (uVar19 != 0) {
    bVar1 = true;
    piVar4 = (int *)(*(code *)PTR___ctype_b_loc_0004b2d8)();
    iVar21 = *piVar4;
    piVar13 = param_2;
    do {
      uVar14 = uVar8 & 0xff;
      if ((*(ushort *)(iVar21 + uVar14 * 2) & 1) != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
        uVar14 = *(uint *)(*piVar5 + uVar14 * 4);
      }
      uVar16 = uVar19 & 0xff;
      if ((*(ushort *)(iVar21 + uVar16 * 2) & 1) != 0) {
        piVar5 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
        uVar16 = *(uint *)(*piVar5 + uVar16 * 4);
      }
      pcVar17 = pcVar17 + 1;
      uVar8 = (uint)*pcVar17;
      piVar13 = (int *)((int)piVar13 + 1);
      uVar19 = (uint)*(char *)piVar13;
      if (uVar14 != uVar16) {
        bVar1 = false;
      }
      if (uVar8 == 0) {
        pcVar17 = (char *)0x0;
        if (uVar19 != 0) goto LAB_00034a2c;
        break;
      }
    } while (uVar19 != 0);
    piVar13 = (int *)((int)piVar13 - (int)param_2);
    pcVar17 = param_1;
    if (!bVar1) {
      pcVar6 = param_1 + 1;
      piVar5 = (int *)((int)piVar13 + -1);
      if (piVar13 < (int *)0x20) {
        if (piVar13 < (int *)0x3) {
          local_30 = (char *)0x1;
          local_54 = piVar5;
        }
        else {
          local_54 = (int *)FUN_00033f40(param_2,piVar13,&local_30);
        }
        pcVar3 = local_30;
        iVar21 = (*(code *)PTR_strncasecmp_0004b378)
                           (param_2,(char *)((int)param_2 + (int)local_30),local_54);
        if (iVar21 == 0) {
          pcVar15 = (char *)0x0;
          piVar10 = (int *)0x0;
LAB_00034b08:
          piVar18 = (int *)((int)piVar13 + (int)pcVar15);
          piVar9 = (int *)0x0;
          param_3 = (int *)((int)piVar18 - (int)piVar5);
          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);
          if (iVar21 == 0) {
            pcVar17 = (char *)0x0;
            if (piVar18 == (int *)0x0) goto LAB_00034a2c;
            piVar9 = (int *)(uint)(local_54 < piVar10);
            piVar7 = local_54;
            if (piVar9 != (int *)0x0) {
              piVar7 = piVar10;
            }
            piVar5 = piVar18;
            if (piVar7 < piVar13) {
              iVar21 = *piVar4;
              do {
                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar7);
                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);
                }
                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar7))[1];
                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);
                }
                if (uVar8 != uVar19) {
                  if (piVar7 < piVar13) {
                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar7;
                    piVar10 = (int *)0x0;
                    goto LAB_00034b08;
                  }
                  break;
                }
                piVar7 = (int *)((int)piVar7 + 1);
              } while (piVar13 != piVar7);
            }
            piVar18 = local_54;
            if (piVar10 < local_54) {
              iVar21 = *piVar4;
              piVar7 = local_54;
              do {
                piVar20 = (int *)((int)piVar7 + -1);
                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar20);
                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar8 = *(uint *)(*piVar18 + uVar8 * 4);
                }
                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar20))[1];
                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                  piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar19 = *(uint *)(*piVar18 + uVar19 * 4);
                }
                piVar18 = piVar7;
              } while ((uVar8 == uVar19) &&
                      (piVar18 = piVar10, piVar7 = piVar20, piVar10 != piVar20));
            }
            if (piVar18 < (int *)((int)piVar10 + 1)) goto LAB_00034f3c;
            pcVar15 = pcVar15 + (int)pcVar3;
            piVar10 = (int *)((int)piVar13 - (int)pcVar3);
            goto LAB_00034b08;
          }
        }
        else {
          pcVar15 = (char *)0x0;
          piVar10 = local_54;
          if (local_54 <= (int *)((int)piVar13 - (int)local_54)) {
            piVar10 = (int *)((int)piVar13 - (int)local_54);
          }
          local_30 = (char *)((int)piVar10 + 1);
LAB_00034d40:
          piVar18 = (int *)((int)piVar13 + (int)pcVar15);
          piVar9 = (int *)0x0;
          param_3 = (int *)((int)piVar18 - (int)piVar5);
          iVar21 = rpl_memchr(pcVar6 + (int)piVar5);
          if (iVar21 == 0) {
            pcVar17 = (char *)0x0;
            if (piVar18 == (int *)0x0) goto LAB_00034a2c;
            piVar5 = piVar18;
            if (local_54 < piVar13) {
              iVar21 = *piVar4;
              piVar18 = local_54;
              do {
                uVar8 = (uint)*(byte *)((int)param_2 + (int)piVar18);
                if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar8 = *(uint *)(*piVar7 + uVar8 * 4);
                }
                uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)piVar18))[1];
                if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                  piVar7 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                  uVar19 = *(uint *)(*piVar7 + uVar19 * 4);
                }
                if (uVar8 != uVar19) {
                  if (piVar18 < piVar13) {
                    pcVar15 = pcVar15 + (1 - (int)local_54) + (int)piVar18;
                    goto LAB_00034d40;
                  }
                  break;
                }
                piVar18 = (int *)((int)piVar18 + 1);
              } while (piVar18 < piVar13);
            }
            pcVar17 = (char *)((int)local_54 + -1);
            if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;
            iVar21 = *piVar4;
            while( true ) {
              uVar8 = (uint)*(byte *)((int)param_2 + (int)pcVar17);
              if ((*(ushort *)(iVar21 + uVar8 * 2) & 1) != 0) {
                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                uVar8 = *(uint *)(*piVar18 + uVar8 * 4);
              }
              uVar19 = (uint)(byte)(param_1 + (int)(pcVar15 + (int)pcVar17))[1];
              if ((*(ushort *)(iVar21 + uVar19 * 2) & 1) != 0) {
                piVar18 = (int *)(*(code *)PTR___ctype_tolower_loc_0004b2e0)();
                uVar19 = *(uint *)(*piVar18 + uVar19 * 4);
              }
              pcVar17 = pcVar17 + -1;
              if (uVar8 != uVar19) break;
              if (pcVar17 == (char *)0xffffffff) goto LAB_00034f3c;
            }
            pcVar15 = pcVar15 + (int)piVar10 + 1;
            goto LAB_00034d40;
          }
        }
        pcVar17 = (char *)0x0;
      }
      else {
        pcVar17 = (char *)FUN_0003420c(pcVar6,piVar5,param_2,piVar13);
        piVar9 = piVar5;
        param_3 = param_2;
      }
    }
  }
LAB_00034a2c:
  if (local_2c == *(int *)puVar2) {
    return pcVar17;
  }
  (*(code *)PTR___stack_chk_fail_0004b438)();
  iVar11 = 1;
  iVar21 = 1;
  piVar4 = (int *)0xffffffff;
  piVar13 = (int *)0x0;
  do {
    iVar12 = iVar21 + local_2c;
    piVar10 = (int *)(iVar21 + (int)piVar13);
    piVar5 = piVar13;
    while( true ) {
      piVar13 = piVar10;
      if (piVar9 <= piVar13) {
        iVar12 = 1;
        *param_3 = iVar11;
        iVar21 = 1;
        piVar13 = (int *)0x0;
        piVar5 = (int *)0xffffffff;
        do {
          iVar11 = iVar21 + local_2c;
          piVar18 = (int *)(iVar21 + (int)piVar13);
          piVar10 = piVar13;
          while( true ) {
            piVar13 = piVar18;
            if (piVar9 <= piVar13) {
              pcVar17 = (char *)((int)piVar4 + 1);
              if ((char *)((int)piVar4 + 1) <= (char *)((int)piVar5 + 1)) {
                *param_3 = iVar12;
                pcVar17 = (char *)((int)piVar5 + 1);
              }
              return pcVar17;
            }
            if (*(byte *)(local_2c + (int)piVar13) <= *(byte *)((int)piVar5 + iVar11)) break;
            iVar21 = 1;
            iVar12 = (int)piVar13 - (int)piVar5;
            iVar11 = local_2c + 1;
            piVar18 = (int *)((int)piVar13 + 1);
            piVar10 = piVar13;
          }
          if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar5 + iVar11)) {
            if (iVar21 == iVar12) {
              iVar21 = 1;
            }
            else {
              iVar21 = iVar21 + 1;
              piVar13 = piVar10;
            }
          }
          else {
            iVar12 = 1;
            iVar21 = 1;
            piVar13 = (int *)((int)piVar10 + 1);
            piVar5 = piVar10;
          }
        } while( true );
      }
      if (*(byte *)((int)piVar4 + iVar12) <= *(byte *)(local_2c + (int)piVar13)) break;
      iVar21 = 1;
      iVar11 = (int)piVar13 - (int)piVar4;
      iVar12 = local_2c + 1;
      piVar10 = (int *)((int)piVar13 + 1);
      piVar5 = piVar13;
    }
    if (*(byte *)(local_2c + (int)piVar13) == *(byte *)((int)piVar4 + iVar12)) {
      if (iVar21 == iVar11) {
        iVar21 = 1;
      }
      else {
        iVar21 = iVar21 + 1;
        piVar13 = piVar5;
      }
    }
    else {
      iVar11 = 1;
      iVar21 = 1;
      piVar4 = piVar5;
      piVar13 = (int *)((int)piVar5 + 1);
    }
  } while( true );
LAB_00034f3c:
  pcVar17 = pcVar6 + (int)pcVar15;
  goto LAB_00034a2c;
}

