void FUN_0041e564(undefined4 param_1)

{
  bool bVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  int iVar4;
  
  if ((DAT_0043ce14 == 0) || (iVar4 = DAT_0043ce14, *(int *)(DAT_0043ce14 + DAT_0043ce18 * 4) == 0))
  {
    FUN_0041dc64();
    puVar3 = (undefined4 *)(DAT_0043ce14 + DAT_0043ce18 * 4);
    uVar2 = FUN_0041e2e4(DAT_0043ce00,0x4000);
    iVar4 = DAT_0043ce14;
    bVar1 = DAT_0043ce14 == 0;
    *puVar3 = uVar2;
    if (bVar1) {
      uVar2 = 0;
      goto LAB_0041e5d8;
    }
  }
  uVar2 = *(undefined4 *)(iVar4 + DAT_0043ce18 * 4);
LAB_0041e5d8:
  FUN_0041e1c8(uVar2,param_1);
  puVar3 = *(undefined4 **)(DAT_0043ce14 + DAT_0043ce18 * 4);
  yytext = (undefined1 *)puVar3[2];
  DAT_0043ce2c = *yytext;
  DAT_0043ce00 = *puVar3;
  DAT_0043ce24 = yytext;
  DAT_0043ce30 = puVar3[4];
  return;
}