
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >
   >::_M_extract_via_format(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*,
   char const*) const */

void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::
     _M_extract_via_format(void)

{
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 * FUN_003c8af0(void)

{
  int iVar1;
  undefined1 *puVar2;
  undefined1 *puVar3;
  code *pcVar4;
  undefined4 *puVar5;
  char cVar6;
  char cVar7;
  byte bVar8;
  byte bVar9;
  int *piVar10;
  char *pcVar11;
  undefined4 uVar12;
  int iVar13;
  uint uVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  uint uVar18;
  int in_stack_0000001c;
  char *in_stack_00000028;
  undefined1 auStack_8c [8];
  undefined1 *local_84;
  size_t local_80;
  undefined1 *local_7c;
  undefined4 local_74;
  code *local_70;
  undefined **local_68;
  undefined4 local_54;
  undefined4 uStack_14;
  
  uVar18 = 0;
  uStack_14 = 0x3c8afb;
  iVar1 = in_stack_0000001c + 0x6c;
  local_74 = FUN_003c4a50(iVar1);
  piVar10 = (int *)FUN_003c30b0(iVar1);
  local_80 = strlen(in_stack_00000028);
  local_7c = &stack0x00000014;
  local_84 = &stack0x0000000c;
  local_54 = 0;
  local_68 = &PTR_DAT_005ea860;
  local_70 = FUN_003bf470;
  puVar15 = auStack_8c;
LAB_003c8b6b:
  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);
  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);
  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;
  cVar6 = FUN_003c8240();
  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {
    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {
LAB_003c8cde:
      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;
    }
    puVar5 = *(undefined4 **)(puVar15 + 0x90);
    uVar12 = *(undefined4 *)(puVar15 + 0x9c);
    *puVar5 = *(undefined4 *)(puVar15 + 0x98);
    puVar5[1] = uVar12;
    return puVar5;
  }
  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;
  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);
  uVar14 = (uint)bVar8;
  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);
  *(uint *)(puVar15 + 4) = uVar18 + 1;
  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);
  if (bVar9 == 0) {
    pcVar4 = *(code **)(*piVar10 + 0x20);
    bVar9 = bVar8;
    if (pcVar4 != (code *)PTR_FUN_005e9f90) {
      *(uint *)(puVar15 + 0x20) = uVar14;
      *(undefined4 *)(puVar15 + -8) = 0;
      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;
      *(int **)(puVar15 + -0x10) = piVar10;
      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;
      bVar9 = (*pcVar4)();
      uVar14 = *(uint *)(puVar15 + 0x20);
    }
    if (bVar9 != 0) {
      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;
      goto LAB_003c8be0;
    }
LAB_003c8c50:
    cVar6 = **(char **)(puVar15 + 0x14);
    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;
    cVar7 = FUN_003c04a0();
    if (cVar6 == cVar7) {
      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);
      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;
      FUN_003b97a0();
      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;
      uVar18 = *(uint *)(puVar15 + 4);
    }
    else {
      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;
      uVar18 = *(uint *)(puVar15 + 4);
    }
    goto LAB_003c8b6b;
  }
LAB_003c8be0:
  if (bVar9 != 0x25) goto LAB_003c8c50;
  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);
  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);
  puVar16 = puVar15;
  if (bVar9 == 0) {
    pcVar4 = *(code **)(*piVar10 + 0x20);
    bVar9 = bVar8;
    if (pcVar4 != (code *)PTR_FUN_005e9f90) {
      *(undefined4 *)(puVar15 + -8) = 0;
      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;
      *(int **)(puVar15 + -0x10) = piVar10;
      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;
      bVar9 = (*pcVar4)();
    }
    if (bVar9 != 0) {
      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;
      goto LAB_003c8c21;
    }
    goto LAB_003c8d88;
  }
LAB_003c8c21:
  *(undefined4 *)(puVar15 + 0x3c) = 0;
  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {
    *(uint *)(puVar15 + 4) = uVar18 + 2;
    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);
    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);
    if (bVar9 == 0) {
      pcVar4 = *(code **)(*piVar10 + 0x20);
      bVar9 = bVar8;
      if (pcVar4 != (code *)PTR_FUN_005e9f90) {
        *(undefined4 *)(puVar15 + -8) = 0;
        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;
        *(int **)(puVar15 + -0x10) = piVar10;
        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;
        bVar9 = (*pcVar4)();
      }
      if (bVar9 == 0) goto LAB_003c8d88;
      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;
    }
  }
  switch(bVar9) {
  case 0x41:
    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);
    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);
    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);
    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);
    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);
    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);
    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);
    uVar12 = *(undefined4 *)(iVar1 + 0x44);
    goto code_r0x003c9204;
  case 0x42:
    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);
    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;
    FUN_003c2320();
    goto code_r0x003c92a1;
  case 0x43:
  case 0x59:
  case 0x79:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 4;
    *(undefined4 *)(puVar15 + -0x10) = 9999;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      iVar1 = *(int *)(puVar15 + 0x38);
      iVar13 = iVar1 + -0x76c;
      if (iVar1 < 0) {
        iVar13 = iVar1 + 100;
      }
      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x44:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;
    *(undefined **)(puVar15 + -8) = &UNK_004a2987;
    pcVar11 = "%m/%d/%y";
    goto code_r0x003c8f72;
  default:
    goto LAB_003c8d88;
  case 0x48:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x17;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    goto code_r0x003c8e76;
  case 0x49:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0xc;
    *(undefined4 *)(puVar15 + -0x14) = 1;
code_r0x003c8e76:
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x4d:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x3b;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x52:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;
    *(undefined **)(puVar15 + -8) = &DAT_004a298d;
    pcVar11 = "%H:%M";
    goto code_r0x003c8f72;
  case 0x53:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x3c;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x54:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;
    *(undefined **)(puVar15 + -8) = &UNK_004a2996;
    pcVar11 = "%H:%M:%S";
code_r0x003c8f72:
    *(char **)(puVar15 + -0xc) = pcVar11;
    *(int **)(puVar15 + -0x10) = piVar10;
    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;
    FUN_003c07a0();
    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;
    goto code_r0x003c8e00;
  case 0x58:
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)
    ;
    goto code_r0x003c8e00;
  case 0x5a:
    *(undefined **)(puVar15 + -4) = &UNK_003c9050;
    uVar18 = FUN_003c04a0();
    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;
    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;
    puVar2 = puVar15 + 0x38;
    *(undefined1 **)(puVar15 + -8) = puVar2;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x10) = 0xe;
    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);
    puVar3 = puVar15 + 0x40;
    *(undefined1 **)(puVar15 + -0x18) = puVar3;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;
    FUN_003c82f0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);
    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);
    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;
    cVar6 = FUN_003c8240();
    puVar16 = puVar15 + -4;
    if ((cVar6 != '\0') ||
       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))
    break;
    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;
    uVar12 = FUN_003c04a0();
    iVar1 = piVar10[7];
    *(undefined4 *)(puVar15 + 0x1c) = uVar12;
    if ((char)iVar1 == '\0') {
      *(undefined **)(puVar15 + -8) = &UNK_003c9691;
      cVar6 = FUN_003c04f0();
    }
    else {
      cVar6 = *(char *)((int)piVar10 + 0x4a);
    }
    if (puVar15[0x1c] != cVar6) {
      *(undefined **)(puVar15 + -8) = &UNK_003c9123;
      uVar12 = FUN_003c04a0();
      iVar1 = piVar10[7];
      *(undefined4 *)(puVar15 + 0x1c) = uVar12;
      if ((char)iVar1 == '\0') {
        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;
        cVar6 = FUN_003c04f0();
      }
      else {
        cVar6 = (char)piVar10[0x12];
      }
      puVar16 = puVar15 + -4;
      if (puVar15[0x1c] != cVar6) break;
    }
    *(undefined1 **)(puVar15 + -8) = puVar2;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x10) = 2;
    *(undefined4 *)(puVar15 + -0x14) = 0x17;
    *(undefined4 *)(puVar15 + -0x18) = 0;
    *(undefined1 **)(puVar15 + -0x1c) = puVar3;
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);
    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);
    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined1 **)(puVar15 + -0xc) = puVar2;
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x14) = 2;
    *(undefined4 *)(puVar15 + -0x18) = 0x3b;
    *(undefined4 *)(puVar15 + -0x1c) = 0;
    *(undefined1 **)(puVar15 + -0x20) = puVar3;
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);
    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);
    puVar17 = puVar15 + -0x38;
    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);
    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;
    FUN_003c33b0();
    goto code_r0x003c8e3c;
  case 0x61:
    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);
    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);
    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);
    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);
    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);
    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);
    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);
    uVar12 = *(undefined4 *)(iVar1 + 0x60);
code_r0x003c9204:
    *(undefined4 *)(puVar15 + 0x58) = uVar12;
    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x10) = 7;
    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;
    FUN_003c82f0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x62:
  case 0x68:
    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);
    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;
    FUN_003c2390();
code_r0x003c92a1:
    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x10) = 0xc;
    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;
    FUN_003c82f0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 99:
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)
    ;
    goto code_r0x003c8e00;
  case 100:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x1f;
    *(undefined4 *)(puVar15 + -0x14) = 1;
    goto code_r0x003c9486;
  case 0x65:
    *(undefined **)(puVar15 + -4) = &UNK_003c9500;
    uVar18 = FUN_003c04a0();
    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {
      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
      *(undefined4 *)(puVar15 + -0xc) = 2;
      *(undefined4 *)(puVar15 + -0x10) = 0x1f;
      *(undefined4 *)(puVar15 + -0x14) = 10;
    }
    else {
      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);
      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;
      FUN_003b97a0();
      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;
      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
      *(undefined4 *)(puVar15 + -0xc) = 1;
      *(undefined4 *)(puVar15 + -0x10) = 9;
      *(undefined4 *)(puVar15 + -0x14) = 1;
    }
code_r0x003c9486:
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x6d:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0xc;
    *(undefined4 *)(puVar15 + -0x14) = 1;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x6e:
    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;
    bVar9 = FUN_003c04a0();
    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);
    if (bVar8 == 0) {
      pcVar4 = *(code **)(*piVar10 + 0x20);
      bVar8 = bVar9;
      if (pcVar4 != (code *)PTR_FUN_005e9f90) {
        *(undefined4 *)(puVar15 + -8) = 0;
        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;
        *(int **)(puVar15 + -0x10) = piVar10;
        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;
        bVar8 = (*pcVar4)();
      }
      if (bVar8 == 0) goto LAB_003c8d88;
      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;
    }
    if (bVar8 != 10) goto LAB_003c8d88;
code_r0x003c9616:
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;
    FUN_003b97a0();
    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;
    break;
  case 0x74:
    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;
    bVar9 = FUN_003c04a0();
    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);
    if (bVar8 == 0) {
      pcVar4 = *(code **)(*piVar10 + 0x20);
      bVar8 = bVar9;
      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {
        *(undefined4 *)(puVar15 + -8) = 0;
        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;
        *(int **)(puVar15 + -0x10) = piVar10;
        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;
        bVar8 = (*pcVar4)();
      }
      if (bVar8 == 0) goto LAB_003c8d88;
      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;
    }
    if (bVar8 == 9) goto code_r0x003c9616;
    goto LAB_003c8d88;
  case 0x78:
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);
code_r0x003c8e00:
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);
    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    puVar17 = puVar15 + -0x30;
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;
    FUN_003c8af0();
code_r0x003c8e3c:
    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);
    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);
    puVar16 = puVar17 + 0x2c;
  }
code_r0x003c8d90:
  uVar18 = *(int *)(puVar16 + 4) + 1;
  puVar15 = puVar16;
  goto LAB_003c8b6b;
LAB_003c8d88:
  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;
  goto code_r0x003c8d90;
}


PUSH EBP
PUSH EDI
XOR EDI,EDI
PUSH ESI
PUSH EBX
CALL 0x00050b50
ADD EBX,0x221505
SUB ESP,0x88
MOV EAX,dword ptr [ESP + 0xb4]
LEA ESI,[EAX + 0x6c]
PUSH ESI
CALL 0x003c4a50
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x28],EAX
CALL 0x003c30b0
POP ECX
PUSH dword ptr [ESP + 0xc0]
MOV ESI,EAX
CALL 0x00039330
ADD ESP,0x10
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[ESP + 0xa0]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[ESP + 0x98]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0x860]
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xffdd5470]
MOV dword ptr [ESP + 0x1c],EAX
SUB ESP,0x8
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x14]
CALL 0x003c8240
ADD ESP,0x10
CMP AL,0x1
JZ 0x003c8cd0
CMP EDI,dword ptr [ESP + 0xc]
JNC 0x003c8cd0
MOV EDX,dword ptr [ESP + 0x38]
TEST EDX,EDX
JNZ 0x003c8cde
MOV EBP,dword ptr [ESP + 0xb4]
ADD EBP,EDI
MOVZX EDX,byte ptr [EBP]
MOV dword ptr [ESP + 0x14],EBP
LEA EBP,[EDI + 0x1]
MOV dword ptr [ESP + 0x4],EBP
MOVZX ECX,byte ptr [ESI + EDX*0x1 + 0x11d]
MOV EAX,EDX
TEST CL,CL
JNZ 0x003c8be0
MOV ECX,dword ptr [ESI]
MOV ECX,dword ptr [ECX + 0x20]
CMP ECX,dword ptr [EBX + 0xffffff90]
JNZ 0x003c8d10
TEST AL,AL
JZ 0x003c8c50
MOV byte ptr [ESI + EDX*0x1 + 0x11d],AL
MOV ECX,EAX
CMP CL,0x25
JNZ 0x003c8c50
MOV EAX,dword ptr [ESP + 0xb4]
MOVZX EBP,byte ptr [EAX + EDI*0x1 + 0x1]
MOVZX EDX,byte ptr [ESI + EBP*0x1 + 0x11d]
MOV EAX,EBP
TEST DL,DL
JNZ 0x003c8c21
MOV EDX,dword ptr [ESI]
MOV EDX,dword ptr [EDX + 0x20]
CMP EDX,dword ptr [EBX + 0xffffff90]
JNZ 0x003c8dd0
TEST AL,AL
JZ 0x003c8d88
MOV byte ptr [ESI + EBP*0x1 + 0x11d],AL
MOV EDX,EAX
MOV dword ptr [ESP + 0x3c],0x0
CMP DL,0x45
JZ 0x003c8c80
CMP DL,0x4f
JZ 0x003c8c80
SUB EDX,0x41
CMP DL,0x38
JA 0x003c8d88
MOVZX EDX,DL
MOV EAX,dword ptr [EBX + EDX*0x4 + 0xffeb8998]
ADD EAX,EBX
JMP EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [ESP + 0x9c]
MOVZX EDI,byte ptr [EAX]
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x003c04a0
MOV ECX,EDI
CMP CL,AL
JZ 0x003c8da0
OR dword ptr [ESP + 0x38],0x4
MOV EDI,dword ptr [ESP + 0x4]
JMP 0x003c8b6b
LEA EAX,[EDI + 0x2]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0xb4]
MOVZX EDI,byte ptr [EAX + EDI*0x1 + 0x2]
MOVZX EDX,byte ptr [ESI + EDI*0x1 + 0x11d]
MOV EAX,EDI
TEST DL,DL
JNZ 0x003c8c33
MOV EDX,dword ptr [ESI]
MOV EDX,dword ptr [EDX + 0x20]
CMP EDX,dword ptr [EBX + 0xffffff90]
JNZ 0x003c9640
TEST AL,AL
JZ 0x003c8d88
MOV byte ptr [ESI + EDI*0x1 + 0x11d],AL
MOV EDX,EAX
JMP 0x003c8c33
MOV EAX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x003c8cde
CMP EDI,dword ptr [ESP + 0xc]
JZ 0x003c8ce8
MOV EAX,dword ptr [ESP + 0xac]
OR dword ptr [EAX],0x4
MOV ESI,dword ptr [ESP + 0x90]
MOV EAX,dword ptr [ESP + 0x98]
MOV EDX,dword ptr [ESP + 0x9c]
MOV dword ptr [ESI],EAX
MOV EAX,ESI
MOV dword ptr [ESI + 0x4],EDX
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
MOV dword ptr [ESP + 0x20],EDX
MOVSX EAX,DL
SUB ESP,0x4
PUSH 0x0
PUSH EAX
PUSH ESI
CALL ECX
MOV EDX,dword ptr [ESP + 0x30]
ADD ESP,0x10
JMP 0x003c8bd3
OR dword ptr [ESP + 0x38],0x4
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0x4]
ADD EDI,0x1
JMP 0x003c8b6b
SUB ESP,0xc
PUSH dword ptr [ESP + 0xa4]
CALL 0x003b97a0
MOV dword ptr [ESP + 0xac],0xffffffff
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x4]
JMP 0x003c8b6b
SUB ESP,0x4
MOVSX EAX,AL
PUSH 0x0
PUSH EAX
PUSH ESI
CALL EDX
ADD ESP,0x10
JMP 0x003c8c10
SUB ESP,0x4
MOVSX EAX,AL
PUSH 0x0
PUSH EAX
PUSH ESI
CALL EDX
ADD ESP,0x10
JMP 0x003c8cb2
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 * FUN_003c8af0(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}\n\n" comment (function_definition "undefined4 * FUN_003c8af0(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}" type_identifier (pointer_declarator "* FUN_003c8af0(void)" * (function_declarator "FUN_003c8af0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int in_stack_0000001c;" primitive_type identifier ;) (declaration "char *in_stack_00000028;" primitive_type (pointer_declarator "*in_stack_00000028" * identifier) ;) (declaration "undefined1 auStack_8c [8];" type_identifier (array_declarator "auStack_8c [8]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "size_t local_80;" primitive_type identifier ;) (declaration "undefined1 *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "code *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined **local_68;" type_identifier (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier)) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x3c8afb;" (assignment_expression "uStack_14 = 0x3c8afb" identifier = number_literal) ;) (expression_statement "iVar1 = in_stack_0000001c + 0x6c;" (assignment_expression "iVar1 = in_stack_0000001c + 0x6c" identifier = (binary_expression "in_stack_0000001c + 0x6c" identifier + number_literal)) ;) (expression_statement "local_74 = FUN_003c4a50(iVar1);" (assignment_expression "local_74 = FUN_003c4a50(iVar1)" identifier = (call_expression "FUN_003c4a50(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "piVar10 = (int *)FUN_003c30b0(iVar1);" (assignment_expression "piVar10 = (int *)FUN_003c30b0(iVar1)" identifier = (cast_expression "(int *)FUN_003c30b0(iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c30b0(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))))) ;) (expression_statement "local_80 = strlen(in_stack_00000028);" (assignment_expression "local_80 = strlen(in_stack_00000028)" identifier = (call_expression "strlen(in_stack_00000028)" identifier (argument_list "(in_stack_00000028)" ( identifier )))) ;) (expression_statement "local_7c = &stack0x00000014;" (assignment_expression "local_7c = &stack0x00000014" identifier = (pointer_expression "&stack0x00000014" & identifier)) ;) (expression_statement "local_84 = &stack0x0000000c;" (assignment_expression "local_84 = &stack0x0000000c" identifier = (pointer_expression "&stack0x0000000c" & identifier)) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_68 = &PTR_DAT_005ea860;" (assignment_expression "local_68 = &PTR_DAT_005ea860" identifier = (pointer_expression "&PTR_DAT_005ea860" & identifier)) ;) (expression_statement "local_70 = FUN_003bf470;" (assignment_expression "local_70 = FUN_003bf470" identifier = identifier) ;) (expression_statement "puVar15 = auStack_8c;" (assignment_expression "puVar15 = auStack_8c" identifier = identifier) ;) (labeled_statement "LAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" * (cast_expression "(undefined4 *)(puVar15 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x10)" ( (binary_expression "puVar15 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 8)" * (cast_expression "(undefined4 *)(puVar15 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 8)" ( (binary_expression "puVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = FUN_003c8240();" (assignment_expression "cVar6 = FUN_003c8240()" identifier = (call_expression "FUN_003c8240()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }" if (parenthesized_expression "((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18))" ( (binary_expression "(cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)" (parenthesized_expression "(cVar6 == '\x01')" ( (binary_expression "cVar6 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "(*(uint *)(puVar15 + 0xc) <= uVar18)" ( (binary_expression "*(uint *)(puVar15 + 0xc) <= uVar18" (pointer_expression "*(uint *)(puVar15 + 0xc)" * (cast_expression "(uint *)(puVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) )))) <= identifier) ))) )) (compound_statement "{\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }" { (if_statement "if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }" if (parenthesized_expression "((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc)))" ( (binary_expression "(*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))" (parenthesized_expression "(*(int *)(puVar15 + 0x38) != 0)" ( (binary_expression "*(int *)(puVar15 + 0x38) != 0" (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(uVar18 != *(uint *)(puVar15 + 0xc))" ( (binary_expression "uVar18 != *(uint *)(puVar15 + 0xc)" identifier != (pointer_expression "*(uint *)(puVar15 + 0xc)" * (cast_expression "(uint *)(puVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) ))))) ))) )) (compound_statement "{\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }" { (labeled_statement "LAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;" statement_identifier : (expression_statement "**(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;" (assignment_expression "**(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4" (pointer_expression "**(uint **)(puVar15 + 0xac)" * (pointer_expression "*(uint **)(puVar15 + 0xac)" * (cast_expression "(uint **)(puVar15 + 0xac)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) ))))) = (binary_expression "**(uint **)(puVar15 + 0xac) | 4" (pointer_expression "**(uint **)(puVar15 + 0xac)" * (pointer_expression "*(uint **)(puVar15 + 0xac)" * (cast_expression "(uint **)(puVar15 + 0xac)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) ))))) | number_literal)) ;)) })) (expression_statement "puVar5 = *(undefined4 **)(puVar15 + 0x90);" (assignment_expression "puVar5 = *(undefined4 **)(puVar15 + 0x90)" identifier = (pointer_expression "*(undefined4 **)(puVar15 + 0x90)" * (cast_expression "(undefined4 **)(puVar15 + 0x90)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x90)" ( (binary_expression "puVar15 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "uVar12 = *(undefined4 *)(puVar15 + 0x9c)" identifier = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*puVar5 = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "puVar5[1] = uVar12;" (assignment_expression "puVar5[1] = uVar12" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;" if (parenthesized_expression "(*(int *)(puVar15 + 0x38) != 0)" ( (binary_expression "*(int *)(puVar15 + 0x38) != 0" (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_003c8cde;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" identifier = (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" * (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + uVar18" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uVar14 = (uint)bVar8;" (assignment_expression "uVar14 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);" (assignment_expression "*(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" (pointer_expression "*(byte **)(puVar15 + 0x14)" * (cast_expression "(byte **)(puVar15 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x14)" ( (binary_expression "puVar15 + 0x14" identifier + number_literal) )))) = (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + uVar18" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "*(uint *)(puVar15 + 4) = uVar18 + 1;" (assignment_expression "*(uint *)(puVar15 + 4) = uVar18 + 1" (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + uVar14 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + uVar14 + 0x11d)" ( (binary_expression "(int)piVar10 + uVar14 + 0x11d" (binary_expression "(int)piVar10 + uVar14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }" { (expression_statement "*(uint *)(puVar15 + 0x20) = uVar14;" (assignment_expression "*(uint *)(puVar15 + 0x20) = uVar14" (pointer_expression "*(uint *)(puVar15 + 0x20)" * (cast_expression "(uint *)(puVar15 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8d20" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar14 = *(uint *)(puVar15 + 0x20);" (assignment_expression "uVar14 = *(uint *)(puVar15 + 0x20)" identifier = (pointer_expression "*(uint *)(puVar15 + 0x20)" * (cast_expression "(uint *)(puVar15 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) ))))) ;) })) (if_statement "if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }" { (expression_statement "*(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + uVar14 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + uVar14 + 0x11d)" ( (binary_expression "(int)piVar10 + uVar14 + 0x11d" (binary_expression "(int)piVar10 + uVar14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_003c8be0;" goto statement_identifier ;) })) (labeled_statement "LAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);" statement_identifier : (expression_statement "cVar6 = **(char **)(puVar15 + 0x14);" (assignment_expression "cVar6 = **(char **)(puVar15 + 0x14)" identifier = (pointer_expression "**(char **)(puVar15 + 0x14)" * (pointer_expression "*(char **)(puVar15 + 0x14)" * (cast_expression "(char **)(puVar15 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x14)" ( (binary_expression "puVar15 + 0x14" identifier + number_literal) )))))) ;)) (expression_statement "*(undefined4 *)(puVar15 + -4) = 0x3c8c67;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = 0x3c8c67" (pointer_expression "*(undefined4 *)(puVar15 + -4)" * (cast_expression "(undefined4 *)(puVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_003c04a0();" (assignment_expression "cVar7 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" if (parenthesized_expression "(cVar6 == cVar7)" ( (binary_expression "cVar6 == cVar7" identifier == identifier) )) (compound_statement "{\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8daf" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar18 = *(uint *)(puVar15 + 4);" (assignment_expression "uVar18 = *(uint *)(puVar15 + 4)" identifier = (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" else (compound_statement "{\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" { (expression_statement "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" (assignment_expression "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "uVar18 = *(uint *)(puVar15 + 4);" (assignment_expression "uVar18 = *(uint *)(puVar15 + 4)" identifier = (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) }))) (goto_statement "goto LAB_003c8b6b;" goto statement_identifier ;) })) (labeled_statement "LAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;" statement_identifier : (if_statement "if (bVar9 != 0x25) goto LAB_003c8c50;" if (parenthesized_expression "(bVar9 != 0x25)" ( (binary_expression "bVar9 != 0x25" identifier != number_literal) )) (goto_statement "goto LAB_003c8c50;" goto statement_identifier ;))) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" identifier = (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" * (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + 1 + uVar18" (binary_expression "*(int *)(puVar15 + 0xb4) + 1" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;) (if_statement "if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }" { (expression_statement "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_003c8c21;" goto statement_identifier ;) })) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;) })) (labeled_statement "LAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar15 + 0x3c)" * (cast_expression "(undefined4 *)(puVar15 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x3c)" ( (binary_expression "puVar15 + 0x3c" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }" if (parenthesized_expression "((bVar9 == 0x45) || (bVar9 == 0x4f))" ( (binary_expression "(bVar9 == 0x45) || (bVar9 == 0x4f)" (parenthesized_expression "(bVar9 == 0x45)" ( (binary_expression "bVar9 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(bVar9 == 0x4f)" ( (binary_expression "bVar9 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }" { (expression_statement "*(uint *)(puVar15 + 4) = uVar18 + 2;" (assignment_expression "*(uint *)(puVar15 + 4) = uVar18 + 2" (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = (binary_expression "uVar18 + 2" identifier + number_literal)) ;) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" identifier = (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" * (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + 2 + uVar18" (binary_expression "*(int *)(puVar15 + 0xb4) + 2" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c964c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c964c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar9 == 0) goto LAB_003c8d88;" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) })) })) (switch_statement "switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }" switch (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }" { (case_statement "case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;" case number_literal : (expression_statement "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x40)" * (cast_expression "(undefined4 *)(puVar15 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x40)" ( (binary_expression "puVar15 + 0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x2c)" * (cast_expression "(undefined4 *)(iVar1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);" (assignment_expression "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30)" (pointer_expression "*(undefined4 *)(puVar15 + 0x44)" * (cast_expression "(undefined4 *)(puVar15 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x44)" ( (binary_expression "puVar15 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x30)" * (cast_expression "(undefined4 *)(iVar1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);" (assignment_expression "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34)" (pointer_expression "*(undefined4 *)(puVar15 + 0x48)" * (cast_expression "(undefined4 *)(puVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x48)" ( (binary_expression "puVar15 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x34)" * (cast_expression "(undefined4 *)(iVar1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);" (assignment_expression "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38)" (pointer_expression "*(undefined4 *)(puVar15 + 0x4c)" * (cast_expression "(undefined4 *)(puVar15 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x4c)" ( (binary_expression "puVar15 + 0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x38)" * (cast_expression "(undefined4 *)(iVar1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x38)" ( (binary_expression "iVar1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x50)" * (cast_expression "(undefined4 *)(puVar15 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x50)" ( (binary_expression "puVar15 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x3c)" * (cast_expression "(undefined4 *)(iVar1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x3c)" ( (binary_expression "iVar1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);" (assignment_expression "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40)" (pointer_expression "*(undefined4 *)(puVar15 + 0x54)" * (cast_expression "(undefined4 *)(puVar15 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x54)" ( (binary_expression "puVar15 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x40)" * (cast_expression "(undefined4 *)(iVar1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(iVar1 + 0x44);" (assignment_expression "uVar12 = *(undefined4 *)(iVar1 + 0x44)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x44)" * (cast_expression "(undefined4 *)(iVar1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x44)" ( (binary_expression "iVar1 + 0x44" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x003c9204;" goto statement_identifier ;)) (case_statement "case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x18)" * (cast_expression "(undefined4 *)(puVar15 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c92a1" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c92a1" & identifier)) ;) (expression_statement "FUN_003c2320();" (call_expression "FUN_003c2320()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x003c92a1;" goto statement_identifier ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x59:" case number_literal :) (case_statement "case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 4;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 4" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 9999;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 9999" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9367;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9367" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9367" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "iVar1 = *(int *)(puVar15 + 0x38);" (assignment_expression "iVar1 = *(int *)(puVar15 + 0x38)" identifier = (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = iVar1 + -0x76c;" (assignment_expression "iVar13 = iVar1 + -0x76c" identifier = (binary_expression "iVar1 + -0x76c" identifier + number_literal)) ;) (if_statement "if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar1 + 100;\n      }" { (expression_statement "iVar13 = iVar1 + 100;" (assignment_expression "iVar13 = iVar1 + 100" identifier = (binary_expression "iVar1 + 100" identifier + number_literal)) ;) })) (expression_statement "*(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;" (assignment_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13" (pointer_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x14)" * (cast_expression "(int *)(*(int *)(puVar15 + 0xac) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x14)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x14" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_004a2987;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_004a2987" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_004a2987" & identifier)) ;) (expression_statement "pcVar11 = "%m/%d/%y";" (assignment_expression "pcVar11 = "%m/%d/%y"" identifier = (string_literal ""%m/%d/%y"" " string_content ")) ;) (goto_statement "goto code_r0x003c8f72;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_003c8d88;" default : (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (case_statement "case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x17;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x17" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto code_r0x003c8e76;" goto statement_identifier ;)) (case_statement "case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "code_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" statement_identifier : (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8ea4" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 8)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 8" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x3b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x3b" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8f24" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8f24" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 4)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 4" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -8) = &DAT_004a298d;" (assignment_expression "*(undefined **)(puVar15 + -8) = &DAT_004a298d" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&DAT_004a298d" & identifier)) ;) (expression_statement "pcVar11 = "%H:%M";" (assignment_expression "pcVar11 = "%H:%M"" identifier = (string_literal ""%H:%M"" " string_content ")) ;) (goto_statement "goto code_r0x003c8f72;" goto statement_identifier ;)) (case_statement "case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x3c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x3c" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8fcc" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "**(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "**(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "**(undefined4 **)(puVar15 + 0xac)" * (pointer_expression "*(undefined4 **)(puVar15 + 0xac)" * (cast_expression "(undefined4 **)(puVar15 + 0xac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) ))))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_004a2996;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_004a2996" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_004a2996" & identifier)) ;) (expression_statement "pcVar11 = "%H:%M:%S";" (assignment_expression "pcVar11 = "%H:%M:%S"" identifier = (string_literal ""%H:%M:%S"" " string_content ")) ;) (labeled_statement "code_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;" statement_identifier : (expression_statement "*(char **)(puVar15 + -0xc) = pcVar11;" (assignment_expression "*(char **)(puVar15 + -0xc) = pcVar11" (pointer_expression "*(char **)(puVar15 + -0xc)" * (cast_expression "(char **)(puVar15 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c8f79" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8f79" & identifier)) ;) (expression_statement "FUN_003c07a0();" (call_expression "FUN_003c07a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (goto_statement "goto code_r0x003c8e00;" goto statement_identifier ;)) (case_statement "case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;" case number_literal : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" * (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" ( (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto code_r0x003c8e00;" goto statement_identifier ;)) (case_statement "case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c9050;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c9050" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9050" & identifier)) ;) (expression_statement "uVar18 = FUN_003c04a0();" (assignment_expression "uVar18 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;" if (parenthesized_expression "((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0)" ( (binary_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1)" ( (binary_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1" (pointer_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" * (cast_expression "(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (binary_expression "piVar10[6] + 1 + (uVar18 & 0xff) * 2" (binary_expression "piVar10[6] + 1" (subscript_expression "piVar10[6]" identifier [ number_literal ]) + number_literal) + (binary_expression "(uVar18 & 0xff) * 2" (parenthesized_expression "(uVar18 & 0xff)" ( (binary_expression "uVar18 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + 0x14)" * (cast_expression "(undefined1 **)(puVar15 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x14)" ( (binary_expression "puVar15 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar15 + 0x38;" (assignment_expression "puVar2 = puVar15 + 0x38" identifier = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xe;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xe" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = puVar15 + 0x40;" (assignment_expression "puVar3 = puVar15 + 0x40" identifier = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c90ac" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c90ac" & identifier)) ;) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xc)" * (cast_expression "(undefined4 *)(puVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 4)" * (cast_expression "(undefined4 *)(puVar15 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;" (assignment_expression "*(undefined **)(puVar15 + -0x18) = &UNK_003c90d2" (pointer_expression "*(undefined **)(puVar15 + -0x18)" * (cast_expression "(undefined **)(puVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&UNK_003c90d2" & identifier)) ;) (expression_statement "cVar6 = FUN_003c8240();" (assignment_expression "cVar6 = FUN_003c8240()" identifier = (call_expression "FUN_003c8240()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;" if (parenthesized_expression "((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))" ( (binary_expression "(cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0)" (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0)" ( (comma_expression "puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) , (binary_expression "*(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0" (binary_expression "*(int *)(puVar15 + 0x34) != 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(puVar15 + 0x3c) != 0" (pointer_expression "*(int *)(puVar15 + 0x3c)" * (cast_expression "(int *)(puVar15 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x3c)" ( (binary_expression "puVar15 + 0x3c" identifier + number_literal) )))) != number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c90fb;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c90fb" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c90fb" & identifier)) ;) (expression_statement "uVar12 = FUN_003c04a0();" (assignment_expression "uVar12 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = piVar10[7];" (assignment_expression "iVar1 = piVar10[7]" identifier = (subscript_expression "piVar10[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x1c)" * (cast_expression "(undefined4 *)(puVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x1c)" ( (binary_expression "puVar15 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" if (parenthesized_expression "((char)iVar1 == '\0')" ( (binary_expression "(char)iVar1 == '\0'" (cast_expression "(char)iVar1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }" { (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c9691;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c9691" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9691" & identifier)) ;) (expression_statement "cVar6 = FUN_003c04f0();" (assignment_expression "cVar6 = FUN_003c04f0()" identifier = (call_expression "FUN_003c04f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" else (compound_statement "{\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" { (expression_statement "cVar6 = *(char *)((int)piVar10 + 0x4a);" (assignment_expression "cVar6 = *(char *)((int)piVar10 + 0x4a)" identifier = (pointer_expression "*(char *)((int)piVar10 + 0x4a)" * (cast_expression "(char *)((int)piVar10 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x4a)" ( (binary_expression "(int)piVar10 + 0x4a" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }" if (parenthesized_expression "(puVar15[0x1c] != cVar6)" ( (binary_expression "puVar15[0x1c] != cVar6" (subscript_expression "puVar15[0x1c]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }" { (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c9123;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c9123" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9123" & identifier)) ;) (expression_statement "uVar12 = FUN_003c04a0();" (assignment_expression "uVar12 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = piVar10[7];" (assignment_expression "iVar1 = piVar10[7]" identifier = (subscript_expression "piVar10[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x1c)" * (cast_expression "(undefined4 *)(puVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x1c)" ( (binary_expression "puVar15 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }" if (parenthesized_expression "((char)iVar1 == '\0')" ( (binary_expression "(char)iVar1 == '\0'" (cast_expression "(char)iVar1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }" { (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c96a2;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c96a2" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c96a2" & identifier)) ;) (expression_statement "cVar6 = FUN_003c04f0();" (assignment_expression "cVar6 = FUN_003c04f0()" identifier = (call_expression "FUN_003c04f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n        cVar6 = (char)piVar10[0x12];\n      }" else (compound_statement "{\n        cVar6 = (char)piVar10[0x12];\n      }" { (expression_statement "cVar6 = (char)piVar10[0x12];" (assignment_expression "cVar6 = (char)piVar10[0x12]" identifier = (cast_expression "(char)piVar10[0x12]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar10[0x12]" identifier [ number_literal ]))) ;) }))) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (puVar15[0x1c] != cVar6) break;" if (parenthesized_expression "(puVar15[0x1c] != cVar6)" ( (binary_expression "puVar15[0x1c] != cVar6" (subscript_expression "puVar15[0x1c]" identifier [ number_literal ]) != identifier) )) (break_statement "break;" break ;)) })) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x17;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x17" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x1c) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x1c) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x1c)" * (cast_expression "(undefined1 **)(puVar15 + -0x1c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);" (assignment_expression "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90)" (pointer_expression "*(undefined4 *)(puVar15 + -0x30)" * (cast_expression "(undefined4 *)(puVar15 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x90)" * (cast_expression "(undefined4 *)(puVar15 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x90)" ( (binary_expression "puVar15 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);" (assignment_expression "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0x34)" * (cast_expression "(undefined4 *)(puVar15 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" * (cast_expression "(undefined4 *)(puVar15 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x10)" ( (binary_expression "puVar15 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x38) = &UNK_003c917a;" (assignment_expression "*(undefined **)(puVar15 + -0x38) = &UNK_003c917a" (pointer_expression "*(undefined **)(puVar15 + -0x38)" * (cast_expression "(undefined **)(puVar15 + -0x38)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x38)" ( (binary_expression "puVar15 + -0x38" identifier + number_literal) )))) = (pointer_expression "&UNK_003c917a" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);" (assignment_expression "*(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20)" (pointer_expression "*(undefined4 *)(puVar15 + 0x90)" * (cast_expression "(undefined4 *)(puVar15 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x90)" ( (binary_expression "puVar15 + 0x90" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x20)" * (cast_expression "(undefined4 *)(puVar15 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x3b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x3b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);" (assignment_expression "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20)" (pointer_expression "*(undefined4 *)(puVar15 + -0x30)" * (cast_expression "(undefined4 *)(puVar15 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x20)" * (cast_expression "(undefined4 *)(puVar15 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x34)" * (cast_expression "(undefined4 *)(puVar15 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x8c)" * (cast_expression "(undefined4 *)(puVar15 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x8c)" ( (binary_expression "puVar15 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = puVar15 + -0x38;" (assignment_expression "puVar17 = puVar15 + -0x38" identifier = (binary_expression "puVar15 + -0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);" (assignment_expression "*(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc)" (pointer_expression "*(undefined4 *)(puVar15 + -0x38)" * (cast_expression "(undefined4 *)(puVar15 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x38)" ( (binary_expression "puVar15 + -0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xc)" * (cast_expression "(undefined4 *)(puVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;" (assignment_expression "*(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2" (pointer_expression "*(undefined **)(puVar15 + -0x3c)" * (cast_expression "(undefined **)(puVar15 + -0x3c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x3c)" ( (binary_expression "puVar15 + -0x3c" identifier + number_literal) )))) = (pointer_expression "&UNK_003c91c2" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x003c8e3c;" goto statement_identifier ;)) (case_statement "case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);" (assignment_expression "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48)" (pointer_expression "*(undefined4 *)(puVar15 + 0x40)" * (cast_expression "(undefined4 *)(puVar15 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x40)" ( (binary_expression "puVar15 + 0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x48)" * (cast_expression "(undefined4 *)(iVar1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x48)" ( (binary_expression "iVar1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x44)" * (cast_expression "(undefined4 *)(puVar15 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x44)" ( (binary_expression "puVar15 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" * (cast_expression "(undefined4 *)(iVar1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4c)" ( (binary_expression "iVar1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);" (assignment_expression "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50)" (pointer_expression "*(undefined4 *)(puVar15 + 0x48)" * (cast_expression "(undefined4 *)(puVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x48)" ( (binary_expression "puVar15 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x50)" * (cast_expression "(undefined4 *)(iVar1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x50)" ( (binary_expression "iVar1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);" (assignment_expression "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54)" (pointer_expression "*(undefined4 *)(puVar15 + 0x4c)" * (cast_expression "(undefined4 *)(puVar15 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x4c)" ( (binary_expression "puVar15 + 0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x54)" * (cast_expression "(undefined4 *)(iVar1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x54)" ( (binary_expression "iVar1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);" (assignment_expression "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58)" (pointer_expression "*(undefined4 *)(puVar15 + 0x50)" * (cast_expression "(undefined4 *)(puVar15 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x50)" ( (binary_expression "puVar15 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x58)" * (cast_expression "(undefined4 *)(iVar1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x54)" * (cast_expression "(undefined4 *)(puVar15 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x54)" ( (binary_expression "puVar15 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x5c)" * (cast_expression "(undefined4 *)(iVar1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5c)" ( (binary_expression "iVar1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(iVar1 + 0x60);" (assignment_expression "uVar12 = *(undefined4 *)(iVar1 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x60)" * (cast_expression "(undefined4 *)(iVar1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x60)" ( (binary_expression "iVar1 + 0x60" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + 0x58) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x58) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x58)" * (cast_expression "(undefined4 *)(puVar15 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x58)" ( (binary_expression "puVar15 + 0x58" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9250;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9250" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9250" & identifier)) ;) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x18)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x18" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x62:" case number_literal :) (case_statement "case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x18)" * (cast_expression "(undefined4 *)(puVar15 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9441;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9441" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9441" & identifier)) ;) (expression_statement "FUN_003c2390();" (call_expression "FUN_003c2390()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" statement_identifier : (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c92e5" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c92e5" & identifier)) ;) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x10)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x10" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;" case number_literal : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" * (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" ( (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto code_r0x003c8e00;" goto statement_identifier ;)) (case_statement "case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x1f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x1f" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto code_r0x003c9486;" goto statement_identifier ;)) (case_statement "case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c9500;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c9500" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9500" & identifier)) ;) (expression_statement "uVar18 = FUN_003c04a0();" (assignment_expression "uVar18 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" if (parenthesized_expression "((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20)" ( (binary_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20" (pointer_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" * (cast_expression "(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (binary_expression "piVar10[6] + 1 + (uVar18 & 0xff) * 2" (binary_expression "piVar10[6] + 1" (subscript_expression "piVar10[6]" identifier [ number_literal ]) + number_literal) + (binary_expression "(uVar18 & 0xff) * 2" (parenthesized_expression "(uVar18 & 0xff)" ( (binary_expression "uVar18 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }" { (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x1f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x1f" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 10;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 10" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9520;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9520" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9520" & identifier)) ;) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 9" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "code_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" statement_identifier : (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c94b4" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c94b4" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0xc)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0xc" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9594;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9594" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9594" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;" (assignment_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1" (pointer_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x10)" * (cast_expression "(int *)(*(int *)(puVar15 + 0xac) + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x10)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x10" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "*(int *)(puVar15 + 0x38) + -1" (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c95e0;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c95e0" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c95e0" & identifier)) ;) (expression_statement "bVar9 = FUN_003c04a0();" (assignment_expression "bVar9 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);" (assignment_expression "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar8 = bVar9;" (assignment_expression "bVar8 = bVar9" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar9;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar9" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar9" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c967b;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c967b" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c967b" & identifier)) ;) (expression_statement "bVar8 = (*pcVar4)();" (assignment_expression "bVar8 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar8 == 0) goto LAB_003c8d88;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;" (assignment_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8" (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (bVar8 != 10) goto LAB_003c8d88;" if (parenthesized_expression "(bVar8 != 10)" ( (binary_expression "bVar8 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (labeled_statement "code_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9625;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9625" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9625" & identifier)) ;) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c8d40;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c8d40" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8d40" & identifier)) ;) (expression_statement "bVar9 = FUN_003c04a0();" (assignment_expression "bVar9 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);" (assignment_expression "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar8 = bVar9;" (assignment_expression "bVar8 = bVar9" identifier = identifier) ;) (if_statement "if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }" if (parenthesized_expression "(pcVar4 != *(code **)(puVar15 + 0x1c))" ( (binary_expression "pcVar4 != *(code **)(puVar15 + 0x1c)" identifier != (pointer_expression "*(code **)(puVar15 + 0x1c)" * (cast_expression "(code **)(puVar15 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x1c)" ( (binary_expression "puVar15 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar9;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar9" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar9" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c8d68" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8d68" & identifier)) ;) (expression_statement "bVar8 = (*pcVar4)();" (assignment_expression "bVar8 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar8 == 0) goto LAB_003c8d88;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;" (assignment_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8" (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (bVar8 == 9) goto code_r0x003c9616;" if (parenthesized_expression "(bVar8 == 9)" ( (binary_expression "bVar8 == 9" identifier == number_literal) )) (goto_statement "goto code_r0x003c9616;" goto statement_identifier ;)) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (case_statement "case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;" case number_literal : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" * (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" ( (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "code_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xb0)" * (cast_expression "(undefined4 *)(puVar15 + 0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb0)" ( (binary_expression "puVar15 + 0xb0" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = puVar15 + -0x30;" (assignment_expression "puVar17 = puVar15 + -0x30" identifier = (binary_expression "puVar15 + -0x30" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8e3c" & identifier)) ;) (expression_statement "FUN_003c8af0();" (call_expression "FUN_003c8af0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);" statement_identifier : (expression_statement "*(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);" (assignment_expression "*(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54)" (pointer_expression "*(undefined4 *)(puVar17 + 0xc4)" * (cast_expression "(undefined4 *)(puVar17 + 0xc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0xc4)" ( (binary_expression "puVar17 + 0xc4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar17 + 0x54)" * (cast_expression "(undefined4 *)(puVar17 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x54)" ( (binary_expression "puVar17 + 0x54" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);" (assignment_expression "*(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58)" (pointer_expression "*(undefined4 *)(puVar17 + 200)" * (cast_expression "(undefined4 *)(puVar17 + 200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 200)" ( (binary_expression "puVar17 + 200" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar17 + 0x58)" * (cast_expression "(undefined4 *)(puVar17 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x58)" ( (binary_expression "puVar17 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar17 + 0x2c;" (assignment_expression "puVar16 = puVar17 + 0x2c" identifier = (binary_expression "puVar17 + 0x2c" identifier + number_literal)) ;)) })) (labeled_statement "code_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;" statement_identifier : (expression_statement "uVar18 = *(int *)(puVar16 + 4) + 1;" (assignment_expression "uVar18 = *(int *)(puVar16 + 4) + 1" identifier = (binary_expression "*(int *)(puVar16 + 4) + 1" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) (goto_statement "goto LAB_003c8b6b;" goto statement_identifier ;) (labeled_statement "LAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" statement_identifier : (expression_statement "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" (assignment_expression "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) | number_literal)) ;)) (goto_statement "goto code_r0x003c8d90;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >\n   >::_M_extract_via_format(std::istreambuf_iterator<char, std::char_traits<char> >,\n   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*,\n   char const*) const */\n\nvoid std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n     _M_extract_via_format(void)\n\n{\n}\n\n" comment comment (ERROR "void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n     _M_extract_via_format(void)" primitive_type (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>>::" identifier : : identifier < primitive_type >> > : :) (function_declarator "_M_extract_via_format(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n}" { }))
(translation_unit "undefined4 * FUN_003c8af0(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}\n\n" (function_definition "undefined4 * FUN_003c8af0(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}" type_identifier (pointer_declarator "* FUN_003c8af0(void)" * (function_declarator "FUN_003c8af0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int in_stack_0000001c;" primitive_type identifier ;) (declaration "char *in_stack_00000028;" primitive_type (pointer_declarator "*in_stack_00000028" * identifier) ;) (declaration "undefined1 auStack_8c [8];" type_identifier (array_declarator "auStack_8c [8]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "size_t local_80;" primitive_type identifier ;) (declaration "undefined1 *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "code *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "undefined **local_68;" type_identifier (pointer_declarator "**local_68" * (pointer_declarator "*local_68" * identifier)) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x3c8afb;" (assignment_expression "uStack_14 = 0x3c8afb" identifier = number_literal) ;) (expression_statement "iVar1 = in_stack_0000001c + 0x6c;" (assignment_expression "iVar1 = in_stack_0000001c + 0x6c" identifier = (binary_expression "in_stack_0000001c + 0x6c" identifier + number_literal)) ;) (expression_statement "local_74 = FUN_003c4a50(iVar1);" (assignment_expression "local_74 = FUN_003c4a50(iVar1)" identifier = (call_expression "FUN_003c4a50(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "piVar10 = (int *)FUN_003c30b0(iVar1);" (assignment_expression "piVar10 = (int *)FUN_003c30b0(iVar1)" identifier = (cast_expression "(int *)FUN_003c30b0(iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_003c30b0(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))))) ;) (expression_statement "local_80 = strlen(in_stack_00000028);" (assignment_expression "local_80 = strlen(in_stack_00000028)" identifier = (call_expression "strlen(in_stack_00000028)" identifier (argument_list "(in_stack_00000028)" ( identifier )))) ;) (expression_statement "local_7c = &stack0x00000014;" (assignment_expression "local_7c = &stack0x00000014" identifier = (pointer_expression "&stack0x00000014" & identifier)) ;) (expression_statement "local_84 = &stack0x0000000c;" (assignment_expression "local_84 = &stack0x0000000c" identifier = (pointer_expression "&stack0x0000000c" & identifier)) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_68 = &PTR_DAT_005ea860;" (assignment_expression "local_68 = &PTR_DAT_005ea860" identifier = (pointer_expression "&PTR_DAT_005ea860" & identifier)) ;) (expression_statement "local_70 = FUN_003bf470;" (assignment_expression "local_70 = FUN_003bf470" identifier = identifier) ;) (expression_statement "puVar15 = auStack_8c;" (assignment_expression "puVar15 = auStack_8c" identifier = identifier) ;) (labeled_statement "LAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" * (cast_expression "(undefined4 *)(puVar15 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x10)" ( (binary_expression "puVar15 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 8)" * (cast_expression "(undefined4 *)(puVar15 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 8)" ( (binary_expression "puVar15 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar6 = FUN_003c8240();" (assignment_expression "cVar6 = FUN_003c8240()" identifier = (call_expression "FUN_003c8240()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }" if (parenthesized_expression "((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18))" ( (binary_expression "(cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)" (parenthesized_expression "(cVar6 == '\x01')" ( (binary_expression "cVar6 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "(*(uint *)(puVar15 + 0xc) <= uVar18)" ( (binary_expression "*(uint *)(puVar15 + 0xc) <= uVar18" (pointer_expression "*(uint *)(puVar15 + 0xc)" * (cast_expression "(uint *)(puVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) )))) <= identifier) ))) )) (compound_statement "{\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }" { (if_statement "if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }" if (parenthesized_expression "((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc)))" ( (binary_expression "(*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))" (parenthesized_expression "(*(int *)(puVar15 + 0x38) != 0)" ( (binary_expression "*(int *)(puVar15 + 0x38) != 0" (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(uVar18 != *(uint *)(puVar15 + 0xc))" ( (binary_expression "uVar18 != *(uint *)(puVar15 + 0xc)" identifier != (pointer_expression "*(uint *)(puVar15 + 0xc)" * (cast_expression "(uint *)(puVar15 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) ))))) ))) )) (compound_statement "{\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }" { (labeled_statement "LAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;" statement_identifier : (expression_statement "**(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;" (assignment_expression "**(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4" (pointer_expression "**(uint **)(puVar15 + 0xac)" * (pointer_expression "*(uint **)(puVar15 + 0xac)" * (cast_expression "(uint **)(puVar15 + 0xac)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) ))))) = (binary_expression "**(uint **)(puVar15 + 0xac) | 4" (pointer_expression "**(uint **)(puVar15 + 0xac)" * (pointer_expression "*(uint **)(puVar15 + 0xac)" * (cast_expression "(uint **)(puVar15 + 0xac)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) ))))) | number_literal)) ;)) })) (expression_statement "puVar5 = *(undefined4 **)(puVar15 + 0x90);" (assignment_expression "puVar5 = *(undefined4 **)(puVar15 + 0x90)" identifier = (pointer_expression "*(undefined4 **)(puVar15 + 0x90)" * (cast_expression "(undefined4 **)(puVar15 + 0x90)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x90)" ( (binary_expression "puVar15 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "uVar12 = *(undefined4 *)(puVar15 + 0x9c)" identifier = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*puVar5 = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*puVar5 = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "puVar5[1] = uVar12;" (assignment_expression "puVar5[1] = uVar12" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar5;" return identifier ;) })) (if_statement "if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;" if (parenthesized_expression "(*(int *)(puVar15 + 0x38) != 0)" ( (binary_expression "*(int *)(puVar15 + 0x38) != 0" (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_003c8cde;" goto statement_identifier ;)) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" identifier = (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" * (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + uVar18" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "uVar14 = (uint)bVar8;" (assignment_expression "uVar14 = (uint)bVar8" identifier = (cast_expression "(uint)bVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);" (assignment_expression "*(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" (pointer_expression "*(byte **)(puVar15 + 0x14)" * (cast_expression "(byte **)(puVar15 + 0x14)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x14)" ( (binary_expression "puVar15 + 0x14" identifier + number_literal) )))) = (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + uVar18" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "*(uint *)(puVar15 + 4) = uVar18 + 1;" (assignment_expression "*(uint *)(puVar15 + 4) = uVar18 + 1" (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + uVar14 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + uVar14 + 0x11d)" ( (binary_expression "(int)piVar10 + uVar14 + 0x11d" (binary_expression "(int)piVar10 + uVar14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }" { (expression_statement "*(uint *)(puVar15 + 0x20) = uVar14;" (assignment_expression "*(uint *)(puVar15 + 0x20) = uVar14" (pointer_expression "*(uint *)(puVar15 + 0x20)" * (cast_expression "(uint *)(puVar15 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8d20" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar14 = *(uint *)(puVar15 + 0x20);" (assignment_expression "uVar14 = *(uint *)(puVar15 + 0x20)" identifier = (pointer_expression "*(uint *)(puVar15 + 0x20)" * (cast_expression "(uint *)(puVar15 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) ))))) ;) })) (if_statement "if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }" { (expression_statement "*(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + uVar14 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + uVar14 + 0x11d)" ( (binary_expression "(int)piVar10 + uVar14 + 0x11d" (binary_expression "(int)piVar10 + uVar14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_003c8be0;" goto statement_identifier ;) })) (labeled_statement "LAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);" statement_identifier : (expression_statement "cVar6 = **(char **)(puVar15 + 0x14);" (assignment_expression "cVar6 = **(char **)(puVar15 + 0x14)" identifier = (pointer_expression "**(char **)(puVar15 + 0x14)" * (pointer_expression "*(char **)(puVar15 + 0x14)" * (cast_expression "(char **)(puVar15 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x14)" ( (binary_expression "puVar15 + 0x14" identifier + number_literal) )))))) ;)) (expression_statement "*(undefined4 *)(puVar15 + -4) = 0x3c8c67;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = 0x3c8c67" (pointer_expression "*(undefined4 *)(puVar15 + -4)" * (cast_expression "(undefined4 *)(puVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar7 = FUN_003c04a0();" (assignment_expression "cVar7 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" if (parenthesized_expression "(cVar6 == cVar7)" ( (binary_expression "cVar6 == cVar7" identifier == identifier) )) (compound_statement "{\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8daf" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar18 = *(uint *)(puVar15 + 4);" (assignment_expression "uVar18 = *(uint *)(puVar15 + 4)" identifier = (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" else (compound_statement "{\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" { (expression_statement "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" (assignment_expression "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "uVar18 = *(uint *)(puVar15 + 4);" (assignment_expression "uVar18 = *(uint *)(puVar15 + 4)" identifier = (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) }))) (goto_statement "goto LAB_003c8b6b;" goto statement_identifier ;) })) (labeled_statement "LAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;" statement_identifier : (if_statement "if (bVar9 != 0x25) goto LAB_003c8c50;" if (parenthesized_expression "(bVar9 != 0x25)" ( (binary_expression "bVar9 != 0x25" identifier != number_literal) )) (goto_statement "goto LAB_003c8c50;" goto statement_identifier ;))) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" identifier = (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" * (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + 1 + uVar18" (binary_expression "*(int *)(puVar15 + 0xb4) + 1" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" identifier = identifier) ;) (if_statement "if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }" { (expression_statement "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_003c8c21;" goto statement_identifier ;) })) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;) })) (labeled_statement "LAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar15 + 0x3c)" * (cast_expression "(undefined4 *)(puVar15 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x3c)" ( (binary_expression "puVar15 + 0x3c" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }" if (parenthesized_expression "((bVar9 == 0x45) || (bVar9 == 0x4f))" ( (binary_expression "(bVar9 == 0x45) || (bVar9 == 0x4f)" (parenthesized_expression "(bVar9 == 0x45)" ( (binary_expression "bVar9 == 0x45" identifier == number_literal) )) || (parenthesized_expression "(bVar9 == 0x4f)" ( (binary_expression "bVar9 == 0x4f" identifier == number_literal) ))) )) (compound_statement "{\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }" { (expression_statement "*(uint *)(puVar15 + 4) = uVar18 + 2;" (assignment_expression "*(uint *)(puVar15 + 4) = uVar18 + 2" (pointer_expression "*(uint *)(puVar15 + 4)" * (cast_expression "(uint *)(puVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = (binary_expression "uVar18 + 2" identifier + number_literal)) ;) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" identifier = (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" * (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" ( (binary_expression "*(int *)(puVar15 + 0xb4) + 2 + uVar18" (binary_expression "*(int *)(puVar15 + 0xb4) + 2" (pointer_expression "*(int *)(puVar15 + 0xb4)" * (cast_expression "(int *)(puVar15 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb4)" ( (binary_expression "puVar15 + 0xb4" identifier + number_literal) )))) + number_literal) + identifier) ))))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar8" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar8" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c964c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c964c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar9 == 0) goto LAB_003c8d88;" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) })) })) (switch_statement "switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }" switch (parenthesized_expression "(bVar9)" ( identifier )) (compound_statement "{\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }" { (case_statement "case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;" case number_literal : (expression_statement "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x40)" * (cast_expression "(undefined4 *)(puVar15 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x40)" ( (binary_expression "puVar15 + 0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x2c)" * (cast_expression "(undefined4 *)(iVar1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);" (assignment_expression "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30)" (pointer_expression "*(undefined4 *)(puVar15 + 0x44)" * (cast_expression "(undefined4 *)(puVar15 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x44)" ( (binary_expression "puVar15 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x30)" * (cast_expression "(undefined4 *)(iVar1 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x30)" ( (binary_expression "iVar1 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);" (assignment_expression "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34)" (pointer_expression "*(undefined4 *)(puVar15 + 0x48)" * (cast_expression "(undefined4 *)(puVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x48)" ( (binary_expression "puVar15 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x34)" * (cast_expression "(undefined4 *)(iVar1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x34)" ( (binary_expression "iVar1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);" (assignment_expression "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38)" (pointer_expression "*(undefined4 *)(puVar15 + 0x4c)" * (cast_expression "(undefined4 *)(puVar15 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x4c)" ( (binary_expression "puVar15 + 0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x38)" * (cast_expression "(undefined4 *)(iVar1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x38)" ( (binary_expression "iVar1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x50)" * (cast_expression "(undefined4 *)(puVar15 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x50)" ( (binary_expression "puVar15 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x3c)" * (cast_expression "(undefined4 *)(iVar1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x3c)" ( (binary_expression "iVar1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);" (assignment_expression "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40)" (pointer_expression "*(undefined4 *)(puVar15 + 0x54)" * (cast_expression "(undefined4 *)(puVar15 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x54)" ( (binary_expression "puVar15 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x40)" * (cast_expression "(undefined4 *)(iVar1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x40)" ( (binary_expression "iVar1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(iVar1 + 0x44);" (assignment_expression "uVar12 = *(undefined4 *)(iVar1 + 0x44)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x44)" * (cast_expression "(undefined4 *)(iVar1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x44)" ( (binary_expression "iVar1 + 0x44" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x003c9204;" goto statement_identifier ;)) (case_statement "case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x18)" * (cast_expression "(undefined4 *)(puVar15 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c92a1" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c92a1" & identifier)) ;) (expression_statement "FUN_003c2320();" (call_expression "FUN_003c2320()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x003c92a1;" goto statement_identifier ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x59:" case number_literal :) (case_statement "case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 4;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 4" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 9999;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 9999" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9367;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9367" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9367" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "iVar1 = *(int *)(puVar15 + 0x38);" (assignment_expression "iVar1 = *(int *)(puVar15 + 0x38)" identifier = (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = iVar1 + -0x76c;" (assignment_expression "iVar13 = iVar1 + -0x76c" identifier = (binary_expression "iVar1 + -0x76c" identifier + number_literal)) ;) (if_statement "if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar13 = iVar1 + 100;\n      }" { (expression_statement "iVar13 = iVar1 + 100;" (assignment_expression "iVar13 = iVar1 + 100" identifier = (binary_expression "iVar1 + 100" identifier + number_literal)) ;) })) (expression_statement "*(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;" (assignment_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13" (pointer_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x14)" * (cast_expression "(int *)(*(int *)(puVar15 + 0xac) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x14)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x14" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_004a2987;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_004a2987" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_004a2987" & identifier)) ;) (expression_statement "pcVar11 = "%m/%d/%y";" (assignment_expression "pcVar11 = "%m/%d/%y"" identifier = (string_literal ""%m/%d/%y"" " string_content ")) ;) (goto_statement "goto code_r0x003c8f72;" goto statement_identifier ;)) (case_statement "default:\n    goto LAB_003c8d88;" default : (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (case_statement "case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x17;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x17" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto code_r0x003c8e76;" goto statement_identifier ;)) (case_statement "case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "code_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" statement_identifier : (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8ea4" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 8)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 8" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x3b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x3b" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8f24" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8f24" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 4)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 4" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -8) = &DAT_004a298d;" (assignment_expression "*(undefined **)(puVar15 + -8) = &DAT_004a298d" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&DAT_004a298d" & identifier)) ;) (expression_statement "pcVar11 = "%H:%M";" (assignment_expression "pcVar11 = "%H:%M"" identifier = (string_literal ""%H:%M"" " string_content ")) ;) (goto_statement "goto code_r0x003c8f72;" goto statement_identifier ;)) (case_statement "case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x3c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x3c" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8fcc" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "**(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "**(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "**(undefined4 **)(puVar15 + 0xac)" * (pointer_expression "*(undefined4 **)(puVar15 + 0xac)" * (cast_expression "(undefined4 **)(puVar15 + 0xac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) ))))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_004a2996;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_004a2996" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_004a2996" & identifier)) ;) (expression_statement "pcVar11 = "%H:%M:%S";" (assignment_expression "pcVar11 = "%H:%M:%S"" identifier = (string_literal ""%H:%M:%S"" " string_content ")) ;) (labeled_statement "code_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;" statement_identifier : (expression_statement "*(char **)(puVar15 + -0xc) = pcVar11;" (assignment_expression "*(char **)(puVar15 + -0xc) = pcVar11" (pointer_expression "*(char **)(puVar15 + -0xc)" * (cast_expression "(char **)(puVar15 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c8f79" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8f79" & identifier)) ;) (expression_statement "FUN_003c07a0();" (call_expression "FUN_003c07a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (goto_statement "goto code_r0x003c8e00;" goto statement_identifier ;)) (case_statement "case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;" case number_literal : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" * (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" ( (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto code_r0x003c8e00;" goto statement_identifier ;)) (case_statement "case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c9050;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c9050" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9050" & identifier)) ;) (expression_statement "uVar18 = FUN_003c04a0();" (assignment_expression "uVar18 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;" if (parenthesized_expression "((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0)" ( (binary_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1)" ( (binary_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1" (pointer_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" * (cast_expression "(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (binary_expression "piVar10[6] + 1 + (uVar18 & 0xff) * 2" (binary_expression "piVar10[6] + 1" (subscript_expression "piVar10[6]" identifier [ number_literal ]) + number_literal) + (binary_expression "(uVar18 & 0xff) * 2" (parenthesized_expression "(uVar18 & 0xff)" ( (binary_expression "uVar18 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + 0x14)" * (cast_expression "(undefined1 **)(puVar15 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x14)" ( (binary_expression "puVar15 + 0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "puVar2 = puVar15 + 0x38;" (assignment_expression "puVar2 = puVar15 + 0x38" identifier = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xe;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xe" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar3 = puVar15 + 0x40;" (assignment_expression "puVar3 = puVar15 + 0x40" identifier = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c90ac" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c90ac" & identifier)) ;) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xc)" * (cast_expression "(undefined4 *)(puVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 4)" * (cast_expression "(undefined4 *)(puVar15 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;" (assignment_expression "*(undefined **)(puVar15 + -0x18) = &UNK_003c90d2" (pointer_expression "*(undefined **)(puVar15 + -0x18)" * (cast_expression "(undefined **)(puVar15 + -0x18)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "&UNK_003c90d2" & identifier)) ;) (expression_statement "cVar6 = FUN_003c8240();" (assignment_expression "cVar6 = FUN_003c8240()" identifier = (call_expression "FUN_003c8240()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;" if (parenthesized_expression "((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))" ( (binary_expression "(cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0)" (parenthesized_expression "(cVar6 != '\0')" ( (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0)" ( (comma_expression "puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) , (binary_expression "*(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0" (binary_expression "*(int *)(puVar15 + 0x34) != 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(puVar15 + 0x3c) != 0" (pointer_expression "*(int *)(puVar15 + 0x3c)" * (cast_expression "(int *)(puVar15 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x3c)" ( (binary_expression "puVar15 + 0x3c" identifier + number_literal) )))) != number_literal))) ))) )) (break_statement "break;" break ;)) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c90fb;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c90fb" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c90fb" & identifier)) ;) (expression_statement "uVar12 = FUN_003c04a0();" (assignment_expression "uVar12 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = piVar10[7];" (assignment_expression "iVar1 = piVar10[7]" identifier = (subscript_expression "piVar10[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x1c)" * (cast_expression "(undefined4 *)(puVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x1c)" ( (binary_expression "puVar15 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" if (parenthesized_expression "((char)iVar1 == '\0')" ( (binary_expression "(char)iVar1 == '\0'" (cast_expression "(char)iVar1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }" { (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c9691;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c9691" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9691" & identifier)) ;) (expression_statement "cVar6 = FUN_003c04f0();" (assignment_expression "cVar6 = FUN_003c04f0()" identifier = (call_expression "FUN_003c04f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" else (compound_statement "{\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" { (expression_statement "cVar6 = *(char *)((int)piVar10 + 0x4a);" (assignment_expression "cVar6 = *(char *)((int)piVar10 + 0x4a)" identifier = (pointer_expression "*(char *)((int)piVar10 + 0x4a)" * (cast_expression "(char *)((int)piVar10 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + 0x4a)" ( (binary_expression "(int)piVar10 + 0x4a" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (if_statement "if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }" if (parenthesized_expression "(puVar15[0x1c] != cVar6)" ( (binary_expression "puVar15[0x1c] != cVar6" (subscript_expression "puVar15[0x1c]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }" { (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c9123;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c9123" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9123" & identifier)) ;) (expression_statement "uVar12 = FUN_003c04a0();" (assignment_expression "uVar12 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = piVar10[7];" (assignment_expression "iVar1 = piVar10[7]" identifier = (subscript_expression "piVar10[7]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x1c)" * (cast_expression "(undefined4 *)(puVar15 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x1c)" ( (binary_expression "puVar15 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }" if (parenthesized_expression "((char)iVar1 == '\0')" ( (binary_expression "(char)iVar1 == '\0'" (cast_expression "(char)iVar1" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }" { (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c96a2;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c96a2" (pointer_expression "*(undefined **)(puVar15 + -8)" * (cast_expression "(undefined **)(puVar15 + -8)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "&UNK_003c96a2" & identifier)) ;) (expression_statement "cVar6 = FUN_003c04f0();" (assignment_expression "cVar6 = FUN_003c04f0()" identifier = (call_expression "FUN_003c04f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n        cVar6 = (char)piVar10[0x12];\n      }" else (compound_statement "{\n        cVar6 = (char)piVar10[0x12];\n      }" { (expression_statement "cVar6 = (char)piVar10[0x12];" (assignment_expression "cVar6 = (char)piVar10[0x12]" identifier = (cast_expression "(char)piVar10[0x12]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar10[0x12]" identifier [ number_literal ]))) ;) }))) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (puVar15[0x1c] != cVar6) break;" if (parenthesized_expression "(puVar15[0x1c] != cVar6)" ( (binary_expression "puVar15[0x1c] != cVar6" (subscript_expression "puVar15[0x1c]" identifier [ number_literal ]) != identifier) )) (break_statement "break;" break ;)) })) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x17;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x17" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x1c) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x1c) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x1c)" * (cast_expression "(undefined1 **)(puVar15 + -0x1c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);" (assignment_expression "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90)" (pointer_expression "*(undefined4 *)(puVar15 + -0x30)" * (cast_expression "(undefined4 *)(puVar15 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x90)" * (cast_expression "(undefined4 *)(puVar15 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x90)" ( (binary_expression "puVar15 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);" (assignment_expression "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0x34)" * (cast_expression "(undefined4 *)(puVar15 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" * (cast_expression "(undefined4 *)(puVar15 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x10)" ( (binary_expression "puVar15 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x38) = &UNK_003c917a;" (assignment_expression "*(undefined **)(puVar15 + -0x38) = &UNK_003c917a" (pointer_expression "*(undefined **)(puVar15 + -0x38)" * (cast_expression "(undefined **)(puVar15 + -0x38)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x38)" ( (binary_expression "puVar15 + -0x38" identifier + number_literal) )))) = (pointer_expression "&UNK_003c917a" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);" (assignment_expression "*(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20)" (pointer_expression "*(undefined4 *)(puVar15 + 0x90)" * (cast_expression "(undefined4 *)(puVar15 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x90)" ( (binary_expression "puVar15 + 0x90" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x20)" * (cast_expression "(undefined4 *)(puVar15 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x3b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x3b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" * (cast_expression "(undefined1 **)(puVar15 + -0x20)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);" (assignment_expression "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20)" (pointer_expression "*(undefined4 *)(puVar15 + -0x30)" * (cast_expression "(undefined4 *)(puVar15 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x20)" * (cast_expression "(undefined4 *)(puVar15 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x20)" ( (binary_expression "puVar15 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x34)" * (cast_expression "(undefined4 *)(puVar15 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x8c)" * (cast_expression "(undefined4 *)(puVar15 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x8c)" ( (binary_expression "puVar15 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = puVar15 + -0x38;" (assignment_expression "puVar17 = puVar15 + -0x38" identifier = (binary_expression "puVar15 + -0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);" (assignment_expression "*(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc)" (pointer_expression "*(undefined4 *)(puVar15 + -0x38)" * (cast_expression "(undefined4 *)(puVar15 + -0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x38)" ( (binary_expression "puVar15 + -0x38" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xc)" * (cast_expression "(undefined4 *)(puVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xc)" ( (binary_expression "puVar15 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;" (assignment_expression "*(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2" (pointer_expression "*(undefined **)(puVar15 + -0x3c)" * (cast_expression "(undefined **)(puVar15 + -0x3c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x3c)" ( (binary_expression "puVar15 + -0x3c" identifier + number_literal) )))) = (pointer_expression "&UNK_003c91c2" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x003c8e3c;" goto statement_identifier ;)) (case_statement "case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);" (assignment_expression "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48)" (pointer_expression "*(undefined4 *)(puVar15 + 0x40)" * (cast_expression "(undefined4 *)(puVar15 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x40)" ( (binary_expression "puVar15 + 0x40" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x48)" * (cast_expression "(undefined4 *)(iVar1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x48)" ( (binary_expression "iVar1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x44)" * (cast_expression "(undefined4 *)(puVar15 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x44)" ( (binary_expression "puVar15 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" * (cast_expression "(undefined4 *)(iVar1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x4c)" ( (binary_expression "iVar1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);" (assignment_expression "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50)" (pointer_expression "*(undefined4 *)(puVar15 + 0x48)" * (cast_expression "(undefined4 *)(puVar15 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x48)" ( (binary_expression "puVar15 + 0x48" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x50)" * (cast_expression "(undefined4 *)(iVar1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x50)" ( (binary_expression "iVar1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);" (assignment_expression "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54)" (pointer_expression "*(undefined4 *)(puVar15 + 0x4c)" * (cast_expression "(undefined4 *)(puVar15 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x4c)" ( (binary_expression "puVar15 + 0x4c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x54)" * (cast_expression "(undefined4 *)(iVar1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x54)" ( (binary_expression "iVar1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);" (assignment_expression "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58)" (pointer_expression "*(undefined4 *)(puVar15 + 0x50)" * (cast_expression "(undefined4 *)(puVar15 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x50)" ( (binary_expression "puVar15 + 0x50" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x58)" * (cast_expression "(undefined4 *)(iVar1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x54)" * (cast_expression "(undefined4 *)(puVar15 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x54)" ( (binary_expression "puVar15 + 0x54" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x5c)" * (cast_expression "(undefined4 *)(iVar1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x5c)" ( (binary_expression "iVar1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(iVar1 + 0x60);" (assignment_expression "uVar12 = *(undefined4 *)(iVar1 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(iVar1 + 0x60)" * (cast_expression "(undefined4 *)(iVar1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x60)" ( (binary_expression "iVar1 + 0x60" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + 0x58) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x58) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x58)" * (cast_expression "(undefined4 *)(puVar15 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x58)" ( (binary_expression "puVar15 + 0x58" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9250;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9250" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9250" & identifier)) ;) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x18)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x18" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x62:" case number_literal :) (case_statement "case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x18)" * (cast_expression "(undefined4 *)(puVar15 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9441;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9441" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9441" & identifier)) ;) (expression_statement "FUN_003c2390();" (call_expression "FUN_003c2390()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" statement_identifier : (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -8)" * (cast_expression "(undefined1 **)(puVar15 + -8)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c92e5" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c92e5" & identifier)) ;) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x10)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x10" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;" case number_literal : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" * (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" ( (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto code_r0x003c8e00;" goto statement_identifier ;)) (case_statement "case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x1f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x1f" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto code_r0x003c9486;" goto statement_identifier ;)) (case_statement "case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c9500;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c9500" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9500" & identifier)) ;) (expression_statement "uVar18 = FUN_003c04a0();" (assignment_expression "uVar18 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" if (parenthesized_expression "((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0)" ( (binary_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20)" ( (binary_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20" (pointer_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" * (cast_expression "(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" ( (binary_expression "piVar10[6] + 1 + (uVar18 & 0xff) * 2" (binary_expression "piVar10[6] + 1" (subscript_expression "piVar10[6]" identifier [ number_literal ]) + number_literal) + (binary_expression "(uVar18 & 0xff) * 2" (parenthesized_expression "(uVar18 & 0xff)" ( (binary_expression "uVar18 & 0xff" identifier & number_literal) )) * number_literal)) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }" { (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x1f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x1f" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 10;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 10" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" else (compound_statement "{\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" { (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9520;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9520" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9520" & identifier)) ;) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 9" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "code_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" statement_identifier : (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;)) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c94b4" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c94b4" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc)" * (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0xc)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0xc" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" * (cast_expression "(undefined4 *)(puVar15 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;" case number_literal : (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" * (cast_expression "(undefined1 **)(puVar15 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" * (cast_expression "(undefined1 **)(puVar15 + -0x18)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x3c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9594;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9594" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9594" & identifier)) ;) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" * (cast_expression "(undefined4 *)(puVar15 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x24)" ( (binary_expression "puVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" * (cast_expression "(undefined4 *)(puVar15 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x28)" ( (binary_expression "puVar15 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }" if (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" ( (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" * (cast_expression "(int *)(puVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x34)" ( (binary_expression "puVar15 + 0x34" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }" { (expression_statement "*(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;" (assignment_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1" (pointer_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x10)" * (cast_expression "(int *)(*(int *)(puVar15 + 0xac) + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x10)" ( (binary_expression "*(int *)(puVar15 + 0xac) + 0x10" (pointer_expression "*(int *)(puVar15 + 0xac)" * (cast_expression "(int *)(puVar15 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xac)" ( (binary_expression "puVar15 + 0xac" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "*(int *)(puVar15 + 0x38) + -1" (pointer_expression "*(int *)(puVar15 + 0x38)" * (cast_expression "(int *)(puVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" identifier = (binary_expression "puVar15 + -4" identifier + number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c95e0;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c95e0" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c95e0" & identifier)) ;) (expression_statement "bVar9 = FUN_003c04a0();" (assignment_expression "bVar9 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);" (assignment_expression "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar8 = bVar9;" (assignment_expression "bVar8 = bVar9" identifier = identifier) ;) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }" if (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" ( (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" identifier != (cast_expression "(code *)PTR_FUN_005e9f90" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar9;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar9" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar9" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c967b;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c967b" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c967b" & identifier)) ;) (expression_statement "bVar8 = (*pcVar4)();" (assignment_expression "bVar8 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar8 == 0) goto LAB_003c8d88;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;" (assignment_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8" (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (bVar8 != 10) goto LAB_003c8d88;" if (parenthesized_expression "(bVar8 != 10)" ( (binary_expression "bVar8 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (labeled_statement "code_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9625;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9625" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c9625" & identifier)) ;) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;" case number_literal : (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c8d40;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c8d40" (pointer_expression "*(undefined **)(puVar15 + -4)" * (cast_expression "(undefined **)(puVar15 + -4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8d40" & identifier)) ;) (expression_statement "bVar9 = FUN_003c04a0();" (assignment_expression "bVar9 = FUN_003c04a0()" identifier = (call_expression "FUN_003c04a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);" (assignment_expression "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d)" identifier = (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" { (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" identifier = (pointer_expression "*(code **)(*piVar10 + 0x20)" * (cast_expression "(code **)(*piVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 0x20)" ( (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "bVar8 = bVar9;" (assignment_expression "bVar8 = bVar9" identifier = identifier) ;) (if_statement "if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }" if (parenthesized_expression "(pcVar4 != *(code **)(puVar15 + 0x1c))" ( (binary_expression "pcVar4 != *(code **)(puVar15 + 0x1c)" identifier != (pointer_expression "*(code **)(puVar15 + 0x1c)" * (cast_expression "(code **)(puVar15 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x1c)" ( (binary_expression "puVar15 + 0x1c" identifier + number_literal) ))))) )) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }" { (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" * (cast_expression "(undefined4 *)(puVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar9;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar9" (pointer_expression "*(int *)(puVar15 + -0xc)" * (cast_expression "(int *)(puVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (cast_expression "(int)(char)bVar9" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" * (cast_expression "(int **)(puVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c8d68" (pointer_expression "*(undefined **)(puVar15 + -0x14)" * (cast_expression "(undefined **)(puVar15 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8d68" & identifier)) ;) (expression_statement "bVar8 = (*pcVar4)();" (assignment_expression "bVar8 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) })) (if_statement "if (bVar8 == 0) goto LAB_003c8d88;" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (expression_statement "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;" (assignment_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8" (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" * (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" ( (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) })) (if_statement "if (bVar8 == 9) goto code_r0x003c9616;" if (parenthesized_expression "(bVar8 == 9)" ( (binary_expression "bVar8 == 9" identifier == number_literal) )) (goto_statement "goto code_r0x003c9616;" goto statement_identifier ;)) (goto_statement "goto LAB_003c8d88;" goto statement_identifier ;)) (case_statement "case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;" case number_literal : (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" * (cast_expression "(undefined4 *)(puVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" * (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" ( (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" * (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" ( (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" * (cast_expression "(int *)(puVar15 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x18)" ( (binary_expression "puVar15 + 0x18" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (labeled_statement "code_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);" statement_identifier : (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" * (cast_expression "(undefined4 *)(puVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xb0)" * (cast_expression "(undefined4 *)(puVar15 + 0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xb0)" ( (binary_expression "puVar15 + 0xb0" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" * (cast_expression "(undefined1 **)(puVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" * (cast_expression "(undefined4 *)(puVar15 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x18)" ( (binary_expression "puVar15 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" * (cast_expression "(undefined4 *)(puVar15 + 0xa8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa8)" ( (binary_expression "puVar15 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" * (cast_expression "(undefined4 *)(puVar15 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x1c)" ( (binary_expression "puVar15 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" * (cast_expression "(undefined4 *)(puVar15 + 0xa4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa4)" ( (binary_expression "puVar15 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" * (cast_expression "(undefined4 *)(puVar15 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x20)" ( (binary_expression "puVar15 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" * (cast_expression "(undefined4 *)(puVar15 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0xa0)" ( (binary_expression "puVar15 + 0xa0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" * (cast_expression "(undefined4 *)(puVar15 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x24)" ( (binary_expression "puVar15 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" * (cast_expression "(undefined4 *)(puVar15 + 0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x9c)" ( (binary_expression "puVar15 + 0x9c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" * (cast_expression "(undefined4 *)(puVar15 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x28)" ( (binary_expression "puVar15 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" * (cast_expression "(undefined4 *)(puVar15 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x98)" ( (binary_expression "puVar15 + 0x98" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" * (cast_expression "(undefined4 *)(puVar15 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x2c)" ( (binary_expression "puVar15 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" * (cast_expression "(undefined4 *)(puVar15 + 0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x94)" ( (binary_expression "puVar15 + 0x94" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = puVar15 + -0x30;" (assignment_expression "puVar17 = puVar15 + -0x30" identifier = (binary_expression "puVar15 + -0x30" identifier + number_literal)) ;) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" * (cast_expression "(undefined1 **)(puVar15 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x30)" ( (binary_expression "puVar15 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar15 + 0x28" identifier + number_literal)) ;) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c" (pointer_expression "*(undefined **)(puVar15 + -0x34)" * (cast_expression "(undefined **)(puVar15 + -0x34)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x34)" ( (binary_expression "puVar15 + -0x34" identifier + number_literal) )))) = (pointer_expression "&UNK_003c8e3c" & identifier)) ;) (expression_statement "FUN_003c8af0();" (call_expression "FUN_003c8af0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);" statement_identifier : (expression_statement "*(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);" (assignment_expression "*(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54)" (pointer_expression "*(undefined4 *)(puVar17 + 0xc4)" * (cast_expression "(undefined4 *)(puVar17 + 0xc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0xc4)" ( (binary_expression "puVar17 + 0xc4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar17 + 0x54)" * (cast_expression "(undefined4 *)(puVar17 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x54)" ( (binary_expression "puVar17 + 0x54" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);" (assignment_expression "*(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58)" (pointer_expression "*(undefined4 *)(puVar17 + 200)" * (cast_expression "(undefined4 *)(puVar17 + 200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 200)" ( (binary_expression "puVar17 + 200" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar17 + 0x58)" * (cast_expression "(undefined4 *)(puVar17 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 0x58)" ( (binary_expression "puVar17 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar17 + 0x2c;" (assignment_expression "puVar16 = puVar17 + 0x2c" identifier = (binary_expression "puVar17 + 0x2c" identifier + number_literal)) ;)) })) (labeled_statement "code_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;" statement_identifier : (expression_statement "uVar18 = *(int *)(puVar16 + 4) + 1;" (assignment_expression "uVar18 = *(int *)(puVar16 + 4) + 1" identifier = (binary_expression "*(int *)(puVar16 + 4) + 1" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" identifier = identifier) ;) (goto_statement "goto LAB_003c8b6b;" goto statement_identifier ;) (labeled_statement "LAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" statement_identifier : (expression_statement "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" (assignment_expression "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) = (binary_expression "*(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" * (cast_expression "(uint *)(puVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38)" ( (binary_expression "puVar15 + 0x38" identifier + number_literal) )))) | number_literal)) ;)) (goto_statement "goto code_r0x003c8d90;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) ))) )) (compound_statement { (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 + LIT) )))) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) | LIT)) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) })) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (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 (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (break_statement break ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 * FUN_003c8af0(void)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_003c8af0(void)" (* "*") (function_declarator "FUN_003c8af0(void)" (identifier "FUN_003c8af0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  undefined1 *puVar3;\n  code *pcVar4;\n  undefined4 *puVar5;\n  char cVar6;\n  char cVar7;\n  byte bVar8;\n  byte bVar9;\n  int *piVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint uVar14;\n  undefined1 *puVar15;\n  undefined1 *puVar16;\n  undefined1 *puVar17;\n  uint uVar18;\n  int in_stack_0000001c;\n  char *in_stack_00000028;\n  undefined1 auStack_8c [8];\n  undefined1 *local_84;\n  size_t local_80;\n  undefined1 *local_7c;\n  undefined4 local_74;\n  code *local_70;\n  undefined **local_68;\n  undefined4 local_54;\n  undefined4 uStack_14;\n  \n  uVar18 = 0;\n  uStack_14 = 0x3c8afb;\n  iVar1 = in_stack_0000001c + 0x6c;\n  local_74 = FUN_003c4a50(iVar1);\n  piVar10 = (int *)FUN_003c30b0(iVar1);\n  local_80 = strlen(in_stack_00000028);\n  local_7c = &stack0x00000014;\n  local_84 = &stack0x0000000c;\n  local_54 = 0;\n  local_68 = &PTR_DAT_005ea860;\n  local_70 = FUN_003bf470;\n  puVar15 = auStack_8c;\nLAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);\n  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);\n  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;\n  cVar6 = FUN_003c8240();\n  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }\n  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  uVar14 = (uint)bVar8;\n  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);\n  *(uint *)(puVar15 + 4) = uVar18 + 1;\n  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }\nLAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;\n  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);\n  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n  puVar16 = puVar15;\n  if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }\nLAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;\n  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }\n  switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }\ncode_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;\n  puVar15 = puVar16;\n  goto LAB_003c8b6b;\nLAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n  goto code_r0x003c8d90;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined1 *puVar16;" (type_identifier "undefined1") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int in_stack_0000001c;" (primitive_type "int") (identifier "in_stack_0000001c") (; ";")) (declaration "char *in_stack_00000028;" (primitive_type "char") (pointer_declarator "*in_stack_00000028" (* "*") (identifier "in_stack_00000028")) (; ";")) (declaration "undefined1 auStack_8c [8];" (type_identifier "undefined1") (array_declarator "auStack_8c [8]" (identifier "auStack_8c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined1 *local_84;" (type_identifier "undefined1") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "size_t local_80;" (primitive_type "size_t") (identifier "local_80") (; ";")) (declaration "undefined1 *local_7c;" (type_identifier "undefined1") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "undefined4 local_74;" (type_identifier "undefined4") (identifier "local_74") (; ";")) (declaration "code *local_70;" (type_identifier "code") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "undefined **local_68;" (type_identifier "undefined") (pointer_declarator "**local_68" (* "*") (pointer_declarator "*local_68" (* "*") (identifier "local_68"))) (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x3c8afb;" (assignment_expression "uStack_14 = 0x3c8afb" (identifier "uStack_14") (= "=") (number_literal "0x3c8afb")) (; ";")) (expression_statement "iVar1 = in_stack_0000001c + 0x6c;" (assignment_expression "iVar1 = in_stack_0000001c + 0x6c" (identifier "iVar1") (= "=") (binary_expression "in_stack_0000001c + 0x6c" (identifier "in_stack_0000001c") (+ "+") (number_literal "0x6c"))) (; ";")) (expression_statement "local_74 = FUN_003c4a50(iVar1);" (assignment_expression "local_74 = FUN_003c4a50(iVar1)" (identifier "local_74") (= "=") (call_expression "FUN_003c4a50(iVar1)" (identifier "FUN_003c4a50") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "piVar10 = (int *)FUN_003c30b0(iVar1);" (assignment_expression "piVar10 = (int *)FUN_003c30b0(iVar1)" (identifier "piVar10") (= "=") (cast_expression "(int *)FUN_003c30b0(iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_003c30b0(iVar1)" (identifier "FUN_003c30b0") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))))) (; ";")) (expression_statement "local_80 = strlen(in_stack_00000028);" (assignment_expression "local_80 = strlen(in_stack_00000028)" (identifier "local_80") (= "=") (call_expression "strlen(in_stack_00000028)" (identifier "strlen") (argument_list "(in_stack_00000028)" (( "(") (identifier "in_stack_00000028") () ")")))) (; ";")) (expression_statement "local_7c = &stack0x00000014;" (assignment_expression "local_7c = &stack0x00000014" (identifier "local_7c") (= "=") (pointer_expression "&stack0x00000014" (& "&") (identifier "stack0x00000014"))) (; ";")) (expression_statement "local_84 = &stack0x0000000c;" (assignment_expression "local_84 = &stack0x0000000c" (identifier "local_84") (= "=") (pointer_expression "&stack0x0000000c" (& "&") (identifier "stack0x0000000c"))) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = &PTR_DAT_005ea860;" (assignment_expression "local_68 = &PTR_DAT_005ea860" (identifier "local_68") (= "=") (pointer_expression "&PTR_DAT_005ea860" (& "&") (identifier "PTR_DAT_005ea860"))) (; ";")) (expression_statement "local_70 = FUN_003bf470;" (assignment_expression "local_70 = FUN_003bf470" (identifier "local_70") (= "=") (identifier "FUN_003bf470")) (; ";")) (expression_statement "puVar15 = auStack_8c;" (assignment_expression "puVar15 = auStack_8c" (identifier "puVar15") (= "=") (identifier "auStack_8c")) (; ";")) (labeled_statement "LAB_003c8b6b:\n  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);" (statement_identifier "LAB_003c8b6b") (: ":") (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x10)" (( "(") (binary_expression "puVar15 + 0x10" (identifier "puVar15") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 8)" (( "(") (binary_expression "puVar15 + 8" (identifier "puVar15") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3c8b7b")) (; ";")) (expression_statement "cVar6 = FUN_003c8240();" (assignment_expression "cVar6 = FUN_003c8240()" (identifier "cVar6") (= "=") (call_expression "FUN_003c8240()" (identifier "FUN_003c8240") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }" (if "if") (parenthesized_expression "((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18))" (( "(") (binary_expression "(cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)" (parenthesized_expression "(cVar6 == '\x01')" (( "(") (binary_expression "cVar6 == '\x01'" (identifier "cVar6") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(uint *)(puVar15 + 0xc) <= uVar18)" (( "(") (binary_expression "*(uint *)(puVar15 + 0xc) <= uVar18" (pointer_expression "*(uint *)(puVar15 + 0xc)" (* "*") (cast_expression "(uint *)(puVar15 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xc)" (( "(") (binary_expression "puVar15 + 0xc" (identifier "puVar15") (+ "+") (number_literal "0xc")) () ")")))) (<= "<=") (identifier "uVar18")) () ")"))) () ")")) (compound_statement "{\n    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }\n    puVar5 = *(undefined4 **)(puVar15 + 0x90);\n    uVar12 = *(undefined4 *)(puVar15 + 0x9c);\n    *puVar5 = *(undefined4 *)(puVar15 + 0x98);\n    puVar5[1] = uVar12;\n    return puVar5;\n  }" ({ "{") (if_statement "if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }" (if "if") (parenthesized_expression "((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc)))" (( "(") (binary_expression "(*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))" (parenthesized_expression "(*(int *)(puVar15 + 0x38) != 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x38) != 0" (pointer_expression "*(int *)(puVar15 + 0x38)" (* "*") (cast_expression "(int *)(puVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar18 != *(uint *)(puVar15 + 0xc))" (( "(") (binary_expression "uVar18 != *(uint *)(puVar15 + 0xc)" (identifier "uVar18") (!= "!=") (pointer_expression "*(uint *)(puVar15 + 0xc)" (* "*") (cast_expression "(uint *)(puVar15 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xc)" (( "(") (binary_expression "puVar15 + 0xc" (identifier "puVar15") (+ "+") (number_literal "0xc")) () ")"))))) () ")"))) () ")")) (compound_statement "{\nLAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;\n    }" ({ "{") (labeled_statement "LAB_003c8cde:\n      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;" (statement_identifier "LAB_003c8cde") (: ":") (expression_statement "**(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;" (assignment_expression "**(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4" (pointer_expression "**(uint **)(puVar15 + 0xac)" (* "*") (pointer_expression "*(uint **)(puVar15 + 0xac)" (* "*") (cast_expression "(uint **)(puVar15 + 0xac)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")"))))) (= "=") (binary_expression "**(uint **)(puVar15 + 0xac) | 4" (pointer_expression "**(uint **)(puVar15 + 0xac)" (* "*") (pointer_expression "*(uint **)(puVar15 + 0xac)" (* "*") (cast_expression "(uint **)(puVar15 + 0xac)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")"))))) (| "|") (number_literal "4"))) (; ";"))) (} "}"))) (expression_statement "puVar5 = *(undefined4 **)(puVar15 + 0x90);" (assignment_expression "puVar5 = *(undefined4 **)(puVar15 + 0x90)" (identifier "puVar5") (= "=") (pointer_expression "*(undefined4 **)(puVar15 + 0x90)" (* "*") (cast_expression "(undefined4 **)(puVar15 + 0x90)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x90)" (( "(") (binary_expression "puVar15 + 0x90" (identifier "puVar15") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "uVar12 = *(undefined4 *)(puVar15 + 0x9c)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*puVar5 = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*puVar5 = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "puVar5[1] = uVar12;" (assignment_expression "puVar5[1] = uVar12" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x38) != 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x38) != 0" (pointer_expression "*(int *)(puVar15 + 0x38)" (* "*") (cast_expression "(int *)(puVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8cde;" (goto "goto") (statement_identifier "LAB_003c8cde") (; ";"))) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" (* "*") (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + uVar18)" (( "(") (binary_expression "*(int *)(puVar15 + 0xb4) + uVar18" (pointer_expression "*(int *)(puVar15 + 0xb4)" (* "*") (cast_expression "(int *)(puVar15 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xb4)" (( "(") (binary_expression "puVar15 + 0xb4" (identifier "puVar15") (+ "+") (number_literal "0xb4")) () ")")))) (+ "+") (identifier "uVar18")) () ")"))))) (; ";")) (expression_statement "uVar14 = (uint)bVar8;" (assignment_expression "uVar14 = (uint)bVar8" (identifier "uVar14") (= "=") (cast_expression "(uint)bVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar8"))) (; ";")) (expression_statement "*(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);" (assignment_expression "*(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" (pointer_expression "*(byte **)(puVar15 + 0x14)" (* "*") (cast_expression "(byte **)(puVar15 + 0x14)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x14)" (( "(") (binary_expression "puVar15 + 0x14" (identifier "puVar15") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + uVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + uVar18)" (( "(") (binary_expression "*(int *)(puVar15 + 0xb4) + uVar18" (pointer_expression "*(int *)(puVar15 + 0xb4)" (* "*") (cast_expression "(int *)(puVar15 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xb4)" (( "(") (binary_expression "puVar15 + 0xb4" (identifier "puVar15") (+ "+") (number_literal "0xb4")) () ")")))) (+ "+") (identifier "uVar18")) () ")")))) (; ";")) (expression_statement "*(uint *)(puVar15 + 4) = uVar18 + 1;" (assignment_expression "*(uint *)(puVar15 + 4) = uVar18 + 1" (pointer_expression "*(uint *)(puVar15 + 4)" (* "*") (cast_expression "(uint *)(puVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + uVar14 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + uVar14 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + uVar14 + 0x11d" (binary_expression "(int)piVar10 + uVar14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "0x11d")) () ")"))))) (; ";")) (if_statement "if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }\nLAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);\n    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;\n    cVar7 = FUN_003c04a0();\n    if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    goto LAB_003c8b6b;\n  }" ({ "{") (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar10 + 0x20)" (* "*") (cast_expression "(code **)(*piVar10 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar10 + 0x20)" (( "(") (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" (identifier "bVar9") (= "=") (identifier "bVar8")) (; ";")) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }" (if "if") (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" (( "(") (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" (identifier "pcVar4") (!= "!=") (cast_expression "(code *)PTR_FUN_005e9f90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_005e9f90"))) () ")")) (compound_statement "{\n      *(uint *)(puVar15 + 0x20) = uVar14;\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;\n      bVar9 = (*pcVar4)();\n      uVar14 = *(uint *)(puVar15 + 0x20);\n    }" ({ "{") (expression_statement "*(uint *)(puVar15 + 0x20) = uVar14;" (assignment_expression "*(uint *)(puVar15 + 0x20) = uVar14" (pointer_expression "*(uint *)(puVar15 + 0x20)" (* "*") (cast_expression "(uint *)(puVar15 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x20)" (( "(") (binary_expression "puVar15 + 0x20" (identifier "puVar15") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (cast_expression "(int)(char)bVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar8")))) (; ";")) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" (* "*") (cast_expression "(int **)(puVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8d20" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3c8d20")) (; ";")) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" (identifier "bVar9") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar14 = *(uint *)(puVar15 + 0x20);" (assignment_expression "uVar14 = *(uint *)(puVar15 + 0x20)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(puVar15 + 0x20)" (* "*") (cast_expression "(uint *)(puVar15 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x20)" (( "(") (binary_expression "puVar15 + 0x20" (identifier "puVar15") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }" (if "if") (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;\n      goto LAB_003c8be0;\n    }" ({ "{") (expression_statement "*(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + uVar14 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + uVar14 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + uVar14 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + uVar14 + 0x11d" (binary_expression "(int)piVar10 + uVar14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "uVar14")) (+ "+") (number_literal "0x11d")) () ")")))) (= "=") (identifier "bVar9")) (; ";")) (goto_statement "goto LAB_003c8be0;" (goto "goto") (statement_identifier "LAB_003c8be0") (; ";")) (} "}"))) (labeled_statement "LAB_003c8c50:\n    cVar6 = **(char **)(puVar15 + 0x14);" (statement_identifier "LAB_003c8c50") (: ":") (expression_statement "cVar6 = **(char **)(puVar15 + 0x14);" (assignment_expression "cVar6 = **(char **)(puVar15 + 0x14)" (identifier "cVar6") (= "=") (pointer_expression "**(char **)(puVar15 + 0x14)" (* "*") (pointer_expression "*(char **)(puVar15 + 0x14)" (* "*") (cast_expression "(char **)(puVar15 + 0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x14)" (( "(") (binary_expression "puVar15 + 0x14" (identifier "puVar15") (+ "+") (number_literal "0x14")) () ")")))))) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -4) = 0x3c8c67;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = 0x3c8c67" (pointer_expression "*(undefined4 *)(puVar15 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x3c8c67")) (; ";")) (expression_statement "cVar7 = FUN_003c04a0();" (assignment_expression "cVar7 = FUN_003c04a0()" (identifier "cVar7") (= "=") (call_expression "FUN_003c04a0()" (identifier "FUN_003c04a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar6 == cVar7) {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }\n    else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" (if "if") (parenthesized_expression "(cVar6 == cVar7)" (( "(") (binary_expression "cVar6 == cVar7" (identifier "cVar6") (== "==") (identifier "cVar7")) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8daf" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3c8daf")) (; ";")) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" (identifier "FUN_003b97a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar18 = *(uint *)(puVar15 + 4);" (assignment_expression "uVar18 = *(uint *)(puVar15 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(puVar15 + 4)" (* "*") (cast_expression "(uint *)(puVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" (else "else") (compound_statement "{\n      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;\n      uVar18 = *(uint *)(puVar15 + 4);\n    }" ({ "{") (expression_statement "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" (assignment_expression "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" (* "*") (cast_expression "(uint *)(puVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" (* "*") (cast_expression "(uint *)(puVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")")))) (| "|") (number_literal "4"))) (; ";")) (expression_statement "uVar18 = *(uint *)(puVar15 + 4);" (assignment_expression "uVar18 = *(uint *)(puVar15 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(puVar15 + 4)" (* "*") (cast_expression "(uint *)(puVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (goto_statement "goto LAB_003c8b6b;" (goto "goto") (statement_identifier "LAB_003c8b6b") (; ";")) (} "}"))) (labeled_statement "LAB_003c8be0:\n  if (bVar9 != 0x25) goto LAB_003c8c50;" (statement_identifier "LAB_003c8be0") (: ":") (if_statement "if (bVar9 != 0x25) goto LAB_003c8c50;" (if "if") (parenthesized_expression "(bVar9 != 0x25)" (( "(") (binary_expression "bVar9 != 0x25" (identifier "bVar9") (!= "!=") (number_literal "0x25")) () ")")) (goto_statement "goto LAB_003c8c50;" (goto "goto") (statement_identifier "LAB_003c8c50") (; ";")))) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" (* "*") (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + 1 + uVar18)" (( "(") (binary_expression "*(int *)(puVar15 + 0xb4) + 1 + uVar18" (binary_expression "*(int *)(puVar15 + 0xb4) + 1" (pointer_expression "*(int *)(puVar15 + 0xb4)" (* "*") (cast_expression "(int *)(puVar15 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xb4)" (( "(") (binary_expression "puVar15 + 0xb4" (identifier "puVar15") (+ "+") (number_literal "0xb4")) () ")")))) (+ "+") (number_literal "1")) (+ "+") (identifier "uVar18")) () ")"))))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar8")) (+ "+") (number_literal "0x11d")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15;" (assignment_expression "puVar16 = puVar15" (identifier "puVar16") (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (bVar9 == 0) {\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar4 = *(code **)(*piVar10 + 0x20);\n    bVar9 = bVar8;\n    if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }\n    if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }\n    goto LAB_003c8d88;\n  }" ({ "{") (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar10 + 0x20)" (* "*") (cast_expression "(code **)(*piVar10 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar10 + 0x20)" (( "(") (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" (identifier "bVar9") (= "=") (identifier "bVar8")) (; ";")) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }" (if "if") (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" (( "(") (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" (identifier "pcVar4") (!= "!=") (cast_expression "(code *)PTR_FUN_005e9f90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_005e9f90"))) () ")")) (compound_statement "{\n      *(undefined4 *)(puVar15 + -8) = 0;\n      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n      *(int **)(puVar15 + -0x10) = piVar10;\n      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;\n      bVar9 = (*pcVar4)();\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (cast_expression "(int)(char)bVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar8")))) (; ";")) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" (* "*") (cast_expression "(int **)(puVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3c8ddc")) (; ";")) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" (identifier "bVar9") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (bVar9 != 0) {\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }" (if "if") (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n      goto LAB_003c8c21;\n    }" ({ "{") (expression_statement "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar8")) (+ "+") (number_literal "0x11d")) () ")")))) (= "=") (identifier "bVar9")) (; ";")) (goto_statement "goto LAB_003c8c21;" (goto "goto") (statement_identifier "LAB_003c8c21") (; ";")) (} "}"))) (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";")) (} "}"))) (labeled_statement "LAB_003c8c21:\n  *(undefined4 *)(puVar15 + 0x3c) = 0;" (statement_identifier "LAB_003c8c21") (: ":") (expression_statement "*(undefined4 *)(puVar15 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(puVar15 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x3c)" (( "(") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (if_statement "if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }" (if "if") (parenthesized_expression "((bVar9 == 0x45) || (bVar9 == 0x4f))" (( "(") (binary_expression "(bVar9 == 0x45) || (bVar9 == 0x4f)" (parenthesized_expression "(bVar9 == 0x45)" (( "(") (binary_expression "bVar9 == 0x45" (identifier "bVar9") (== "==") (number_literal "0x45")) () ")")) (|| "||") (parenthesized_expression "(bVar9 == 0x4f)" (( "(") (binary_expression "bVar9 == 0x4f" (identifier "bVar9") (== "==") (number_literal "0x4f")) () ")"))) () ")")) (compound_statement "{\n    *(uint *)(puVar15 + 4) = uVar18 + 2;\n    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);\n    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);\n    if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }\n  }" ({ "{") (expression_statement "*(uint *)(puVar15 + 4) = uVar18 + 2;" (assignment_expression "*(uint *)(puVar15 + 4) = uVar18 + 2" (pointer_expression "*(uint *)(puVar15 + 4)" (* "*") (cast_expression "(uint *)(puVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "uVar18 + 2" (identifier "uVar18") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);" (assignment_expression "bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" (* "*") (cast_expression "(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xb4) + 2 + uVar18)" (( "(") (binary_expression "*(int *)(puVar15 + 0xb4) + 2 + uVar18" (binary_expression "*(int *)(puVar15 + 0xb4) + 2" (pointer_expression "*(int *)(puVar15 + 0xb4)" (* "*") (cast_expression "(int *)(puVar15 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xb4)" (( "(") (binary_expression "puVar15 + 0xb4" (identifier "puVar15") (+ "+") (number_literal "0xb4")) () ")")))) (+ "+") (number_literal "2")) (+ "+") (identifier "uVar18")) () ")"))))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);" (assignment_expression "bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar8")) (+ "+") (number_literal "0x11d")) () ")"))))) (; ";")) (if_statement "if (bVar9 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar9 = bVar8;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }\n      if (bVar9 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;\n    }" ({ "{") (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar10 + 0x20)" (* "*") (cast_expression "(code **)(*piVar10 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar10 + 0x20)" (( "(") (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "bVar9 = bVar8;" (assignment_expression "bVar9 = bVar8" (identifier "bVar9") (= "=") (identifier "bVar8")) (; ";")) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }" (if "if") (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" (( "(") (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" (identifier "pcVar4") (!= "!=") (cast_expression "(code *)PTR_FUN_005e9f90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_005e9f90"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;\n        bVar9 = (*pcVar4)();\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar8;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar8" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (cast_expression "(int)(char)bVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar8")))) (; ";")) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" (* "*") (cast_expression "(int **)(puVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x3c964c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x3c964c" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x3c964c")) (; ";")) (expression_statement "bVar9 = (*pcVar4)();" (assignment_expression "bVar9 = (*pcVar4)()" (identifier "bVar9") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (bVar9 == 0) goto LAB_003c8d88;" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";"))) (expression_statement "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;" (assignment_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9" (pointer_expression "*(byte *)((int)piVar10 + bVar8 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar8 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar8 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar8 + 0x11d" (binary_expression "(int)piVar10 + bVar8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar8")) (+ "+") (number_literal "0x11d")) () ")")))) (= "=") (identifier "bVar9")) (; ";")) (} "}"))) (} "}"))) (switch_statement "switch(bVar9) {\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }" (switch "switch") (parenthesized_expression "(bVar9)" (( "(") (identifier "bVar9") () ")")) (compound_statement "{\n  case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;\n  case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;\n  case 0x43:\n  case 0x59:\n  case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;\n  default:\n    goto LAB_003c8d88;\n  case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;\n  case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;\n  case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;\n  case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;\n  case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;\n  case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x62:\n  case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;\n  case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;\n  case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;\n  case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;\n  case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;\n  case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;\n  }" ({ "{") (case_statement "case 0x41:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);\n    uVar12 = *(undefined4 *)(iVar1 + 0x44);\n    goto code_r0x003c9204;" (case "case") (number_literal "0x41") (: ":") (expression_statement "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" (( "(") (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" (* "*") (cast_expression "(int *)(puVar15 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x18)" (( "(") (binary_expression "puVar15 + 0x18" (identifier "puVar15") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x40)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x40)" (( "(") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);" (assignment_expression "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30)" (pointer_expression "*(undefined4 *)(puVar15 + 0x44)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x44)" (( "(") (binary_expression "puVar15 + 0x44" (identifier "puVar15") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x30)" (( "(") (binary_expression "iVar1 + 0x30" (identifier "iVar1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);" (assignment_expression "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34)" (pointer_expression "*(undefined4 *)(puVar15 + 0x48)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x48)" (( "(") (binary_expression "puVar15 + 0x48" (identifier "puVar15") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x34)" (( "(") (binary_expression "iVar1 + 0x34" (identifier "iVar1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);" (assignment_expression "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38)" (pointer_expression "*(undefined4 *)(puVar15 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x4c)" (( "(") (binary_expression "puVar15 + 0x4c" (identifier "puVar15") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x38)" (( "(") (binary_expression "iVar1 + 0x38" (identifier "iVar1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x50)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x50)" (( "(") (binary_expression "puVar15 + 0x50" (identifier "puVar15") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x3c)" (( "(") (binary_expression "iVar1 + 0x3c" (identifier "iVar1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);" (assignment_expression "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40)" (pointer_expression "*(undefined4 *)(puVar15 + 0x54)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x54)" (( "(") (binary_expression "puVar15 + 0x54" (identifier "puVar15") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x40)" (( "(") (binary_expression "iVar1 + 0x40" (identifier "iVar1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(iVar1 + 0x44);" (assignment_expression "uVar12 = *(undefined4 *)(iVar1 + 0x44)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x44)" (( "(") (binary_expression "iVar1 + 0x44" (identifier "iVar1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (goto_statement "goto code_r0x003c9204;" (goto "goto") (statement_identifier "code_r0x003c9204") (; ";"))) (case_statement "case 0x42:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;\n    FUN_003c2320();\n    goto code_r0x003c92a1;" (case "case") (number_literal "0x42") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x18)" (( "(") (binary_expression "puVar15 + 0x18" (identifier "puVar15") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c92a1" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003c92a1" (& "&") (identifier "UNK_003c92a1"))) (; ";")) (expression_statement "FUN_003c2320();" (call_expression "FUN_003c2320()" (identifier "FUN_003c2320") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x003c92a1;" (goto "goto") (statement_identifier "code_r0x003c92a1") (; ";"))) (case_statement "case 0x43:" (case "case") (number_literal "0x43") (: ":")) (case_statement "case 0x59:" (case "case") (number_literal "0x59") (: ":")) (case_statement "case 0x79:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 4;\n    *(undefined4 *)(puVar15 + -0x10) = 9999;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x79") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 4;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 4" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 9999;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 9999" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "9999")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9367;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9367" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c9367" (& "&") (identifier "UNK_003c9367"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = *(int *)(puVar15 + 0x38);\n      iVar13 = iVar1 + -0x76c;\n      if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "iVar1 = *(int *)(puVar15 + 0x38);" (assignment_expression "iVar1 = *(int *)(puVar15 + 0x38)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(puVar15 + 0x38)" (* "*") (cast_expression "(int *)(puVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "iVar13 = iVar1 + -0x76c;" (assignment_expression "iVar13 = iVar1 + -0x76c" (identifier "iVar13") (= "=") (binary_expression "iVar1 + -0x76c" (identifier "iVar1") (+ "+") (number_literal "-0x76c"))) (; ";")) (if_statement "if (iVar1 < 0) {\n        iVar13 = iVar1 + 100;\n      }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar13 = iVar1 + 100;\n      }" ({ "{") (expression_statement "iVar13 = iVar1 + 100;" (assignment_expression "iVar13 = iVar1 + 100" (identifier "iVar13") (= "=") (binary_expression "iVar1 + 100" (identifier "iVar1") (+ "+") (number_literal "100"))) (; ";")) (} "}"))) (expression_statement "*(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;" (assignment_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13" (pointer_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + 0xac) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x14)" (( "(") (binary_expression "*(int *)(puVar15 + 0xac) + 0x14" (pointer_expression "*(int *)(puVar15 + 0xac)" (* "*") (cast_expression "(int *)(puVar15 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x44:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2987;\n    pcVar11 = "%m/%d/%y";\n    goto code_r0x003c8f72;" (case "case") (number_literal "0x44") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_004a2987;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_004a2987" (pointer_expression "*(undefined **)(puVar15 + -8)" (* "*") (cast_expression "(undefined **)(puVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&UNK_004a2987" (& "&") (identifier "UNK_004a2987"))) (; ";")) (expression_statement "pcVar11 = "%m/%d/%y";" (assignment_expression "pcVar11 = "%m/%d/%y"" (identifier "pcVar11") (= "=") (string_literal ""%m/%d/%y"" (" """) (string_content "%m/%d/%y") (" """))) (; ";")) (goto_statement "goto code_r0x003c8f72;" (goto "goto") (statement_identifier "code_r0x003c8f72") (; ";"))) (case_statement "default:\n    goto LAB_003c8d88;" (default "default") (: ":") (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";"))) (case_statement "case 0x48:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x17;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    goto code_r0x003c8e76;" (case "case") (number_literal "0x48") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x17;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x17" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x17")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x003c8e76;" (goto "goto") (statement_identifier "code_r0x003c8e76") (; ";"))) (case_statement "case 0x49:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\ncode_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x49") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "1")) (; ";")) (labeled_statement "code_r0x003c8e76:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (statement_identifier "code_r0x003c8e76") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c8ea4" (& "&") (identifier "UNK_003c8ea4"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 8)" (( "(") (binary_expression "*(int *)(puVar15 + 0xac) + 8" (pointer_expression "*(int *)(puVar15 + 0xac)" (* "*") (cast_expression "(int *)(puVar15 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x4d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x4d") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x3b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x3b" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x3b")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8f24" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c8f24" (& "&") (identifier "UNK_003c8f24"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 4)" (( "(") (binary_expression "*(int *)(puVar15 + 0xac) + 4" (pointer_expression "*(int *)(puVar15 + 0xac)" (* "*") (cast_expression "(int *)(puVar15 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x52:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &DAT_004a298d;\n    pcVar11 = "%H:%M";\n    goto code_r0x003c8f72;" (case "case") (number_literal "0x52") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -8) = &DAT_004a298d;" (assignment_expression "*(undefined **)(puVar15 + -8) = &DAT_004a298d" (pointer_expression "*(undefined **)(puVar15 + -8)" (* "*") (cast_expression "(undefined **)(puVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&DAT_004a298d" (& "&") (identifier "DAT_004a298d"))) (; ";")) (expression_statement "pcVar11 = "%H:%M";" (assignment_expression "pcVar11 = "%H:%M"" (identifier "pcVar11") (= "=") (string_literal ""%H:%M"" (" """) (string_content "%H:%M") (" """))) (; ";")) (goto_statement "goto code_r0x003c8f72;" (goto "goto") (statement_identifier "code_r0x003c8f72") (; ";"))) (case_statement "case 0x53:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x3c;\n    *(undefined4 *)(puVar15 + -0x14) = 0;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x53") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x3c;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x3c" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c8fcc" (& "&") (identifier "UNK_003c8fcc"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "**(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "**(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "**(undefined4 **)(puVar15 + 0xac)" (* "*") (pointer_expression "*(undefined4 **)(puVar15 + 0xac)" (* "*") (cast_expression "(undefined4 **)(puVar15 + 0xac)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")"))))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x54:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;\n    *(undefined **)(puVar15 + -8) = &UNK_004a2996;\n    pcVar11 = "%H:%M:%S";\ncode_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;\n    *(int **)(puVar15 + -0x10) = piVar10;\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;\n    FUN_003c07a0();\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    goto code_r0x003c8e00;" (case "case") (number_literal "0x54") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_004a2996;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_004a2996" (pointer_expression "*(undefined **)(puVar15 + -8)" (* "*") (cast_expression "(undefined **)(puVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&UNK_004a2996" (& "&") (identifier "UNK_004a2996"))) (; ";")) (expression_statement "pcVar11 = "%H:%M:%S";" (assignment_expression "pcVar11 = "%H:%M:%S"" (identifier "pcVar11") (= "=") (string_literal ""%H:%M:%S"" (" """) (string_content "%H:%M:%S") (" """))) (; ";")) (labeled_statement "code_r0x003c8f72:\n    *(char **)(puVar15 + -0xc) = pcVar11;" (statement_identifier "code_r0x003c8f72") (: ":") (expression_statement "*(char **)(puVar15 + -0xc) = pcVar11;" (assignment_expression "*(char **)(puVar15 + -0xc) = pcVar11" (pointer_expression "*(char **)(puVar15 + -0xc)" (* "*") (cast_expression "(char **)(puVar15 + -0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "pcVar11")) (; ";"))) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" (* "*") (cast_expression "(int **)(puVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c8f79" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003c8f79" (& "&") (identifier "UNK_003c8f79"))) (; ";")) (expression_statement "FUN_003c07a0();" (call_expression "FUN_003c07a0()" (identifier "FUN_003c07a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (goto_statement "goto code_r0x003c8e00;" (goto "goto") (statement_identifier "code_r0x003c8e00") (; ";"))) (case_statement "case 0x58:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;\n    goto code_r0x003c8e00;" (case "case") (number_literal "0x58") (: ":") (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)\n    ;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" (* "*") (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)" (( "(") (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" (( "(") (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" (* "*") (cast_expression "(int *)(puVar15 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x18)" (( "(") (binary_expression "puVar15 + 0x18" (identifier "puVar15") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto code_r0x003c8e00;" (goto "goto") (statement_identifier "code_r0x003c8e00") (; ";"))) (case_statement "case 0x5a:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9050;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;\n    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;\n    puVar2 = puVar15 + 0x38;\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xe;\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);\n    puVar3 = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar3;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);\n    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;\n    cVar6 = FUN_003c8240();\n    puVar16 = puVar15 + -4;\n    if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;\n    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;\n    uVar12 = FUN_003c04a0();\n    iVar1 = piVar10[7];\n    *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n    if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }\n    if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }\n    *(undefined1 **)(puVar15 + -8) = puVar2;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x10) = 2;\n    *(undefined4 *)(puVar15 + -0x14) = 0x17;\n    *(undefined4 *)(puVar15 + -0x18) = 0;\n    *(undefined1 **)(puVar15 + -0x1c) = puVar3;\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);\n    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined1 **)(puVar15 + -0xc) = puVar2;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x14) = 2;\n    *(undefined4 *)(puVar15 + -0x18) = 0x3b;\n    *(undefined4 *)(puVar15 + -0x1c) = 0;\n    *(undefined1 **)(puVar15 + -0x20) = puVar3;\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);\n    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);\n    puVar17 = puVar15 + -0x38;\n    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);\n    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;\n    FUN_003c33b0();\n    goto code_r0x003c8e3c;" (case "case") (number_literal "0x5a") (: ":") (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c9050;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c9050" (pointer_expression "*(undefined **)(puVar15 + -4)" (* "*") (cast_expression "(undefined **)(puVar15 + -4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&UNK_003c9050" (& "&") (identifier "UNK_003c9050"))) (; ";")) (expression_statement "uVar18 = FUN_003c04a0();" (assignment_expression "uVar18 = FUN_003c04a0()" (identifier "uVar18") (= "=") (call_expression "FUN_003c04a0()" (identifier "FUN_003c04a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;" (if "if") (parenthesized_expression "((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1)" (( "(") (binary_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1" (pointer_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" (* "*") (cast_expression "(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" (( "(") (binary_expression "piVar10[6] + 1 + (uVar18 & 0xff) * 2" (binary_expression "piVar10[6] + 1" (subscript_expression "piVar10[6]" (identifier "piVar10") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "1")) (+ "+") (binary_expression "(uVar18 & 0xff) * 2" (parenthesized_expression "(uVar18 & 0xff)" (( "(") (binary_expression "uVar18 & 0xff" (identifier "uVar18") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";"))) (expression_statement "*(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + 0x14)" (* "*") (cast_expression "(undefined1 **)(puVar15 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x14)" (( "(") (binary_expression "puVar15 + 0x14" (identifier "puVar15") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "puVar2 = puVar15 + 0x38;" (assignment_expression "puVar2 = puVar15 + 0x38" (identifier "puVar2") (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xe;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xe" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0xe")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar3 = puVar15 + 0x40;" (assignment_expression "puVar3 = puVar15 + 0x40" (identifier "puVar3") (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c90ac" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c90ac" (& "&") (identifier "UNK_003c90ac"))) (; ";")) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" (identifier "FUN_003c82f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xc)" (( "(") (binary_expression "puVar15 + 0xc" (identifier "puVar15") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;" (assignment_expression "*(undefined **)(puVar15 + -0x18) = &UNK_003c90d2" (pointer_expression "*(undefined **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "&UNK_003c90d2" (& "&") (identifier "UNK_003c90d2"))) (; ";")) (expression_statement "cVar6 = FUN_003c8240();" (assignment_expression "cVar6 = FUN_003c8240()" (identifier "cVar6") (= "=") (call_expression "FUN_003c8240()" (identifier "FUN_003c8240") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if ((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))\n    break;" (if "if") (parenthesized_expression "((cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))" (( "(") (binary_expression "(cVar6 != '\0') ||\n       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0)" (parenthesized_expression "(cVar6 != '\0')" (( "(") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0)" (( "(") (comma_expression "puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (, ",") (binary_expression "*(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0" (binary_expression "*(int *)(puVar15 + 0x34) != 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(puVar15 + 0x3c) != 0" (pointer_expression "*(int *)(puVar15 + 0x3c)" (* "*") (cast_expression "(int *)(puVar15 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x3c)" (( "(") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c")) () ")")))) (!= "!=") (number_literal "0")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c90fb;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c90fb" (pointer_expression "*(undefined **)(puVar15 + -8)" (* "*") (cast_expression "(undefined **)(puVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&UNK_003c90fb" (& "&") (identifier "UNK_003c90fb"))) (; ";")) (expression_statement "uVar12 = FUN_003c04a0();" (assignment_expression "uVar12 = FUN_003c04a0()" (identifier "uVar12") (= "=") (call_expression "FUN_003c04a0()" (identifier "FUN_003c04a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = piVar10[7];" (assignment_expression "iVar1 = piVar10[7]" (identifier "iVar1") (= "=") (subscript_expression "piVar10[7]" (identifier "piVar10") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x1c)" (( "(") (binary_expression "puVar15 + 0x1c" (identifier "puVar15") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (if_statement "if ((char)iVar1 == '\0') {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }\n    else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" (if "if") (parenthesized_expression "((char)iVar1 == '\0')" (( "(") (binary_expression "(char)iVar1 == '\0'" (cast_expression "(char)iVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(undefined **)(puVar15 + -8) = &UNK_003c9691;\n      cVar6 = FUN_003c04f0();\n    }" ({ "{") (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c9691;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c9691" (pointer_expression "*(undefined **)(puVar15 + -8)" (* "*") (cast_expression "(undefined **)(puVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&UNK_003c9691" (& "&") (identifier "UNK_003c9691"))) (; ";")) (expression_statement "cVar6 = FUN_003c04f0();" (assignment_expression "cVar6 = FUN_003c04f0()" (identifier "cVar6") (= "=") (call_expression "FUN_003c04f0()" (identifier "FUN_003c04f0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" (else "else") (compound_statement "{\n      cVar6 = *(char *)((int)piVar10 + 0x4a);\n    }" ({ "{") (expression_statement "cVar6 = *(char *)((int)piVar10 + 0x4a);" (assignment_expression "cVar6 = *(char *)((int)piVar10 + 0x4a)" (identifier "cVar6") (= "=") (pointer_expression "*(char *)((int)piVar10 + 0x4a)" (* "*") (cast_expression "(char *)((int)piVar10 + 0x4a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + 0x4a)" (( "(") (binary_expression "(int)piVar10 + 0x4a" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "0x4a")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (puVar15[0x1c] != cVar6) {\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }" (if "if") (parenthesized_expression "(puVar15[0x1c] != cVar6)" (( "(") (binary_expression "puVar15[0x1c] != cVar6" (subscript_expression "puVar15[0x1c]" (identifier "puVar15") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (identifier "cVar6")) () ")")) (compound_statement "{\n      *(undefined **)(puVar15 + -8) = &UNK_003c9123;\n      uVar12 = FUN_003c04a0();\n      iVar1 = piVar10[7];\n      *(undefined4 *)(puVar15 + 0x1c) = uVar12;\n      if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }\n      puVar16 = puVar15 + -4;\n      if (puVar15[0x1c] != cVar6) break;\n    }" ({ "{") (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c9123;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c9123" (pointer_expression "*(undefined **)(puVar15 + -8)" (* "*") (cast_expression "(undefined **)(puVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&UNK_003c9123" (& "&") (identifier "UNK_003c9123"))) (; ";")) (expression_statement "uVar12 = FUN_003c04a0();" (assignment_expression "uVar12 = FUN_003c04a0()" (identifier "uVar12") (= "=") (call_expression "FUN_003c04a0()" (identifier "FUN_003c04a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = piVar10[7];" (assignment_expression "iVar1 = piVar10[7]" (identifier "iVar1") (= "=") (subscript_expression "piVar10[7]" (identifier "piVar10") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x1c)" (( "(") (binary_expression "puVar15 + 0x1c" (identifier "puVar15") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (if_statement "if ((char)iVar1 == '\0') {\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }\n      else {\n        cVar6 = (char)piVar10[0x12];\n      }" (if "if") (parenthesized_expression "((char)iVar1 == '\0')" (( "(") (binary_expression "(char)iVar1 == '\0'" (cast_expression "(char)iVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;\n        cVar6 = FUN_003c04f0();\n      }" ({ "{") (expression_statement "*(undefined **)(puVar15 + -8) = &UNK_003c96a2;" (assignment_expression "*(undefined **)(puVar15 + -8) = &UNK_003c96a2" (pointer_expression "*(undefined **)(puVar15 + -8)" (* "*") (cast_expression "(undefined **)(puVar15 + -8)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "&UNK_003c96a2" (& "&") (identifier "UNK_003c96a2"))) (; ";")) (expression_statement "cVar6 = FUN_003c04f0();" (assignment_expression "cVar6 = FUN_003c04f0()" (identifier "cVar6") (= "=") (call_expression "FUN_003c04f0()" (identifier "FUN_003c04f0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        cVar6 = (char)piVar10[0x12];\n      }" (else "else") (compound_statement "{\n        cVar6 = (char)piVar10[0x12];\n      }" ({ "{") (expression_statement "cVar6 = (char)piVar10[0x12];" (assignment_expression "cVar6 = (char)piVar10[0x12]" (identifier "cVar6") (= "=") (cast_expression "(char)piVar10[0x12]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar10[0x12]" (identifier "piVar10") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (} "}")))) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (puVar15[0x1c] != cVar6) break;" (if "if") (parenthesized_expression "(puVar15[0x1c] != cVar6)" (( "(") (binary_expression "puVar15[0x1c] != cVar6" (subscript_expression "puVar15[0x1c]" (identifier "puVar15") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (identifier "cVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 0x17;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 0x17" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x17")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x1c) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x1c) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);" (assignment_expression "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90)" (pointer_expression "*(undefined4 *)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x90)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x90)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x90)" (( "(") (binary_expression "puVar15 + 0x90" (identifier "puVar15") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);" (assignment_expression "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10)" (pointer_expression "*(undefined4 *)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x10)" (( "(") (binary_expression "puVar15 + 0x10" (identifier "puVar15") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x38) = &UNK_003c917a;" (assignment_expression "*(undefined **)(puVar15 + -0x38) = &UNK_003c917a" (pointer_expression "*(undefined **)(puVar15 + -0x38)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x38)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x38)" (( "(") (binary_expression "puVar15 + -0x38" (identifier "puVar15") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (pointer_expression "&UNK_003c917a" (& "&") (identifier "UNK_003c917a"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);" (assignment_expression "*(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20)" (pointer_expression "*(undefined4 *)(puVar15 + 0x90)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x90)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x90)" (( "(") (binary_expression "puVar15 + 0x90" (identifier "puVar15") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x20)" (( "(") (binary_expression "puVar15 + 0x20" (identifier "puVar15") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar2;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar2" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = 0x3b;" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = 0x3b" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x3b")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x20) = puVar3;" (assignment_expression "*(undefined1 **)(puVar15 + -0x20) = puVar3" (pointer_expression "*(undefined1 **)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);" (assignment_expression "*(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20)" (pointer_expression "*(undefined4 *)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x20)" (( "(") (binary_expression "puVar15 + 0x20" (identifier "puVar15") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x8c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x8c)" (( "(") (binary_expression "puVar15 + 0x8c" (identifier "puVar15") (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (expression_statement "puVar17 = puVar15 + -0x38;" (assignment_expression "puVar17 = puVar15 + -0x38" (identifier "puVar17") (= "=") (binary_expression "puVar15 + -0x38" (identifier "puVar15") (+ "+") (number_literal "-0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);" (assignment_expression "*(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc)" (pointer_expression "*(undefined4 *)(puVar15 + -0x38)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x38)" (( "(") (binary_expression "puVar15 + -0x38" (identifier "puVar15") (+ "+") (number_literal "-0x38")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xc)" (( "(") (binary_expression "puVar15 + 0xc" (identifier "puVar15") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;" (assignment_expression "*(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2" (pointer_expression "*(undefined **)(puVar15 + -0x3c)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x3c)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x3c)" (( "(") (binary_expression "puVar15 + -0x3c" (identifier "puVar15") (+ "+") (number_literal "-0x3c")) () ")")))) (= "=") (pointer_expression "&UNK_003c91c2" (& "&") (identifier "UNK_003c91c2"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x003c8e3c;" (goto "goto") (statement_identifier "code_r0x003c8e3c") (; ";"))) (case_statement "case 0x61:\n    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);\n    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);\n    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);\n    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);\n    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);\n    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);\n    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);\n    uVar12 = *(undefined4 *)(iVar1 + 0x60);\ncode_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 7;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x61") (: ":") (expression_statement "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);" (assignment_expression "iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" (( "(") (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" (* "*") (cast_expression "(int *)(puVar15 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x18)" (( "(") (binary_expression "puVar15 + 0x18" (identifier "puVar15") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);" (assignment_expression "*(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48)" (pointer_expression "*(undefined4 *)(puVar15 + 0x40)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x40)" (( "(") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x48)" (( "(") (binary_expression "iVar1 + 0x48" (identifier "iVar1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x44)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x44)" (( "(") (binary_expression "puVar15 + 0x44" (identifier "puVar15") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x4c)" (( "(") (binary_expression "iVar1 + 0x4c" (identifier "iVar1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);" (assignment_expression "*(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50)" (pointer_expression "*(undefined4 *)(puVar15 + 0x48)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x48)" (( "(") (binary_expression "puVar15 + 0x48" (identifier "puVar15") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x50)" (( "(") (binary_expression "iVar1 + 0x50" (identifier "iVar1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);" (assignment_expression "*(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54)" (pointer_expression "*(undefined4 *)(puVar15 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x4c)" (( "(") (binary_expression "puVar15 + 0x4c" (identifier "puVar15") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x54)" (( "(") (binary_expression "iVar1 + 0x54" (identifier "iVar1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);" (assignment_expression "*(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58)" (pointer_expression "*(undefined4 *)(puVar15 + 0x50)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x50)" (( "(") (binary_expression "puVar15 + 0x50" (identifier "puVar15") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x58)" (( "(") (binary_expression "iVar1 + 0x58" (identifier "iVar1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);" (assignment_expression "*(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c)" (pointer_expression "*(undefined4 *)(puVar15 + 0x54)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x54)" (( "(") (binary_expression "puVar15 + 0x54" (identifier "puVar15") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x5c)" (( "(") (binary_expression "iVar1 + 0x5c" (identifier "iVar1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(iVar1 + 0x60);" (assignment_expression "uVar12 = *(undefined4 *)(iVar1 + 0x60)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x60)" (( "(") (binary_expression "iVar1 + 0x60" (identifier "iVar1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (labeled_statement "code_r0x003c9204:\n    *(undefined4 *)(puVar15 + 0x58) = uVar12;" (statement_identifier "code_r0x003c9204") (: ":") (expression_statement "*(undefined4 *)(puVar15 + 0x58) = uVar12;" (assignment_expression "*(undefined4 *)(puVar15 + 0x58) = uVar12" (pointer_expression "*(undefined4 *)(puVar15 + 0x58)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x58)" (( "(") (binary_expression "puVar15 + 0x58" (identifier "puVar15") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (identifier "uVar12")) (; ";"))) (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 7;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 7" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "7")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9250;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9250" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c9250" (& "&") (identifier "UNK_003c9250"))) (; ";")) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" (identifier "FUN_003c82f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x18)" (( "(") (binary_expression "*(int *)(puVar15 + 0xac) + 0x18" (pointer_expression "*(int *)(puVar15 + 0xac)" (* "*") (cast_expression "(int *)(puVar15 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x62:" (case "case") (number_literal "0x62") (: ":")) (case_statement "case 0x68:\n    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;\n    FUN_003c2390();\ncode_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;\n    FUN_003c82f0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x68") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x18)" (( "(") (binary_expression "puVar15 + 0x18" (identifier "puVar15") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9441;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9441" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003c9441" (& "&") (identifier "UNK_003c9441"))) (; ";")) (expression_statement "FUN_003c2390();" (call_expression "FUN_003c2390()" (identifier "FUN_003c2390") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "code_r0x003c92a1:\n    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" (statement_identifier "code_r0x003c92a1") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -8) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -8)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -8)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "puVar15 + 0x40" (identifier "puVar15") (+ "+") (number_literal "0x40"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c92e5" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c92e5" (& "&") (identifier "UNK_003c92e5"))) (; ";")) (expression_statement "FUN_003c82f0();" (call_expression "FUN_003c82f0()" (identifier "FUN_003c82f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x10)" (( "(") (binary_expression "*(int *)(puVar15 + 0xac) + 0x10" (pointer_expression "*(int *)(puVar15 + 0xac)" (* "*") (cast_expression "(int *)(puVar15 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 99:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;\n    goto code_r0x003c8e00;" (case "case") (number_literal "99") (: ":") (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)\n    ;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" (* "*") (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)" (( "(") (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" (( "(") (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" (* "*") (cast_expression "(int *)(puVar15 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x18)" (( "(") (binary_expression "puVar15 + 0x18" (identifier "puVar15") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (goto_statement "goto code_r0x003c8e00;" (goto "goto") (statement_identifier "code_r0x003c8e00") (; ";"))) (case_statement "case 100:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    goto code_r0x003c9486;" (case "case") (number_literal "100") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x1f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x1f" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x1f")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto code_r0x003c9486;" (goto "goto") (statement_identifier "code_r0x003c9486") (; ";"))) (case_statement "case 0x65:\n    *(undefined **)(puVar15 + -4) = &UNK_003c9500;\n    uVar18 = FUN_003c04a0();\n    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }\ncode_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x65") (: ":") (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c9500;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c9500" (pointer_expression "*(undefined **)(puVar15 + -4)" (* "*") (cast_expression "(undefined **)(puVar15 + -4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&UNK_003c9500" (& "&") (identifier "UNK_003c9500"))) (; ";")) (expression_statement "uVar18 = FUN_003c04a0();" (assignment_expression "uVar18 = FUN_003c04a0()" (identifier "uVar18") (= "=") (call_expression "FUN_003c04a0()" (identifier "FUN_003c04a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }\n    else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" (if "if") (parenthesized_expression "((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0" (parenthesized_expression "(*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20)" (( "(") (binary_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20" (pointer_expression "*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" (* "*") (cast_expression "(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar10[6] + 1 + (uVar18 & 0xff) * 2)" (( "(") (binary_expression "piVar10[6] + 1 + (uVar18 & 0xff) * 2" (binary_expression "piVar10[6] + 1" (subscript_expression "piVar10[6]" (identifier "piVar10") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "1")) (+ "+") (binary_expression "(uVar18 & 0xff) * 2" (parenthesized_expression "(uVar18 & 0xff)" (( "(") (binary_expression "uVar18 & 0xff" (identifier "uVar18") (& "&") (number_literal "0xff")) () ")")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 2;\n      *(undefined4 *)(puVar15 + -0x10) = 0x1f;\n      *(undefined4 *)(puVar15 + -0x14) = 10;\n    }" ({ "{") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0x1f;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0x1f" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x1f")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 10;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 10" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "10")) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;\n      FUN_003b97a0();\n      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n      *(undefined4 *)(puVar15 + -0xc) = 1;\n      *(undefined4 *)(puVar15 + -0x10) = 9;\n      *(undefined4 *)(puVar15 + -0x14) = 1;\n    }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9520;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9520" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003c9520" (& "&") (identifier "UNK_003c9520"))) (; ";")) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" (identifier "FUN_003b97a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 9;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 9" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "9")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "code_r0x003c9486:\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (statement_identifier "code_r0x003c9486") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";"))) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c94b4" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c94b4" (& "&") (identifier "UNK_003c94b4"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);" (assignment_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38)" (pointer_expression "*(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc)" (* "*") (cast_expression "(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0xc)" (( "(") (binary_expression "*(int *)(puVar15 + 0xac) + 0xc" (pointer_expression "*(int *)(puVar15 + 0xac)" (* "*") (cast_expression "(int *)(puVar15 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x38)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x6d:\n    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0xc) = 2;\n    *(undefined4 *)(puVar15 + -0x10) = 0xc;\n    *(undefined4 *)(puVar15 + -0x14) = 1;\n    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;\n    FUN_003c33b0();\n    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);\n    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);\n    puVar16 = puVar15 + -4;\n    if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }\n    break;" (case "case") (number_literal "0x6d") (: ":") (expression_statement "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -4) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc) = 2;" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = 2" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = 1;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = 1" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;" (assignment_expression "*(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c" (pointer_expression "*(undefined1 **)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (binary_expression "puVar15 + 0x3c" (identifier "puVar15") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c9594;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c9594" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c9594" (& "&") (identifier "UNK_003c9594"))) (; ";")) (expression_statement "FUN_003c33b0();" (call_expression "FUN_003c33b0()" (identifier "FUN_003c33b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);" (assignment_expression "*(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24)" (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x24)" (( "(") (binary_expression "puVar15 + 0x24" (identifier "puVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);" (assignment_expression "*(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28)" (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x28)" (( "(") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (if_statement "if (*(int *)(puVar15 + 0x34) == 0) {\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }" (if "if") (parenthesized_expression "(*(int *)(puVar15 + 0x34) == 0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x34) == 0" (pointer_expression "*(int *)(puVar15 + 0x34)" (* "*") (cast_expression "(int *)(puVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x34)" (( "(") (binary_expression "puVar15 + 0x34" (identifier "puVar15") (+ "+") (number_literal "0x34")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;\n      puVar16 = puVar15 + -4;\n    }" ({ "{") (expression_statement "*(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;" (assignment_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1" (pointer_expression "*(int *)(*(int *)(puVar15 + 0xac) + 0x10)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + 0xac) + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0xac) + 0x10)" (( "(") (binary_expression "*(int *)(puVar15 + 0xac) + 0x10" (pointer_expression "*(int *)(puVar15 + 0xac)" (* "*") (cast_expression "(int *)(puVar15 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xac)" (( "(") (binary_expression "puVar15 + 0xac" (identifier "puVar15") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(int *)(puVar15 + 0x38) + -1" (pointer_expression "*(int *)(puVar15 + 0x38)" (* "*") (cast_expression "(int *)(puVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar16 = puVar15 + -4;" (assignment_expression "puVar16 = puVar15 + -4" (identifier "puVar16") (= "=") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x6e:\n    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 != 10) goto LAB_003c8d88;\ncode_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;\n    FUN_003b97a0();\n    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;\n    break;" (case "case") (number_literal "0x6e") (: ":") (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c95e0;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c95e0" (pointer_expression "*(undefined **)(puVar15 + -4)" (* "*") (cast_expression "(undefined **)(puVar15 + -4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&UNK_003c95e0" (& "&") (identifier "UNK_003c95e0"))) (; ";")) (expression_statement "bVar9 = FUN_003c04a0();" (assignment_expression "bVar9 = FUN_003c04a0()" (identifier "bVar9") (= "=") (call_expression "FUN_003c04a0()" (identifier "FUN_003c04a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);" (assignment_expression "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar9")) (+ "+") (number_literal "0x11d")) () ")"))))) (; ";")) (if_statement "if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" (if "if") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" ({ "{") (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar10 + 0x20)" (* "*") (cast_expression "(code **)(*piVar10 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar10 + 0x20)" (( "(") (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "bVar8 = bVar9;" (assignment_expression "bVar8 = bVar9" (identifier "bVar8") (= "=") (identifier "bVar9")) (; ";")) (if_statement "if (pcVar4 != (code *)PTR_FUN_005e9f90) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }" (if "if") (parenthesized_expression "(pcVar4 != (code *)PTR_FUN_005e9f90)" (( "(") (binary_expression "pcVar4 != (code *)PTR_FUN_005e9f90" (identifier "pcVar4") (!= "!=") (cast_expression "(code *)PTR_FUN_005e9f90" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_005e9f90"))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;\n        bVar8 = (*pcVar4)();\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar9;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar9" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (cast_expression "(int)(char)bVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar9")))) (; ";")) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" (* "*") (cast_expression "(int **)(puVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c967b;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c967b" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003c967b" (& "&") (identifier "UNK_003c967b"))) (; ";")) (expression_statement "bVar8 = (*pcVar4)();" (assignment_expression "bVar8 = (*pcVar4)()" (identifier "bVar8") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (bVar8 == 0) goto LAB_003c8d88;" (if "if") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";"))) (expression_statement "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;" (assignment_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8" (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar9")) (+ "+") (number_literal "0x11d")) () ")")))) (= "=") (identifier "bVar8")) (; ";")) (} "}"))) (if_statement "if (bVar8 != 10) goto LAB_003c8d88;" (if "if") (parenthesized_expression "(bVar8 != 10)" (( "(") (binary_expression "bVar8 != 10" (identifier "bVar8") (!= "!=") (number_literal "10")) () ")")) (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";"))) (labeled_statement "code_r0x003c9616:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (statement_identifier "code_r0x003c9616") (: ":") (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";"))) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c9625;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c9625" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003c9625" (& "&") (identifier "UNK_003c9625"))) (; ";")) (expression_statement "FUN_003b97a0();" (call_expression "FUN_003b97a0()" (identifier "FUN_003b97a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar15 + 0x9c) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x74:\n    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;\n    bVar9 = FUN_003c04a0();\n    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);\n    if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }\n    if (bVar8 == 9) goto code_r0x003c9616;\n    goto LAB_003c8d88;" (case "case") (number_literal "0x74") (: ":") (expression_statement "*(undefined **)(puVar15 + -4) = &UNK_003c8d40;" (assignment_expression "*(undefined **)(puVar15 + -4) = &UNK_003c8d40" (pointer_expression "*(undefined **)(puVar15 + -4)" (* "*") (cast_expression "(undefined **)(puVar15 + -4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&UNK_003c8d40" (& "&") (identifier "UNK_003c8d40"))) (; ";")) (expression_statement "bVar9 = FUN_003c04a0();" (assignment_expression "bVar9 = FUN_003c04a0()" (identifier "bVar9") (= "=") (call_expression "FUN_003c04a0()" (identifier "FUN_003c04a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);" (assignment_expression "bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar9")) (+ "+") (number_literal "0x11d")) () ")"))))) (; ";")) (if_statement "if (bVar8 == 0) {\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" (if "if") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar4 = *(code **)(*piVar10 + 0x20);\n      bVar8 = bVar9;\n      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }\n      if (bVar8 == 0) goto LAB_003c8d88;\n      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;\n    }" ({ "{") (expression_statement "pcVar4 = *(code **)(*piVar10 + 0x20);" (assignment_expression "pcVar4 = *(code **)(*piVar10 + 0x20)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar10 + 0x20)" (* "*") (cast_expression "(code **)(*piVar10 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar10 + 0x20)" (( "(") (binary_expression "*piVar10 + 0x20" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "bVar8 = bVar9;" (assignment_expression "bVar8 = bVar9" (identifier "bVar8") (= "=") (identifier "bVar9")) (; ";")) (if_statement "if (pcVar4 != *(code **)(puVar15 + 0x1c)) {\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }" (if "if") (parenthesized_expression "(pcVar4 != *(code **)(puVar15 + 0x1c))" (( "(") (binary_expression "pcVar4 != *(code **)(puVar15 + 0x1c)" (identifier "pcVar4") (!= "!=") (pointer_expression "*(code **)(puVar15 + 0x1c)" (* "*") (cast_expression "(code **)(puVar15 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x1c)" (( "(") (binary_expression "puVar15 + 0x1c" (identifier "puVar15") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (compound_statement "{\n        *(undefined4 *)(puVar15 + -8) = 0;\n        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;\n        *(int **)(puVar15 + -0x10) = piVar10;\n        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;\n        bVar8 = (*pcVar4)();\n      }" ({ "{") (expression_statement "*(undefined4 *)(puVar15 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar15 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar15 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar15 + -0xc) = (int)(char)bVar9;" (assignment_expression "*(int *)(puVar15 + -0xc) = (int)(char)bVar9" (pointer_expression "*(int *)(puVar15 + -0xc)" (* "*") (cast_expression "(int *)(puVar15 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (cast_expression "(int)(char)bVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar9")))) (; ";")) (expression_statement "*(int **)(puVar15 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar15 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar15 + -0x10)" (* "*") (cast_expression "(int **)(puVar15 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;" (assignment_expression "*(undefined **)(puVar15 + -0x14) = &UNK_003c8d68" (pointer_expression "*(undefined **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003c8d68" (& "&") (identifier "UNK_003c8d68"))) (; ";")) (expression_statement "bVar8 = (*pcVar4)();" (assignment_expression "bVar8 = (*pcVar4)()" (identifier "bVar8") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (bVar8 == 0) goto LAB_003c8d88;" (if "if") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";"))) (expression_statement "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;" (assignment_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8" (pointer_expression "*(byte *)((int)piVar10 + bVar9 + 0x11d)" (* "*") (cast_expression "(byte *)((int)piVar10 + bVar9 + 0x11d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + bVar9 + 0x11d)" (( "(") (binary_expression "(int)piVar10 + bVar9 + 0x11d" (binary_expression "(int)piVar10 + bVar9" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "bVar9")) (+ "+") (number_literal "0x11d")) () ")")))) (= "=") (identifier "bVar8")) (; ";")) (} "}"))) (if_statement "if (bVar8 == 9) goto code_r0x003c9616;" (if "if") (parenthesized_expression "(bVar8 == 9)" (( "(") (binary_expression "bVar8 == 9" (identifier "bVar8") (== "==") (number_literal "9")) () ")")) (goto_statement "goto code_r0x003c9616;" (goto "goto") (statement_identifier "code_r0x003c9616") (; ";"))) (goto_statement "goto LAB_003c8d88;" (goto "goto") (statement_identifier "LAB_003c8d88") (; ";"))) (case_statement "case 0x78:\n    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);\ncode_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);\n    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;\n    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);\n    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);\n    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);\n    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);\n    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);\n    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);\n    puVar17 = puVar15 + -0x30;\n    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;\n    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;\n    FUN_003c8af0();\ncode_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);\n    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);\n    puVar16 = puVar17 + 0x2c;" (case "case") (number_literal "0x78") (: ":") (expression_statement "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8)" (( "(") (binary_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8" (pointer_expression "*(int *)(*(int *)(puVar15 + 0x18) + 8)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + 0x18) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + 0x18) + 8)" (( "(") (binary_expression "*(int *)(puVar15 + 0x18) + 8" (pointer_expression "*(int *)(puVar15 + 0x18)" (* "*") (cast_expression "(int *)(puVar15 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x18)" (( "(") (binary_expression "puVar15 + 0x18" (identifier "puVar15") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (labeled_statement "code_r0x003c8e00:\n    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);" (statement_identifier "code_r0x003c8e00") (: ":") (expression_statement "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xb0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xb0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xb0)" (( "(") (binary_expression "puVar15 + 0xb0" (identifier "puVar15") (+ "+") (number_literal "0xb0")) () ")"))))) (; ";"))) (expression_statement "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;" (assignment_expression "*(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38" (pointer_expression "*(undefined1 **)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);" (assignment_expression "*(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8)" (pointer_expression "*(undefined4 *)(puVar15 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x18)" (( "(") (binary_expression "puVar15 + -0x18" (identifier "puVar15") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa8)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa8)" (( "(") (binary_expression "puVar15 + 0xa8" (identifier "puVar15") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);" (assignment_expression "*(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4)" (pointer_expression "*(undefined4 *)(puVar15 + -0x1c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x1c)" (( "(") (binary_expression "puVar15 + -0x1c" (identifier "puVar15") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa4)" (( "(") (binary_expression "puVar15 + 0xa4" (identifier "puVar15") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);" (assignment_expression "*(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0)" (pointer_expression "*(undefined4 *)(puVar15 + -0x20)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x20)" (( "(") (binary_expression "puVar15 + -0x20" (identifier "puVar15") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0xa0)" (( "(") (binary_expression "puVar15 + 0xa0" (identifier "puVar15") (+ "+") (number_literal "0xa0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x24)" (( "(") (binary_expression "puVar15 + -0x24" (identifier "puVar15") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x9c)" (( "(") (binary_expression "puVar15 + 0x9c" (identifier "puVar15") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x28)" (( "(") (binary_expression "puVar15 + -0x28" (identifier "puVar15") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x98)" (( "(") (binary_expression "puVar15 + 0x98" (identifier "puVar15") (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0x2c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x2c)" (( "(") (binary_expression "puVar15 + -0x2c" (identifier "puVar15") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + 0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + 0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x94)" (( "(") (binary_expression "puVar15 + 0x94" (identifier "puVar15") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (expression_statement "puVar17 = puVar15 + -0x30;" (assignment_expression "puVar17 = puVar15 + -0x30" (identifier "puVar17") (= "=") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30"))) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;" (assignment_expression "*(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28" (pointer_expression "*(undefined1 **)(puVar15 + -0x30)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0x30)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x30)" (( "(") (binary_expression "puVar15 + -0x30" (identifier "puVar15") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (binary_expression "puVar15 + 0x28" (identifier "puVar15") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;" (assignment_expression "*(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c" (pointer_expression "*(undefined **)(puVar15 + -0x34)" (* "*") (cast_expression "(undefined **)(puVar15 + -0x34)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x34)" (( "(") (binary_expression "puVar15 + -0x34" (identifier "puVar15") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (pointer_expression "&UNK_003c8e3c" (& "&") (identifier "UNK_003c8e3c"))) (; ";")) (expression_statement "FUN_003c8af0();" (call_expression "FUN_003c8af0()" (identifier "FUN_003c8af0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "code_r0x003c8e3c:\n    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);" (statement_identifier "code_r0x003c8e3c") (: ":") (expression_statement "*(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);" (assignment_expression "*(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54)" (pointer_expression "*(undefined4 *)(puVar17 + 0xc4)" (* "*") (cast_expression "(undefined4 *)(puVar17 + 0xc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0xc4)" (( "(") (binary_expression "puVar17 + 0xc4" (identifier "puVar17") (+ "+") (number_literal "0xc4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar17 + 0x54)" (* "*") (cast_expression "(undefined4 *)(puVar17 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x54)" (( "(") (binary_expression "puVar17 + 0x54" (identifier "puVar17") (+ "+") (number_literal "0x54")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);" (assignment_expression "*(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58)" (pointer_expression "*(undefined4 *)(puVar17 + 200)" (* "*") (cast_expression "(undefined4 *)(puVar17 + 200)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 200)" (( "(") (binary_expression "puVar17 + 200" (identifier "puVar17") (+ "+") (number_literal "200")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar17 + 0x58)" (* "*") (cast_expression "(undefined4 *)(puVar17 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 0x58)" (( "(") (binary_expression "puVar17 + 0x58" (identifier "puVar17") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "puVar16 = puVar17 + 0x2c;" (assignment_expression "puVar16 = puVar17 + 0x2c" (identifier "puVar16") (= "=") (binary_expression "puVar17 + 0x2c" (identifier "puVar17") (+ "+") (number_literal "0x2c"))) (; ";"))) (} "}"))) (labeled_statement "code_r0x003c8d90:\n  uVar18 = *(int *)(puVar16 + 4) + 1;" (statement_identifier "code_r0x003c8d90") (: ":") (expression_statement "uVar18 = *(int *)(puVar16 + 4) + 1;" (assignment_expression "uVar18 = *(int *)(puVar16 + 4) + 1" (identifier "uVar18") (= "=") (binary_expression "*(int *)(puVar16 + 4) + 1" (pointer_expression "*(int *)(puVar16 + 4)" (* "*") (cast_expression "(int *)(puVar16 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + 4)" (( "(") (binary_expression "puVar16 + 4" (identifier "puVar16") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "puVar15 = puVar16;" (assignment_expression "puVar15 = puVar16" (identifier "puVar15") (= "=") (identifier "puVar16")) (; ";")) (goto_statement "goto LAB_003c8b6b;" (goto "goto") (statement_identifier "LAB_003c8b6b") (; ";")) (labeled_statement "LAB_003c8d88:\n  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" (statement_identifier "LAB_003c8d88") (: ":") (expression_statement "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;" (assignment_expression "*(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" (* "*") (cast_expression "(uint *)(puVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "*(uint *)(puVar15 + 0x38) | 4" (pointer_expression "*(uint *)(puVar15 + 0x38)" (* "*") (cast_expression "(uint *)(puVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38)" (( "(") (binary_expression "puVar15 + 0x38" (identifier "puVar15") (+ "+") (number_literal "0x38")) () ")")))) (| "|") (number_literal "4"))) (; ";"))) (goto_statement "goto code_r0x003c8d90;" (goto "goto") (statement_identifier "code_r0x003c8d90") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >
   >::_M_extract_via_format(std::istreambuf_iterator<char, std::char_traits<char> >,
   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*,
   char const*) const */

void std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::
     _M_extract_via_format(void)

{
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (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: (number_literal))))) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_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: (identifier) right: (number_literal))))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_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: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (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: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (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: (number_literal))))) right: (number_literal)))) (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: (identifier) right: (number_literal)))))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (identifier))))))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (identifier))))))) (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier))) (case_statement (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_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: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) consequence: (break_statement)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_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: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_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: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_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: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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: (number_literal))))) right: (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: (number_literal))))) right: (number_literal))))) (goto_statement label: (statement_identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

undefined4 * MASKED(void)

{
  int iVar1;
  undefined1 *puVar2;
  undefined1 *puVar3;
  code *pcVar4;
  undefined4 *puVar5;
  char cVar6;
  char cVar7;
  byte bVar8;
  byte bVar9;
  int *piVar10;
  char *pcVar11;
  undefined4 uVar12;
  int iVar13;
  uint uVar14;
  undefined1 *puVar15;
  undefined1 *puVar16;
  undefined1 *puVar17;
  uint uVar18;
  int in_stack_0000001c;
  char *in_stack_00000028;
  undefined1 auStack_8c [8];
  undefined1 *local_84;
  size_t local_80;
  undefined1 *local_7c;
  undefined4 local_74;
  code *local_70;
  undefined **local_68;
  undefined4 local_54;
  undefined4 uStack_14;
  
  uVar18 = 0;
  uStack_14 = 0x3c8afb;
  iVar1 = in_stack_0000001c + 0x6c;
  local_74 = FUN_003c4a50(iVar1);
  piVar10 = (int *)FUN_003c30b0(iVar1);
  local_80 = strlen(in_stack_00000028);
  local_7c = &stack0x00000014;
  local_84 = &stack0x0000000c;
  local_54 = 0;
  local_68 = &PTR_DAT_005ea860;
  local_70 = FUN_003bf470;
  puVar15 = auStack_8c;
LAB_003c8b6b:
  *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0x10);
  *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 8);
  *(undefined4 *)(puVar15 + -0x14) = 0x3c8b7b;
  cVar6 = FUN_003c8240();
  if ((cVar6 == '\x01') || (*(uint *)(puVar15 + 0xc) <= uVar18)) {
    if ((*(int *)(puVar15 + 0x38) != 0) || (uVar18 != *(uint *)(puVar15 + 0xc))) {
LAB_003c8cde:
      **(uint **)(puVar15 + 0xac) = **(uint **)(puVar15 + 0xac) | 4;
    }
    puVar5 = *(undefined4 **)(puVar15 + 0x90);
    uVar12 = *(undefined4 *)(puVar15 + 0x9c);
    *puVar5 = *(undefined4 *)(puVar15 + 0x98);
    puVar5[1] = uVar12;
    return puVar5;
  }
  if (*(int *)(puVar15 + 0x38) != 0) goto LAB_003c8cde;
  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + uVar18);
  uVar14 = (uint)bVar8;
  *(byte **)(puVar15 + 0x14) = (byte *)(*(int *)(puVar15 + 0xb4) + uVar18);
  *(uint *)(puVar15 + 4) = uVar18 + 1;
  bVar9 = *(byte *)((int)piVar10 + uVar14 + 0x11d);
  if (bVar9 == 0) {
    pcVar4 = *(code **)(*piVar10 + 0x20);
    bVar9 = bVar8;
    if (pcVar4 != (code *)PTR_FUN_005e9f90) {
      *(uint *)(puVar15 + 0x20) = uVar14;
      *(undefined4 *)(puVar15 + -8) = 0;
      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;
      *(int **)(puVar15 + -0x10) = piVar10;
      *(undefined4 *)(puVar15 + -0x14) = 0x3c8d20;
      bVar9 = (*pcVar4)();
      uVar14 = *(uint *)(puVar15 + 0x20);
    }
    if (bVar9 != 0) {
      *(byte *)((int)piVar10 + uVar14 + 0x11d) = bVar9;
      goto LAB_003c8be0;
    }
LAB_003c8c50:
    cVar6 = **(char **)(puVar15 + 0x14);
    *(undefined4 *)(puVar15 + -4) = 0x3c8c67;
    cVar7 = FUN_003c04a0();
    if (cVar6 == cVar7) {
      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);
      *(undefined4 *)(puVar15 + -0x14) = 0x3c8daf;
      FUN_003b97a0();
      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;
      uVar18 = *(uint *)(puVar15 + 4);
    }
    else {
      *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;
      uVar18 = *(uint *)(puVar15 + 4);
    }
    goto LAB_003c8b6b;
  }
LAB_003c8be0:
  if (bVar9 != 0x25) goto LAB_003c8c50;
  bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 1 + uVar18);
  bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);
  puVar16 = puVar15;
  if (bVar9 == 0) {
    pcVar4 = *(code **)(*piVar10 + 0x20);
    bVar9 = bVar8;
    if (pcVar4 != (code *)PTR_FUN_005e9f90) {
      *(undefined4 *)(puVar15 + -8) = 0;
      *(int *)(puVar15 + -0xc) = (int)(char)bVar8;
      *(int **)(puVar15 + -0x10) = piVar10;
      *(undefined4 *)(puVar15 + -0x14) = 0x3c8ddc;
      bVar9 = (*pcVar4)();
    }
    if (bVar9 != 0) {
      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;
      goto LAB_003c8c21;
    }
    goto LAB_003c8d88;
  }
LAB_003c8c21:
  *(undefined4 *)(puVar15 + 0x3c) = 0;
  if ((bVar9 == 0x45) || (bVar9 == 0x4f)) {
    *(uint *)(puVar15 + 4) = uVar18 + 2;
    bVar8 = *(byte *)(*(int *)(puVar15 + 0xb4) + 2 + uVar18);
    bVar9 = *(byte *)((int)piVar10 + bVar8 + 0x11d);
    if (bVar9 == 0) {
      pcVar4 = *(code **)(*piVar10 + 0x20);
      bVar9 = bVar8;
      if (pcVar4 != (code *)PTR_FUN_005e9f90) {
        *(undefined4 *)(puVar15 + -8) = 0;
        *(int *)(puVar15 + -0xc) = (int)(char)bVar8;
        *(int **)(puVar15 + -0x10) = piVar10;
        *(undefined4 *)(puVar15 + -0x14) = 0x3c964c;
        bVar9 = (*pcVar4)();
      }
      if (bVar9 == 0) goto LAB_003c8d88;
      *(byte *)((int)piVar10 + bVar8 + 0x11d) = bVar9;
    }
  }
  switch(bVar9) {
  case 0x41:
    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);
    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x2c);
    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x30);
    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x34);
    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x38);
    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x3c);
    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x40);
    uVar12 = *(undefined4 *)(iVar1 + 0x44);
    goto code_r0x003c9204;
  case 0x42:
    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);
    *(undefined **)(puVar15 + -0x14) = &UNK_003c92a1;
    FUN_003c2320();
    goto code_r0x003c92a1;
  case 0x43:
  case 0x59:
  case 0x79:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 4;
    *(undefined4 *)(puVar15 + -0x10) = 9999;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c9367;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      iVar1 = *(int *)(puVar15 + 0x38);
      iVar13 = iVar1 + -0x76c;
      if (iVar1 < 0) {
        iVar13 = iVar1 + 100;
      }
      *(int *)(*(int *)(puVar15 + 0xac) + 0x14) = iVar13;
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x44:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;
    *(undefined **)(puVar15 + -8) = &UNK_004a2987;
    pcVar11 = "%m/%d/%y";
    goto code_r0x003c8f72;
  default:
    goto LAB_003c8d88;
  case 0x48:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x17;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    goto code_r0x003c8e76;
  case 0x49:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0xc;
    *(undefined4 *)(puVar15 + -0x14) = 1;
code_r0x003c8e76:
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8ea4;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 8) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x4d:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x3b;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8f24;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 4) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x52:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;
    *(undefined **)(puVar15 + -8) = &DAT_004a298d;
    pcVar11 = "%H:%M";
    goto code_r0x003c8f72;
  case 0x53:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x3c;
    *(undefined4 *)(puVar15 + -0x14) = 0;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8fcc;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      **(undefined4 **)(puVar15 + 0xac) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x54:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x40;
    *(undefined **)(puVar15 + -8) = &UNK_004a2996;
    pcVar11 = "%H:%M:%S";
code_r0x003c8f72:
    *(char **)(puVar15 + -0xc) = pcVar11;
    *(int **)(puVar15 + -0x10) = piVar10;
    *(undefined **)(puVar15 + -0x14) = &UNK_003c8f79;
    FUN_003c07a0();
    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;
    goto code_r0x003c8e00;
  case 0x58:
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x10)
    ;
    goto code_r0x003c8e00;
  case 0x5a:
    *(undefined **)(puVar15 + -4) = &UNK_003c9050;
    uVar18 = FUN_003c04a0();
    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 1) == 0) goto LAB_003c8d88;
    *(undefined1 **)(puVar15 + 0x14) = puVar15 + 0x28;
    puVar2 = puVar15 + 0x38;
    *(undefined1 **)(puVar15 + -8) = puVar2;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x10) = 0xe;
    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 0x24);
    puVar3 = puVar15 + 0x40;
    *(undefined1 **)(puVar15 + -0x18) = puVar3;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c90ac;
    FUN_003c82f0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xc);
    *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)(puVar15 + 4);
    *(undefined **)(puVar15 + -0x18) = &UNK_003c90d2;
    cVar6 = FUN_003c8240();
    puVar16 = puVar15 + -4;
    if ((cVar6 != '\0') ||
       (puVar16 = puVar15 + -4, *(int *)(puVar15 + 0x34) != 0 || *(int *)(puVar15 + 0x3c) != 0))
    break;
    *(undefined **)(puVar15 + -8) = &UNK_003c90fb;
    uVar12 = FUN_003c04a0();
    iVar1 = piVar10[7];
    *(undefined4 *)(puVar15 + 0x1c) = uVar12;
    if ((char)iVar1 == '\0') {
      *(undefined **)(puVar15 + -8) = &UNK_003c9691;
      cVar6 = FUN_003c04f0();
    }
    else {
      cVar6 = *(char *)((int)piVar10 + 0x4a);
    }
    if (puVar15[0x1c] != cVar6) {
      *(undefined **)(puVar15 + -8) = &UNK_003c9123;
      uVar12 = FUN_003c04a0();
      iVar1 = piVar10[7];
      *(undefined4 *)(puVar15 + 0x1c) = uVar12;
      if ((char)iVar1 == '\0') {
        *(undefined **)(puVar15 + -8) = &UNK_003c96a2;
        cVar6 = FUN_003c04f0();
      }
      else {
        cVar6 = (char)piVar10[0x12];
      }
      puVar16 = puVar15 + -4;
      if (puVar15[0x1c] != cVar6) break;
    }
    *(undefined1 **)(puVar15 + -8) = puVar2;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x10) = 2;
    *(undefined4 *)(puVar15 + -0x14) = 0x17;
    *(undefined4 *)(puVar15 + -0x18) = 0;
    *(undefined1 **)(puVar15 + -0x1c) = puVar3;
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x90);
    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x10);
    *(undefined **)(puVar15 + -0x38) = &UNK_003c917a;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x90) = *(undefined4 *)(puVar15 + 0x20);
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined1 **)(puVar15 + -0xc) = puVar2;
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x14) = 2;
    *(undefined4 *)(puVar15 + -0x18) = 0x3b;
    *(undefined4 *)(puVar15 + -0x1c) = 0;
    *(undefined1 **)(puVar15 + -0x20) = puVar3;
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + -0x30) = *(undefined4 *)(puVar15 + 0x20);
    *(undefined4 *)(puVar15 + -0x34) = *(undefined4 *)(puVar15 + 0x8c);
    puVar17 = puVar15 + -0x38;
    *(undefined4 *)(puVar15 + -0x38) = *(undefined4 *)(puVar15 + 0xc);
    *(undefined **)(puVar15 + -0x3c) = &UNK_003c91c2;
    FUN_003c33b0();
    goto code_r0x003c8e3c;
  case 0x61:
    iVar1 = *(int *)(*(int *)(puVar15 + 0x18) + 8);
    *(undefined4 *)(puVar15 + 0x40) = *(undefined4 *)(iVar1 + 0x48);
    *(undefined4 *)(puVar15 + 0x44) = *(undefined4 *)(iVar1 + 0x4c);
    *(undefined4 *)(puVar15 + 0x48) = *(undefined4 *)(iVar1 + 0x50);
    *(undefined4 *)(puVar15 + 0x4c) = *(undefined4 *)(iVar1 + 0x54);
    *(undefined4 *)(puVar15 + 0x50) = *(undefined4 *)(iVar1 + 0x58);
    *(undefined4 *)(puVar15 + 0x54) = *(undefined4 *)(iVar1 + 0x5c);
    uVar12 = *(undefined4 *)(iVar1 + 0x60);
code_r0x003c9204:
    *(undefined4 *)(puVar15 + 0x58) = uVar12;
    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x10) = 7;
    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c9250;
    FUN_003c82f0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x18) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x62:
  case 0x68:
    *(undefined1 **)(puVar15 + -0xc) = puVar15 + 0x40;
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x18);
    *(undefined **)(puVar15 + -0x14) = &UNK_003c9441;
    FUN_003c2390();
code_r0x003c92a1:
    *(undefined1 **)(puVar15 + -8) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x10) = 0xc;
    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x40;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c92e5;
    FUN_003c82f0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0x10) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 99:
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 0x18)
    ;
    goto code_r0x003c8e00;
  case 100:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0x1f;
    *(undefined4 *)(puVar15 + -0x14) = 1;
    goto code_r0x003c9486;
  case 0x65:
    *(undefined **)(puVar15 + -4) = &UNK_003c9500;
    uVar18 = FUN_003c04a0();
    if ((*(byte *)(piVar10[6] + 1 + (uVar18 & 0xff) * 2) & 0x20) == 0) {
      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
      *(undefined4 *)(puVar15 + -0xc) = 2;
      *(undefined4 *)(puVar15 + -0x10) = 0x1f;
      *(undefined4 *)(puVar15 + -0x14) = 10;
    }
    else {
      *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);
      *(undefined **)(puVar15 + -0x14) = &UNK_003c9520;
      FUN_003b97a0();
      *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;
      *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
      *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
      *(undefined4 *)(puVar15 + -0xc) = 1;
      *(undefined4 *)(puVar15 + -0x10) = 9;
      *(undefined4 *)(puVar15 + -0x14) = 1;
    }
code_r0x003c9486:
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c94b4;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(undefined4 *)(*(int *)(puVar15 + 0xac) + 0xc) = *(undefined4 *)(puVar15 + 0x38);
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x6d:
    *(undefined1 **)(puVar15 + -4) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -8) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0xc) = 2;
    *(undefined4 *)(puVar15 + -0x10) = 0xc;
    *(undefined4 *)(puVar15 + -0x14) = 1;
    *(undefined1 **)(puVar15 + -0x18) = puVar15 + 0x3c;
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c9594;
    FUN_003c33b0();
    *(undefined4 *)(puVar15 + 0x94) = *(undefined4 *)(puVar15 + 0x24);
    *(undefined4 *)(puVar15 + 0x98) = *(undefined4 *)(puVar15 + 0x28);
    puVar16 = puVar15 + -4;
    if (*(int *)(puVar15 + 0x34) == 0) {
      *(int *)(*(int *)(puVar15 + 0xac) + 0x10) = *(int *)(puVar15 + 0x38) + -1;
      puVar16 = puVar15 + -4;
    }
    break;
  case 0x6e:
    *(undefined **)(puVar15 + -4) = &UNK_003c95e0;
    bVar9 = FUN_003c04a0();
    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);
    if (bVar8 == 0) {
      pcVar4 = *(code **)(*piVar10 + 0x20);
      bVar8 = bVar9;
      if (pcVar4 != (code *)PTR_FUN_005e9f90) {
        *(undefined4 *)(puVar15 + -8) = 0;
        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;
        *(int **)(puVar15 + -0x10) = piVar10;
        *(undefined **)(puVar15 + -0x14) = &UNK_003c967b;
        bVar8 = (*pcVar4)();
      }
      if (bVar8 == 0) goto LAB_003c8d88;
      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;
    }
    if (bVar8 != 10) goto LAB_003c8d88;
code_r0x003c9616:
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined **)(puVar15 + -0x14) = &UNK_003c9625;
    FUN_003b97a0();
    *(undefined4 *)(puVar15 + 0x9c) = 0xffffffff;
    break;
  case 0x74:
    *(undefined **)(puVar15 + -4) = &UNK_003c8d40;
    bVar9 = FUN_003c04a0();
    bVar8 = *(byte *)((int)piVar10 + bVar9 + 0x11d);
    if (bVar8 == 0) {
      pcVar4 = *(code **)(*piVar10 + 0x20);
      bVar8 = bVar9;
      if (pcVar4 != *(code **)(puVar15 + 0x1c)) {
        *(undefined4 *)(puVar15 + -8) = 0;
        *(int *)(puVar15 + -0xc) = (int)(char)bVar9;
        *(int **)(puVar15 + -0x10) = piVar10;
        *(undefined **)(puVar15 + -0x14) = &UNK_003c8d68;
        bVar8 = (*pcVar4)();
      }
      if (bVar8 == 0) goto LAB_003c8d88;
      *(byte *)((int)piVar10 + bVar9 + 0x11d) = bVar8;
    }
    if (bVar8 == 9) goto code_r0x003c9616;
    goto LAB_003c8d88;
  case 0x78:
    *(undefined4 *)(puVar15 + -0xc) = *(undefined4 *)(*(int *)(*(int *)(puVar15 + 0x18) + 8) + 8);
code_r0x003c8e00:
    *(undefined4 *)(puVar15 + -0x10) = *(undefined4 *)(puVar15 + 0xb0);
    *(undefined1 **)(puVar15 + -0x14) = puVar15 + 0x38;
    *(undefined4 *)(puVar15 + -0x18) = *(undefined4 *)(puVar15 + 0xa8);
    *(undefined4 *)(puVar15 + -0x1c) = *(undefined4 *)(puVar15 + 0xa4);
    *(undefined4 *)(puVar15 + -0x20) = *(undefined4 *)(puVar15 + 0xa0);
    *(undefined4 *)(puVar15 + -0x24) = *(undefined4 *)(puVar15 + 0x9c);
    *(undefined4 *)(puVar15 + -0x28) = *(undefined4 *)(puVar15 + 0x98);
    *(undefined4 *)(puVar15 + -0x2c) = *(undefined4 *)(puVar15 + 0x94);
    puVar17 = puVar15 + -0x30;
    *(undefined1 **)(puVar15 + -0x30) = puVar15 + 0x28;
    *(undefined **)(puVar15 + -0x34) = &UNK_003c8e3c;
    MASKED();
code_r0x003c8e3c:
    *(undefined4 *)(puVar17 + 0xc4) = *(undefined4 *)(puVar17 + 0x54);
    *(undefined4 *)(puVar17 + 200) = *(undefined4 *)(puVar17 + 0x58);
    puVar16 = puVar17 + 0x2c;
  }
code_r0x003c8d90:
  uVar18 = *(int *)(puVar16 + 4) + 1;
  puVar15 = puVar16;
  goto LAB_003c8b6b;
LAB_003c8d88:
  *(uint *)(puVar15 + 0x38) = *(uint *)(puVar15 + 0x38) | 4;
  goto code_r0x003c8d90;
}

