
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

int __regparm3 parseHhMmSs(char *zDate,DateTime *p)

{
  byte bVar1;
  double dVar2;
  double dVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  char cVar7;
  byte *pbVar8;
  int in_GS_OFFSET;
  int h;
  int m;
  int s;
  int nHr;
  int nMn;
  int local_20;
  
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar4 = getDigits(zDate,"20c:20e",&h,&m);
  if (iVar4 == 2) {
    pbVar8 = (byte *)(zDate + 5);
    if (zDate[5] == ':') {
      iVar4 = getDigits(zDate + 6,"20e",&s);
      if (iVar4 != 1) goto LAB_00036090;
      pbVar8 = (byte *)(zDate + 8);
      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {
        dVar2 = 1.0;
        pbVar8 = (byte *)(zDate + 9);
        dVar3 = 0.0;
        do {
          cVar7 = (char)uVar6;
          pbVar8 = pbVar8 + 1;
          uVar6 = (uint)*pbVar8;
          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;
          dVar2 = dVar2 * (double)DAT_00107c44;
        } while ((""[uVar6] & 4) != 0);
        dVar2 = dVar3 / dVar2 + (double)s;
      }
      else {
        dVar2 = (double)s + (double)DAT_00107c48;
      }
    }
    else {
      s = 0;
      dVar2 = 0.0;
    }
    p->validHMS = '\x01';
    p->validJD = '\0';
    p->rawS = '\0';
    p->h = h;
    p->s = dVar2;
    p->m = m;
    bVar1 = ""[*pbVar8];
    while ((bVar1 & 1) != 0) {
      pbVar8 = pbVar8 + 1;
      bVar1 = ""[*pbVar8];
    }
    p->tz = 0;
    bVar1 = *pbVar8;
    if (bVar1 == 0x2d) {
      iVar4 = -1;
LAB_000360b5:
      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);
      if (iVar5 != 2) goto LAB_00036090;
      pbVar8 = pbVar8 + 6;
      p->tz = iVar4 * (nHr * 0x3c + nMn);
LAB_000360e9:
      bVar1 = ""[*pbVar8];
      while ((bVar1 & 1) != 0) {
        pbVar8 = pbVar8 + 1;
        bVar1 = ""[*pbVar8];
      }
      p->tzSet = '\x01';
      bVar1 = *pbVar8;
    }
    else {
      if (bVar1 == 0x2b) {
        iVar4 = 1;
        goto LAB_000360b5;
      }
      pbVar8 = pbVar8 + 1;
      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;
    }
    if (bVar1 == 0) {
      p->validTZ = p->tz != 0;
      iVar4 = 0;
      goto LAB_00036095;
    }
  }
LAB_00036090:
  iVar4 = 1;
LAB_00036095:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar4;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



undefined4 FUN_00035fc0(void)

{
  byte bVar1;
  double dVar2;
  double dVar3;
  int iVar4;
  undefined4 uVar5;
  uint uVar6;
  char cVar7;
  int iVar8;
  byte *pbVar9;
  int unaff_EBP;
  int iVar10;
  int in_GS_OFFSET;
  undefined8 uVar11;
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  uVar11 = FUN_00019701();
  iVar8 = (int)((ulonglong)uVar11 >> 0x20);
  iVar10 = (int)uVar11;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);
  if (iVar4 == 2) {
    pbVar9 = (byte *)(iVar10 + 5);
    if (*(char *)(iVar10 + 5) == ':') {
      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);
      if (iVar4 != 1) goto LAB_00036090;
      pbVar9 = (byte *)(iVar10 + 8);
      if ((*(char *)(iVar10 + 8) == '.') &&
         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {
        dVar2 = 1.0;
        pbVar9 = (byte *)(iVar10 + 9);
        dVar3 = 0.0;
        do {
          cVar7 = (char)uVar6;
          pbVar9 = pbVar9 + 1;
          uVar6 = (uint)*pbVar9;
          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -
                  (double)*(float *)(unaff_EBP + 0xd1cda);
          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);
        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);
        dVar2 = dVar3 / dVar2 + (double)local_2c;
      }
      else {
        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);
      }
    }
    else {
      local_2c = 0;
      dVar2 = 0.0;
    }
    *(undefined1 *)(iVar8 + 0x2b) = 1;
    *(undefined2 *)(iVar8 + 0x28) = 0;
    *(undefined4 *)(iVar8 + 0x14) = local_34;
    *(double *)(iVar8 + 0x20) = dVar2;
    *(undefined4 *)(iVar8 + 0x18) = local_30;
    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {
      do {
        pbVar9 = pbVar9 + 1;
      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);
    }
    *(undefined4 *)(iVar8 + 0x1c) = 0;
    bVar1 = *pbVar9;
    if (bVar1 == 0x2d) {
      iVar10 = -1;
LAB_000360b5:
      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);
      if (iVar4 != 2) goto LAB_00036090;
      pbVar9 = pbVar9 + 6;
      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);
LAB_000360e9:
      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {
        do {
          pbVar9 = pbVar9 + 1;
        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);
      }
      *(undefined1 *)(iVar8 + 0x2d) = 1;
      bVar1 = *pbVar9;
    }
    else {
      if (bVar1 == 0x2b) {
        iVar10 = 1;
        goto LAB_000360b5;
      }
      pbVar9 = pbVar9 + 1;
      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;
    }
    if (bVar1 == 0) {
      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;
      uVar5 = 0;
      goto LAB_00036095;
    }
  }
LAB_00036090:
  uVar5 = 1;
LAB_00036095:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000f4bf0();
  }
  return uVar5;
}


PUSH EBP
CALL 0x00019701
ADD EBP,0x112f0e
PUSH EDI
MOV EDI,EAX
PUSH ESI
MOV ESI,EDX
PUSH EBX
SUB ESP,0x3c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x2c],EAX
XOR EAX,EAX
LEA EAX,[ESP + 0x1c]
PUSH EAX
LEA EAX,[ESP + 0x1c]
PUSH EAX
LEA EAX,[EBP + 0xfffad872]
PUSH EAX
PUSH EDI
CALL 0x000223d0
ADD ESP,0x10
CMP EAX,0x2
JNZ 0x00036090
CMP byte ptr [EDI + 0x5],0x3a
LEA EBX,[EDI + 0x5]
JZ 0x00036130
MOV dword ptr [ESP + 0x20],0x0
FLDZ
MOV EAX,dword ptr [ESP + 0x18]
XOR ECX,ECX
MOV byte ptr [ESI + 0x2b],0x1
MOV word ptr [ESI + 0x28],CX
MOV dword ptr [ESI + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x1c]
FSTP qword ptr [ESI + 0x20]
MOV dword ptr [ESI + 0x18],EAX
MOVZX EAX,byte ptr [EBX]
TEST byte ptr [EBP + EAX*0x1 + 0xfffb992c],0x1
JZ 0x0003605c
LEA EAX,[EBP + 0xfffb992c]
LEA ESI,[ESI]
ADD EBX,0x1
MOVZX EDX,byte ptr [EBX]
TEST byte ptr [EAX + EDX*0x1],0x1
JNZ 0x00036050
MOV dword ptr [ESI + 0x1c],0x0
MOVSX EDX,byte ptr [EBX]
MOV EAX,EDX
CMP EDX,0x2d
JZ 0x00036170
CMP EDX,0x2b
JZ 0x000360b0
AND EAX,0xffffffdf
ADD EBX,0x1
CMP AL,0x5a
JZ 0x000360e9
XOR EAX,EAX
TEST EDX,EDX
SETNZ AL
JMP 0x00036118
MOV EAX,0x1
MOV ECX,dword ptr [ESP + 0x2c]
XOR ECX,dword ptr GS:[0x14]
JNZ 0x000361e6
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,0x1
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[EBP + 0xfffad87a]
PUSH EAX
LEA EAX,[EBX + 0x1]
PUSH EAX
CALL 0x000223d0
ADD ESP,0x10
CMP EAX,0x2
JNZ 0x00036090
IMUL EAX,dword ptr [ESP + 0x24],0x3c
ADD EAX,dword ptr [ESP + 0x28]
ADD EBX,0x6
IMUL EDI,EAX
MOV dword ptr [ESI + 0x1c],EDI
MOVZX EAX,byte ptr [EBX]
TEST byte ptr [EBP + EAX*0x1 + 0xfffb992c],0x1
JZ 0x0003610c
LEA EAX,[EBP + 0xfffb992c]
LEA ESI,[ESI]
ADD EBX,0x1
MOVZX EDX,byte ptr [EBX]
TEST byte ptr [EAX + EDX*0x1],0x1
JNZ 0x00036100
XOR EAX,EAX
MOV byte ptr [ESI + 0x2d],0x1
CMP byte ptr [EBX],0x0
SETNZ AL
TEST EAX,EAX
JNZ 0x00036090
MOV EDX,dword ptr [ESI + 0x1c]
TEST EDX,EDX
SETNZ byte ptr [ESI + 0x2c]
JMP 0x00036095
LEA EAX,[ESP + 0x20]
PUSH EAX
LEA EAX,[EBP + 0xfffadaba]
PUSH EAX
LEA EAX,[EDI + 0x6]
PUSH EAX
CALL 0x000223d0
ADD ESP,0xc
CMP EAX,0x1
JNZ 0x00036090
CMP byte ptr [EDI + 0x8],0x2e
LEA EBX,[EDI + 0x8]
FILD dword ptr [ESP + 0x20]
JZ 0x00036180
FADD dword ptr [EBP + 0xfffbed74]
JMP 0x0003601c
MOV EDI,0xffffffff
JMP 0x000360b5
MOVZX EAX,byte ptr [EDI + 0x9]
MOV EDX,EAX
TEST byte ptr [EBP + EAX*0x1 + 0xfffb992c],0x4
JZ 0x0003615e
FLD1
LEA EBX,[EDI + 0x9]
LEA EAX,[EBP + 0xfffb992c]
FLDZ
FLD dword ptr [EBP + 0xfffbed70]
JMP 0x000361ae
FXCH
FXCH ST2
FXCH
FLD ST0
MOVSX DX,DL
ADD EBX,0x1
MOVZX ECX,byte ptr [EBX]
FMUL ST2
MOV word ptr [ESP + 0xe],DX
FILD word ptr [ESP + 0xe]
MOV EDX,ECX
FADDP ST3,ST0
FXCH ST2
FSUB dword ptr [EBP + 0xfffbedcc]
FXCH ST3
FMULP ST2
TEST byte ptr [EAX + ECX*0x1],0x4
JNZ 0x000361a8
FSTP ST0
FDIVP
FADDP
JMP 0x0003601c
CALL 0x000f4bf0
(translation_unit "undefined4 FUN_00035fc0(void)\n\n{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f4bf0();\n  }\n  return uVar5;\n}\n\n" (function_definition "undefined4 FUN_00035fc0(void)\n\n{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f4bf0();\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_00035fc0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f4bf0();\n  }\n  return uVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar11 = FUN_00019701();" (assignment_expression "uVar11 = FUN_00019701()" identifier = (call_expression "FUN_00019701()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar10 = (int)uVar11;" (assignment_expression "iVar10 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);" (assignment_expression "iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" identifier = (call_expression "FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" identifier (argument_list "(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" ( identifier , (binary_expression "&UNK_000c0780 + unaff_EBP" (pointer_expression "&UNK_000c0780" & identifier) + identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) )))) ;) (if_statement "if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }" { (expression_statement "pbVar9 = (byte *)(iVar10 + 5);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 5)" identifier = (cast_expression "(byte *)(iVar10 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 5)" ( (binary_expression "iVar10 + 5" identifier + number_literal) )))) ;) (if_statement "if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" if (parenthesized_expression "(*(char *)(iVar10 + 5) == ':')" ( (binary_expression "*(char *)(iVar10 + 5) == ':'" (pointer_expression "*(char *)(iVar10 + 5)" * (cast_expression "(char *)(iVar10 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 5)" ( (binary_expression "iVar10 + 5" identifier + number_literal) )))) == (char_literal "':'" ' character ')) )) (compound_statement "{\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }" { (expression_statement "iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);" (assignment_expression "iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" identifier = (call_expression "FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" identifier (argument_list "(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" ( (binary_expression "iVar10 + 6" identifier + number_literal) , (binary_expression "&UNK_000c09c8 + unaff_EBP" (pointer_expression "&UNK_000c09c8" & identifier) + identifier) , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if (iVar4 != 1) goto LAB_00036090;" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00036090;" goto statement_identifier ;)) (expression_statement "pbVar9 = (byte *)(iVar10 + 8);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 8)" identifier = (cast_expression "(byte *)(iVar10 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) ;) (if_statement "if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" if (parenthesized_expression "((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0))" ( (binary_expression "(*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" (parenthesized_expression "(*(char *)(iVar10 + 8) == '.')" ( (binary_expression "*(char *)(iVar10 + 8) == '.'" (pointer_expression "*(char *)(iVar10 + 8)" * (cast_expression "(char *)(iVar10 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" ( (comma_expression "uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (assignment_expression "uVar6 = (uint)*(byte *)(iVar10 + 9)" identifier = (binary_expression "(uint)*(byte *)(iVar10 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar10 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 9)" ( (binary_expression "iVar10 + 9" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + uVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + uVar6)" ( (binary_expression "unaff_EBP + 0xcc83a + uVar6" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + identifier) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }" { (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)(iVar10 + 9);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 9)" identifier = (cast_expression "(byte *)(iVar10 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 9)" ( (binary_expression "iVar10 + 9" identifier + number_literal) )))) ;) (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" identifier = number_literal) ;) (do_statement "do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);" do (compound_statement "{\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        }" { (expression_statement "cVar7 = (char)uVar6;" (assignment_expression "cVar7 = (char)uVar6" identifier = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = (uint)*pbVar9;" (assignment_expression "uVar6 = (uint)*pbVar9" identifier = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);" (assignment_expression "dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda)" identifier = (binary_expression "((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda)" (parenthesized_expression "((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e))" ( (binary_expression "(double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)" (cast_expression "(double)(short)cVar7" ( (type_descriptor "double" primitive_type) ) (cast_expression "(short)cVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) + (binary_expression "dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)" identifier * (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1c7e)" * (cast_expression "(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1c7e)" ( (binary_expression "unaff_EBP + 0xd1c7e" identifier + number_literal) ))))))) )) - (cast_expression "(double)*(float *)(unaff_EBP + 0xd1cda)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1cda)" * (cast_expression "(float *)(unaff_EBP + 0xd1cda)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1cda)" ( (binary_expression "unaff_EBP + 0xd1cda" identifier + number_literal) ))))))) ;) (expression_statement "dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);" (assignment_expression "dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e)" identifier = (binary_expression "dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e)" identifier * (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1c7e)" * (cast_expression "(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1c7e)" ( (binary_expression "unaff_EBP + 0xd1c7e" identifier + number_literal) ))))))) ;) }) while (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + uVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + uVar6)" ( (binary_expression "unaff_EBP + 0xcc83a + uVar6" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + identifier) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "dVar2 = dVar3 / dVar2 + (double)local_2c;" (assignment_expression "dVar2 = dVar3 / dVar2 + (double)local_2c" identifier = (binary_expression "dVar3 / dVar2 + (double)local_2c" (binary_expression "dVar3 / dVar2" identifier / identifier) + (cast_expression "(double)local_2c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" else (compound_statement "{\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" { (expression_statement "dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);" (assignment_expression "dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82)" identifier = (binary_expression "(double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82)" (cast_expression "(double)local_2c" ( (type_descriptor "double" primitive_type) ) identifier) + (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c82)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1c82)" * (cast_expression "(float *)(unaff_EBP + 0xd1c82)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1c82)" ( (binary_expression "unaff_EBP + 0xd1c82" identifier + number_literal) ))))))) ;) }))) }) (else_clause "else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" else (compound_statement "{\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }))) (expression_statement "*(undefined1 *)(iVar8 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)(iVar8 + 0x2b) = 1" (pointer_expression "*(undefined1 *)(iVar8 + 0x2b)" * (cast_expression "(undefined1 *)(iVar8 + 0x2b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b)" ( (binary_expression "iVar8 + 0x2b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(iVar8 + 0x28) = 0;" (assignment_expression "*(undefined2 *)(iVar8 + 0x28) = 0" (pointer_expression "*(undefined2 *)(iVar8 + 0x28)" * (cast_expression "(undefined2 *)(iVar8 + 0x28)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x28)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = local_34;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = local_34" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(double *)(iVar8 + 0x20) = dVar2;" (assignment_expression "*(double *)(iVar8 + 0x20) = dVar2" (pointer_expression "*(double *)(iVar8 + 0x20)" * (cast_expression "(double *)(iVar8 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x18) = local_30;" (assignment_expression "*(undefined4 *)(iVar8 + 0x18) = local_30" (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }" { (do_statement "do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);" do (compound_statement "{\n        pbVar9 = pbVar9 + 1;\n      }" { (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) ;) })) (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar1 = *pbVar9;" (assignment_expression "bVar1 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" if (parenthesized_expression "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }" { (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (labeled_statement "LAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);" statement_identifier : (expression_statement "iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);" (assignment_expression "iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" identifier = (call_expression "FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" identifier (argument_list "(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" ( (binary_expression "pbVar9 + 1" identifier + number_literal) , (binary_expression "&UNK_000c0788 + unaff_EBP" (pointer_expression "&UNK_000c0788" & identifier) + identifier) , (pointer_expression "&local_28" & identifier) , (pointer_expression "&local_24" & identifier) )))) ;)) (if_statement "if (iVar4 != 2) goto LAB_00036090;" if (parenthesized_expression "(iVar4 != 2)" ( (binary_expression "iVar4 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00036090;" goto statement_identifier ;)) (expression_statement "pbVar9 = pbVar9 + 6;" (assignment_expression "pbVar9 = pbVar9 + 6" identifier = (binary_expression "pbVar9 + 6" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);" (assignment_expression "*(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24)" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = (binary_expression "iVar10 * (local_28 * 0x3c + local_24)" identifier * (parenthesized_expression "(local_28 * 0x3c + local_24)" ( (binary_expression "local_28 * 0x3c + local_24" (binary_expression "local_28 * 0x3c" identifier * number_literal) + identifier) )))) ;) (labeled_statement "LAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" statement_identifier : (if_statement "if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" { (do_statement "do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);" do (compound_statement "{\n          pbVar9 = pbVar9 + 1;\n        }" { (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) ;) }))) (expression_statement "*(undefined1 *)(iVar8 + 0x2d) = 1;" (assignment_expression "*(undefined1 *)(iVar8 + 0x2d) = 1" (pointer_expression "*(undefined1 *)(iVar8 + 0x2d)" * (cast_expression "(undefined1 *)(iVar8 + 0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2d)" ( (binary_expression "iVar8 + 0x2d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar1 = *pbVar9;" (assignment_expression "bVar1 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) }) (else_clause "else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" else (compound_statement "{\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" { (if_statement "if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }" if (parenthesized_expression "(bVar1 == 0x2b)" ( (binary_expression "bVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000360b5;" goto statement_identifier ;) })) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;" if (parenthesized_expression "((bVar1 & 0xdf) == 0x5a)" ( (binary_expression "(bVar1 & 0xdf) == 0x5a" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000360e9;" goto statement_identifier ;)) }))) (if_statement "if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }" { (expression_statement "*(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;" (assignment_expression "*(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0" (pointer_expression "*(bool *)(iVar8 + 0x2c)" * (cast_expression "(bool *)(iVar8 + 0x2c)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c)" ( (binary_expression "iVar8 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar8 + 0x1c) != 0" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) != number_literal)) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00036095;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00036090:\n  uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f4bf0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000f4bf0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000f4bf0();\n  }" { comment (expression_statement "FUN_000f4bf0();" (call_expression "FUN_000f4bf0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n\nint __regparm3 parseHhMmSs(char *zDate,DateTime *p)\n\n{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  char cVar7;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  int h;\n  int m;\n  int s;\n  int nHr;\n  int nMn;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = getDigits(zDate,"20c:20e",&h,&m);\n  if (iVar4 == 2) {\n    pbVar8 = (byte *)(zDate + 5);\n    if (zDate[5] == ':') {\n      iVar4 = getDigits(zDate + 6,"20e",&s);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar8 = (byte *)(zDate + 8);\n      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }\n    }\n    else {\n      s = 0;\n      dVar2 = 0.0;\n    }\n    p->validHMS = '\x01';\n    p->validJD = '\0';\n    p->rawS = '\0';\n    p->h = h;\n    p->s = dVar2;\n    p->m = m;\n    bVar1 = ""[*pbVar8];\n    while ((bVar1 & 1) != 0) {\n      pbVar8 = pbVar8 + 1;\n      bVar1 = ""[*pbVar8];\n    }\n    p->tz = 0;\n    bVar1 = *pbVar8;\n    if (bVar1 == 0x2d) {\n      iVar4 = -1;\nLAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);\n      if (iVar5 != 2) goto LAB_00036090;\n      pbVar8 = pbVar8 + 6;\n      p->tz = iVar4 * (nHr * 0x3c + nMn);\nLAB_000360e9:\n      bVar1 = ""[*pbVar8];\n      while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }\n      p->tzSet = '\x01';\n      bVar1 = *pbVar8;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      p->validTZ = p->tz != 0;\n      iVar4 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  iVar4 = 1;\nLAB_00036095:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "int __regparm3 parseHhMmSs(char *zDate,DateTime *p)\n\n{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  char cVar7;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  int h;\n  int m;\n  int s;\n  int nHr;\n  int nMn;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = getDigits(zDate,"20c:20e",&h,&m);\n  if (iVar4 == 2) {\n    pbVar8 = (byte *)(zDate + 5);\n    if (zDate[5] == ':') {\n      iVar4 = getDigits(zDate + 6,"20e",&s);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar8 = (byte *)(zDate + 8);\n      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }\n    }\n    else {\n      s = 0;\n      dVar2 = 0.0;\n    }\n    p->validHMS = '\x01';\n    p->validJD = '\0';\n    p->rawS = '\0';\n    p->h = h;\n    p->s = dVar2;\n    p->m = m;\n    bVar1 = ""[*pbVar8];\n    while ((bVar1 & 1) != 0) {\n      pbVar8 = pbVar8 + 1;\n      bVar1 = ""[*pbVar8];\n    }\n    p->tz = 0;\n    bVar1 = *pbVar8;\n    if (bVar1 == 0x2d) {\n      iVar4 = -1;\nLAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);\n      if (iVar5 != 2) goto LAB_00036090;\n      pbVar8 = pbVar8 + 6;\n      p->tz = iVar4 * (nHr * 0x3c + nMn);\nLAB_000360e9:\n      bVar1 = ""[*pbVar8];\n      while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }\n      p->tzSet = '\x01';\n      bVar1 = *pbVar8;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      p->validTZ = p->tz != 0;\n      iVar4 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  iVar4 = 1;\nLAB_00036095:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "parseHhMmSs(char *zDate,DateTime *p)" identifier (parameter_list "(char *zDate,DateTime *p)" ( (parameter_declaration "char *zDate" primitive_type (pointer_declarator "*zDate" * identifier)) , (parameter_declaration "DateTime *p" type_identifier (pointer_declarator "*p" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  char cVar7;\n  byte *pbVar8;\n  int in_GS_OFFSET;\n  int h;\n  int m;\n  int s;\n  int nHr;\n  int nMn;\n  int local_20;\n  \n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = getDigits(zDate,"20c:20e",&h,&m);\n  if (iVar4 == 2) {\n    pbVar8 = (byte *)(zDate + 5);\n    if (zDate[5] == ':') {\n      iVar4 = getDigits(zDate + 6,"20e",&s);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar8 = (byte *)(zDate + 8);\n      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }\n    }\n    else {\n      s = 0;\n      dVar2 = 0.0;\n    }\n    p->validHMS = '\x01';\n    p->validJD = '\0';\n    p->rawS = '\0';\n    p->h = h;\n    p->s = dVar2;\n    p->m = m;\n    bVar1 = ""[*pbVar8];\n    while ((bVar1 & 1) != 0) {\n      pbVar8 = pbVar8 + 1;\n      bVar1 = ""[*pbVar8];\n    }\n    p->tz = 0;\n    bVar1 = *pbVar8;\n    if (bVar1 == 0x2d) {\n      iVar4 = -1;\nLAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);\n      if (iVar5 != 2) goto LAB_00036090;\n      pbVar8 = pbVar8 + 6;\n      p->tz = iVar4 * (nHr * 0x3c + nMn);\nLAB_000360e9:\n      bVar1 = ""[*pbVar8];\n      while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }\n      p->tzSet = '\x01';\n      bVar1 = *pbVar8;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      p->validTZ = p->tz != 0;\n      iVar4 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  iVar4 = 1;\nLAB_00036095:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int h;" primitive_type identifier ;) (declaration "int m;" primitive_type identifier ;) (declaration "int s;" primitive_type identifier ;) (declaration "int nHr;" primitive_type identifier ;) (declaration "int nMn;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = getDigits(zDate,"20c:20e",&h,&m);" (assignment_expression "iVar4 = getDigits(zDate,"20c:20e",&h,&m)" identifier = (call_expression "getDigits(zDate,"20c:20e",&h,&m)" identifier (argument_list "(zDate,"20c:20e",&h,&m)" ( identifier , (string_literal ""20c:20e"" " string_content ") , (pointer_expression "&h" & identifier) , (pointer_expression "&m" & identifier) )))) ;) (if_statement "if (iVar4 == 2) {\n    pbVar8 = (byte *)(zDate + 5);\n    if (zDate[5] == ':') {\n      iVar4 = getDigits(zDate + 6,"20e",&s);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar8 = (byte *)(zDate + 8);\n      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }\n    }\n    else {\n      s = 0;\n      dVar2 = 0.0;\n    }\n    p->validHMS = '\x01';\n    p->validJD = '\0';\n    p->rawS = '\0';\n    p->h = h;\n    p->s = dVar2;\n    p->m = m;\n    bVar1 = ""[*pbVar8];\n    while ((bVar1 & 1) != 0) {\n      pbVar8 = pbVar8 + 1;\n      bVar1 = ""[*pbVar8];\n    }\n    p->tz = 0;\n    bVar1 = *pbVar8;\n    if (bVar1 == 0x2d) {\n      iVar4 = -1;\nLAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);\n      if (iVar5 != 2) goto LAB_00036090;\n      pbVar8 = pbVar8 + 6;\n      p->tz = iVar4 * (nHr * 0x3c + nMn);\nLAB_000360e9:\n      bVar1 = ""[*pbVar8];\n      while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }\n      p->tzSet = '\x01';\n      bVar1 = *pbVar8;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      p->validTZ = p->tz != 0;\n      iVar4 = 0;\n      goto LAB_00036095;\n    }\n  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n    pbVar8 = (byte *)(zDate + 5);\n    if (zDate[5] == ':') {\n      iVar4 = getDigits(zDate + 6,"20e",&s);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar8 = (byte *)(zDate + 8);\n      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }\n    }\n    else {\n      s = 0;\n      dVar2 = 0.0;\n    }\n    p->validHMS = '\x01';\n    p->validJD = '\0';\n    p->rawS = '\0';\n    p->h = h;\n    p->s = dVar2;\n    p->m = m;\n    bVar1 = ""[*pbVar8];\n    while ((bVar1 & 1) != 0) {\n      pbVar8 = pbVar8 + 1;\n      bVar1 = ""[*pbVar8];\n    }\n    p->tz = 0;\n    bVar1 = *pbVar8;\n    if (bVar1 == 0x2d) {\n      iVar4 = -1;\nLAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);\n      if (iVar5 != 2) goto LAB_00036090;\n      pbVar8 = pbVar8 + 6;\n      p->tz = iVar4 * (nHr * 0x3c + nMn);\nLAB_000360e9:\n      bVar1 = ""[*pbVar8];\n      while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }\n      p->tzSet = '\x01';\n      bVar1 = *pbVar8;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      p->validTZ = p->tz != 0;\n      iVar4 = 0;\n      goto LAB_00036095;\n    }\n  }" { (expression_statement "pbVar8 = (byte *)(zDate + 5);" (assignment_expression "pbVar8 = (byte *)(zDate + 5)" identifier = (cast_expression "(byte *)(zDate + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(zDate + 5)" ( (binary_expression "zDate + 5" identifier + number_literal) )))) ;) (if_statement "if (zDate[5] == ':') {\n      iVar4 = getDigits(zDate + 6,"20e",&s);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar8 = (byte *)(zDate + 8);\n      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }\n    }\n    else {\n      s = 0;\n      dVar2 = 0.0;\n    }" if (parenthesized_expression "(zDate[5] == ':')" ( (binary_expression "zDate[5] == ':'" (subscript_expression "zDate[5]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (compound_statement "{\n      iVar4 = getDigits(zDate + 6,"20e",&s);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar8 = (byte *)(zDate + 8);\n      if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }\n    }" { (expression_statement "iVar4 = getDigits(zDate + 6,"20e",&s);" (assignment_expression "iVar4 = getDigits(zDate + 6,"20e",&s)" identifier = (call_expression "getDigits(zDate + 6,"20e",&s)" identifier (argument_list "(zDate + 6,"20e",&s)" ( (binary_expression "zDate + 6" identifier + number_literal) , (string_literal ""20e"" " string_content ") , (pointer_expression "&s" & identifier) )))) ;) (if_statement "if (iVar4 != 1) goto LAB_00036090;" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00036090;" goto statement_identifier ;)) (expression_statement "pbVar8 = (byte *)(zDate + 8);" (assignment_expression "pbVar8 = (byte *)(zDate + 8)" identifier = (cast_expression "(byte *)(zDate + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(zDate + 8)" ( (binary_expression "zDate + 8" identifier + number_literal) )))) ;) (if_statement "if ((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }\n      else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }" if (parenthesized_expression "((zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0))" ( (binary_expression "(zDate[8] == '.') && (uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)" (parenthesized_expression "(zDate[8] == '.')" ( (binary_expression "zDate[8] == '.'" (subscript_expression "zDate[8]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0)" ( (comma_expression "uVar6 = (uint)(byte)zDate[9], (""[uVar6] & 4) != 0" (assignment_expression "uVar6 = (uint)(byte)zDate[9]" identifier = (cast_expression "(uint)(byte)zDate[9]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)zDate[9]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "zDate[9]" identifier [ number_literal ])))) , (binary_expression "(""[uVar6] & 4) != 0" (parenthesized_expression "(""[uVar6] & 4)" ( (binary_expression """[uVar6] & 4" (subscript_expression """[uVar6]" (string_literal """" " ") [ identifier ]) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        dVar2 = 1.0;\n        pbVar8 = (byte *)(zDate + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)s;\n      }" { (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (expression_statement "pbVar8 = (byte *)(zDate + 9);" (assignment_expression "pbVar8 = (byte *)(zDate + 9)" identifier = (cast_expression "(byte *)(zDate + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(zDate + 9)" ( (binary_expression "zDate + 9" identifier + number_literal) )))) ;) (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" identifier = number_literal) ;) (do_statement "do {\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        } while ((""[uVar6] & 4) != 0);" do (compound_statement "{\n          cVar7 = (char)uVar6;\n          pbVar8 = pbVar8 + 1;\n          uVar6 = (uint)*pbVar8;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;\n          dVar2 = dVar2 * (double)DAT_00107c44;\n        }" { (expression_statement "cVar7 = (char)uVar6;" (assignment_expression "cVar7 = (char)uVar6" identifier = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = (uint)*pbVar8;" (assignment_expression "uVar6 = (uint)*pbVar8" identifier = (binary_expression "(uint)*pbVar8" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0;" (assignment_expression "dVar3 = ((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0" identifier = (binary_expression "((double)(short)cVar7 + dVar3 * (double)DAT_00107c44) - (double)DAT_00107ca0" (parenthesized_expression "((double)(short)cVar7 + dVar3 * (double)DAT_00107c44)" ( (binary_expression "(double)(short)cVar7 + dVar3 * (double)DAT_00107c44" (cast_expression "(double)(short)cVar7" ( (type_descriptor "double" primitive_type) ) (cast_expression "(short)cVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) + (binary_expression "dVar3 * (double)DAT_00107c44" identifier * (cast_expression "(double)DAT_00107c44" ( (type_descriptor "double" primitive_type) ) identifier))) )) - (cast_expression "(double)DAT_00107ca0" ( (type_descriptor "double" primitive_type) ) identifier))) ;) (expression_statement "dVar2 = dVar2 * (double)DAT_00107c44;" (assignment_expression "dVar2 = dVar2 * (double)DAT_00107c44" identifier = (binary_expression "dVar2 * (double)DAT_00107c44" identifier * (cast_expression "(double)DAT_00107c44" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "((""[uVar6] & 4) != 0)" ( (binary_expression "(""[uVar6] & 4) != 0" (parenthesized_expression "(""[uVar6] & 4)" ( (binary_expression """[uVar6] & 4" (subscript_expression """[uVar6]" (string_literal """" " ") [ identifier ]) & number_literal) )) != number_literal) )) ;) (expression_statement "dVar2 = dVar3 / dVar2 + (double)s;" (assignment_expression "dVar2 = dVar3 / dVar2 + (double)s" identifier = (binary_expression "dVar3 / dVar2 + (double)s" (binary_expression "dVar3 / dVar2" identifier / identifier) + (cast_expression "(double)s" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }" else (compound_statement "{\n        dVar2 = (double)s + (double)DAT_00107c48;\n      }" { (expression_statement "dVar2 = (double)s + (double)DAT_00107c48;" (assignment_expression "dVar2 = (double)s + (double)DAT_00107c48" identifier = (binary_expression "(double)s + (double)DAT_00107c48" (cast_expression "(double)s" ( (type_descriptor "double" primitive_type) ) identifier) + (cast_expression "(double)DAT_00107c48" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) }) (else_clause "else {\n      s = 0;\n      dVar2 = 0.0;\n    }" else (compound_statement "{\n      s = 0;\n      dVar2 = 0.0;\n    }" { (expression_statement "s = 0;" (assignment_expression "s = 0" identifier = number_literal) ;) (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }))) (expression_statement "p->validHMS = '\x01';" (assignment_expression "p->validHMS = '\x01'" (field_expression "p->validHMS" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "p->validJD = '\0';" (assignment_expression "p->validJD = '\0'" (field_expression "p->validJD" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "p->rawS = '\0';" (assignment_expression "p->rawS = '\0'" (field_expression "p->rawS" identifier -> field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "p->h = h;" (assignment_expression "p->h = h" (field_expression "p->h" identifier -> field_identifier) = identifier) ;) (expression_statement "p->s = dVar2;" (assignment_expression "p->s = dVar2" (field_expression "p->s" identifier -> field_identifier) = identifier) ;) (expression_statement "p->m = m;" (assignment_expression "p->m = m" (field_expression "p->m" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar1 = ""[*pbVar8];" (assignment_expression "bVar1 = ""[*pbVar8]" identifier = (subscript_expression """[*pbVar8]" (string_literal """" " ") [ (pointer_expression "*pbVar8" * identifier) ])) ;) (while_statement "while ((bVar1 & 1) != 0) {\n      pbVar8 = pbVar8 + 1;\n      bVar1 = ""[*pbVar8];\n    }" while (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar8 = pbVar8 + 1;\n      bVar1 = ""[*pbVar8];\n    }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = ""[*pbVar8];" (assignment_expression "bVar1 = ""[*pbVar8]" identifier = (subscript_expression """[*pbVar8]" (string_literal """" " ") [ (pointer_expression "*pbVar8" * identifier) ])) ;) })) (expression_statement "p->tz = 0;" (assignment_expression "p->tz = 0" (field_expression "p->tz" identifier -> field_identifier) = number_literal) ;) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) (if_statement "if (bVar1 == 0x2d) {\n      iVar4 = -1;\nLAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);\n      if (iVar5 != 2) goto LAB_00036090;\n      pbVar8 = pbVar8 + 6;\n      p->tz = iVar4 * (nHr * 0x3c + nMn);\nLAB_000360e9:\n      bVar1 = ""[*pbVar8];\n      while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }\n      p->tzSet = '\x01';\n      bVar1 = *pbVar8;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" if (parenthesized_expression "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      iVar4 = -1;\nLAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);\n      if (iVar5 != 2) goto LAB_00036090;\n      pbVar8 = pbVar8 + 6;\n      p->tz = iVar4 * (nHr * 0x3c + nMn);\nLAB_000360e9:\n      bVar1 = ""[*pbVar8];\n      while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }\n      p->tzSet = '\x01';\n      bVar1 = *pbVar8;\n    }" { (expression_statement "iVar4 = -1;" (assignment_expression "iVar4 = -1" identifier = number_literal) ;) (labeled_statement "LAB_000360b5:\n      iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);" statement_identifier : (expression_statement "iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn);" (assignment_expression "iVar5 = getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn)" identifier = (call_expression "getDigits((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn)" identifier (argument_list "((char *)(pbVar8 + 1),"20b:20e",&nHr,&nMn)" ( (cast_expression "(char *)(pbVar8 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar8 + 1)" ( (binary_expression "pbVar8 + 1" identifier + number_literal) ))) , (string_literal ""20b:20e"" " string_content ") , (pointer_expression "&nHr" & identifier) , (pointer_expression "&nMn" & identifier) )))) ;)) (if_statement "if (iVar5 != 2) goto LAB_00036090;" if (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00036090;" goto statement_identifier ;)) (expression_statement "pbVar8 = pbVar8 + 6;" (assignment_expression "pbVar8 = pbVar8 + 6" identifier = (binary_expression "pbVar8 + 6" identifier + number_literal)) ;) (expression_statement "p->tz = iVar4 * (nHr * 0x3c + nMn);" (assignment_expression "p->tz = iVar4 * (nHr * 0x3c + nMn)" (field_expression "p->tz" identifier -> field_identifier) = (binary_expression "iVar4 * (nHr * 0x3c + nMn)" identifier * (parenthesized_expression "(nHr * 0x3c + nMn)" ( (binary_expression "nHr * 0x3c + nMn" (binary_expression "nHr * 0x3c" identifier * number_literal) + identifier) )))) ;) (labeled_statement "LAB_000360e9:\n      bVar1 = ""[*pbVar8];" statement_identifier : (expression_statement "bVar1 = ""[*pbVar8];" (assignment_expression "bVar1 = ""[*pbVar8]" identifier = (subscript_expression """[*pbVar8]" (string_literal """" " ") [ (pointer_expression "*pbVar8" * identifier) ])) ;)) (while_statement "while ((bVar1 & 1) != 0) {\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }" while (parenthesized_expression "((bVar1 & 1) != 0)" ( (binary_expression "(bVar1 & 1) != 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pbVar8 = pbVar8 + 1;\n        bVar1 = ""[*pbVar8];\n      }" { (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = ""[*pbVar8];" (assignment_expression "bVar1 = ""[*pbVar8]" identifier = (subscript_expression """[*pbVar8]" (string_literal """" " ") [ (pointer_expression "*pbVar8" * identifier) ])) ;) })) (expression_statement "p->tzSet = '\x01';" (assignment_expression "p->tzSet = '\x01'" (field_expression "p->tzSet" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) }) (else_clause "else {\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" else (compound_statement "{\n      if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar8 = pbVar8 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" { (if_statement "if (bVar1 == 0x2b) {\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }" if (parenthesized_expression "(bVar1 == 0x2b)" ( (binary_expression "bVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n        iVar4 = 1;\n        goto LAB_000360b5;\n      }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000360b5;" goto statement_identifier ;) })) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;" if (parenthesized_expression "((bVar1 & 0xdf) == 0x5a)" ( (binary_expression "(bVar1 & 0xdf) == 0x5a" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000360e9;" goto statement_identifier ;)) }))) (if_statement "if (bVar1 == 0) {\n      p->validTZ = p->tz != 0;\n      iVar4 = 0;\n      goto LAB_00036095;\n    }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      p->validTZ = p->tz != 0;\n      iVar4 = 0;\n      goto LAB_00036095;\n    }" { (expression_statement "p->validTZ = p->tz != 0;" (assignment_expression "p->validTZ = p->tz != 0" (field_expression "p->validTZ" identifier -> field_identifier) = (binary_expression "p->tz != 0" (field_expression "p->tz" identifier -> field_identifier) != number_literal)) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00036095;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00036090:\n  iVar4 = 1;" statement_identifier : (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_00036095:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined4 FUN_00035fc0(void)\n\n{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }\n  return uVar5;\n}\n\n" (function_definition "undefined4 FUN_00035fc0(void)\n\n{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_00035fc0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }\n  return uVar5;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "double dVar2;" primitive_type identifier ;) (declaration "double dVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar11 = FUN_00019701();" (assignment_expression "uVar11 = FUN_00019701()" identifier = (call_expression "FUN_00019701()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (int)((ulonglong)uVar11 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" ( (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar10 = (int)uVar11;" (assignment_expression "iVar10 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);" (assignment_expression "iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" identifier = (call_expression "FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" identifier (argument_list "(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" ( identifier , (binary_expression "&UNK_000c0780 + unaff_EBP" (pointer_expression "&UNK_000c0780" & identifier) + identifier) , (pointer_expression "&local_34" & identifier) , (pointer_expression "&local_30" & identifier) )))) ;) (if_statement "if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }" if (parenthesized_expression "(iVar4 == 2)" ( (binary_expression "iVar4 == 2" identifier == number_literal) )) (compound_statement "{\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }" { (expression_statement "pbVar9 = (byte *)(iVar10 + 5);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 5)" identifier = (cast_expression "(byte *)(iVar10 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 5)" ( (binary_expression "iVar10 + 5" identifier + number_literal) )))) ;) (if_statement "if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" if (parenthesized_expression "(*(char *)(iVar10 + 5) == ':')" ( (binary_expression "*(char *)(iVar10 + 5) == ':'" (pointer_expression "*(char *)(iVar10 + 5)" * (cast_expression "(char *)(iVar10 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 5)" ( (binary_expression "iVar10 + 5" identifier + number_literal) )))) == (char_literal "':'" ' character ')) )) (compound_statement "{\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }" { (expression_statement "iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);" (assignment_expression "iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" identifier = (call_expression "FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" identifier (argument_list "(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" ( (binary_expression "iVar10 + 6" identifier + number_literal) , (binary_expression "&UNK_000c09c8 + unaff_EBP" (pointer_expression "&UNK_000c09c8" & identifier) + identifier) , (pointer_expression "&local_2c" & identifier) )))) ;) (if_statement "if (iVar4 != 1) goto LAB_00036090;" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00036090;" goto statement_identifier ;)) (expression_statement "pbVar9 = (byte *)(iVar10 + 8);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 8)" identifier = (cast_expression "(byte *)(iVar10 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) ;) (if_statement "if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" if (parenthesized_expression "((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0))" ( (binary_expression "(*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" (parenthesized_expression "(*(char *)(iVar10 + 8) == '.')" ( (binary_expression "*(char *)(iVar10 + 8) == '.'" (pointer_expression "*(char *)(iVar10 + 8)" * (cast_expression "(char *)(iVar10 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "(uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" ( (comma_expression "uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (assignment_expression "uVar6 = (uint)*(byte *)(iVar10 + 9)" identifier = (binary_expression "(uint)*(byte *)(iVar10 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar10 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 9)" ( (binary_expression "iVar10 + 9" identifier + number_literal) ))))) , (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + uVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + uVar6)" ( (binary_expression "unaff_EBP + 0xcc83a + uVar6" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + identifier) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }" { (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)(iVar10 + 9);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 9)" identifier = (cast_expression "(byte *)(iVar10 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 9)" ( (binary_expression "iVar10 + 9" identifier + number_literal) )))) ;) (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" identifier = number_literal) ;) (do_statement "do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);" do (compound_statement "{\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        }" { (expression_statement "cVar7 = (char)uVar6;" (assignment_expression "cVar7 = (char)uVar6" identifier = (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = (uint)*pbVar9;" (assignment_expression "uVar6 = (uint)*pbVar9" identifier = (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);" (assignment_expression "dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda)" identifier = (binary_expression "((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda)" (parenthesized_expression "((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e))" ( (binary_expression "(double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)" (cast_expression "(double)(short)cVar7" ( (type_descriptor "double" primitive_type) ) (cast_expression "(short)cVar7" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) + (binary_expression "dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)" identifier * (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1c7e)" * (cast_expression "(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1c7e)" ( (binary_expression "unaff_EBP + 0xd1c7e" identifier + number_literal) ))))))) )) - (cast_expression "(double)*(float *)(unaff_EBP + 0xd1cda)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1cda)" * (cast_expression "(float *)(unaff_EBP + 0xd1cda)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1cda)" ( (binary_expression "unaff_EBP + 0xd1cda" identifier + number_literal) ))))))) ;) (expression_statement "dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);" (assignment_expression "dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e)" identifier = (binary_expression "dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e)" identifier * (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1c7e)" * (cast_expression "(float *)(unaff_EBP + 0xd1c7e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1c7e)" ( (binary_expression "unaff_EBP + 0xd1c7e" identifier + number_literal) ))))))) ;) }) while (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + uVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + uVar6)" ( (binary_expression "unaff_EBP + 0xcc83a + uVar6" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + identifier) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "dVar2 = dVar3 / dVar2 + (double)local_2c;" (assignment_expression "dVar2 = dVar3 / dVar2 + (double)local_2c" identifier = (binary_expression "dVar3 / dVar2 + (double)local_2c" (binary_expression "dVar3 / dVar2" identifier / identifier) + (cast_expression "(double)local_2c" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" else (compound_statement "{\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" { (expression_statement "dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);" (assignment_expression "dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82)" identifier = (binary_expression "(double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82)" (cast_expression "(double)local_2c" ( (type_descriptor "double" primitive_type) ) identifier) + (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c82)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0xd1c82)" * (cast_expression "(float *)(unaff_EBP + 0xd1c82)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xd1c82)" ( (binary_expression "unaff_EBP + 0xd1c82" identifier + number_literal) ))))))) ;) }))) }) (else_clause "else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" else (compound_statement "{\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" identifier = number_literal) ;) }))) (expression_statement "*(undefined1 *)(iVar8 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)(iVar8 + 0x2b) = 1" (pointer_expression "*(undefined1 *)(iVar8 + 0x2b)" * (cast_expression "(undefined1 *)(iVar8 + 0x2b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2b)" ( (binary_expression "iVar8 + 0x2b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined2 *)(iVar8 + 0x28) = 0;" (assignment_expression "*(undefined2 *)(iVar8 + 0x28) = 0" (pointer_expression "*(undefined2 *)(iVar8 + 0x28)" * (cast_expression "(undefined2 *)(iVar8 + 0x28)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x28)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = local_34;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = local_34" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(double *)(iVar8 + 0x20) = dVar2;" (assignment_expression "*(double *)(iVar8 + 0x20) = dVar2" (pointer_expression "*(double *)(iVar8 + 0x20)" * (cast_expression "(double *)(iVar8 + 0x20)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x20)" ( (binary_expression "iVar8 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x18) = local_30;" (assignment_expression "*(undefined4 *)(iVar8 + 0x18) = local_30" (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }" { (do_statement "do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);" do (compound_statement "{\n        pbVar9 = pbVar9 + 1;\n      }" { (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) ;) })) (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar1 = *pbVar9;" (assignment_expression "bVar1 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" if (parenthesized_expression "(bVar1 == 0x2d)" ( (binary_expression "bVar1 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }" { (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (labeled_statement "LAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);" statement_identifier : (expression_statement "iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);" (assignment_expression "iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" identifier = (call_expression "FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" identifier (argument_list "(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" ( (binary_expression "pbVar9 + 1" identifier + number_literal) , (binary_expression "&UNK_000c0788 + unaff_EBP" (pointer_expression "&UNK_000c0788" & identifier) + identifier) , (pointer_expression "&local_28" & identifier) , (pointer_expression "&local_24" & identifier) )))) ;)) (if_statement "if (iVar4 != 2) goto LAB_00036090;" if (parenthesized_expression "(iVar4 != 2)" ( (binary_expression "iVar4 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00036090;" goto statement_identifier ;)) (expression_statement "pbVar9 = pbVar9 + 6;" (assignment_expression "pbVar9 = pbVar9 + 6" identifier = (binary_expression "pbVar9 + 6" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);" (assignment_expression "*(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24)" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = (binary_expression "iVar10 * (local_28 * 0x3c + local_24)" identifier * (parenthesized_expression "(local_28 * 0x3c + local_24)" ( (binary_expression "local_28 * 0x3c + local_24" (binary_expression "local_28 * 0x3c" identifier * number_literal) + identifier) )))) ;) (labeled_statement "LAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" statement_identifier : (if_statement "if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" if (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" { (do_statement "do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);" do (compound_statement "{\n          pbVar9 = pbVar9 + 1;\n        }" { (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" ( (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" ( (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" * (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" ( (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" identifier + number_literal) + (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) )))) & number_literal) )) != number_literal) )) ;) }))) (expression_statement "*(undefined1 *)(iVar8 + 0x2d) = 1;" (assignment_expression "*(undefined1 *)(iVar8 + 0x2d) = 1" (pointer_expression "*(undefined1 *)(iVar8 + 0x2d)" * (cast_expression "(undefined1 *)(iVar8 + 0x2d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2d)" ( (binary_expression "iVar8 + 0x2d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar1 = *pbVar9;" (assignment_expression "bVar1 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) }) (else_clause "else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" else (compound_statement "{\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" { (if_statement "if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }" if (parenthesized_expression "(bVar1 == 0x2b)" ( (binary_expression "bVar1 == 0x2b" identifier == number_literal) )) (compound_statement "{\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }" { (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000360b5;" goto statement_identifier ;) })) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (if_statement "if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;" if (parenthesized_expression "((bVar1 & 0xdf) == 0x5a)" ( (binary_expression "(bVar1 & 0xdf) == 0x5a" (parenthesized_expression "(bVar1 & 0xdf)" ( (binary_expression "bVar1 & 0xdf" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000360e9;" goto statement_identifier ;)) }))) (if_statement "if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }" { (expression_statement "*(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;" (assignment_expression "*(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0" (pointer_expression "*(bool *)(iVar8 + 0x2c)" * (cast_expression "(bool *)(iVar8 + 0x2c)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c)" ( (binary_expression "iVar8 + 0x2c" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar8 + 0x1c) != 0" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) != number_literal)) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00036095;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00036090:\n  uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_000f4bf0();\n  }" { (expression_statement "FUN_000f4bf0();" (call_expression "FUN_000f4bf0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 = (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) )))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) + (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) & LIT) )) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT / IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (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 IDENT = LIT) ;) (expression_statement (assignment_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) )))) = IDENT) ;) (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) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( IDENT )) * 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 IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression & IDENT) + IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (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) )))) = (binary_expression IDENT * (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + IDENT) )))) ;) (labeled_statement statement_identifier : (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 IDENT + LIT) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) )))) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (parenthesized_expression ( IDENT )) * 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 IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (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 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 = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00035fc0(void)\n\n{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }\n  return uVar5;\n}" (type_identifier "undefined4") (function_declarator "FUN_00035fc0(void)" (identifier "FUN_00035fc0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  double dVar2;\n  double dVar3;\n  int iVar4;\n  undefined4 uVar5;\n  uint uVar6;\n  char cVar7;\n  int iVar8;\n  byte *pbVar9;\n  int unaff_EBP;\n  int iVar10;\n  int in_GS_OFFSET;\n  undefined8 uVar11;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  \n  uVar11 = FUN_00019701();\n  iVar8 = (int)((ulonglong)uVar11 >> 0x20);\n  iVar10 = (int)uVar11;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);\n  if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }\nLAB_00036090:\n  uVar5 = 1;\nLAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }\n  return uVar5;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "double dVar2;" (primitive_type "double") (identifier "dVar2") (; ";")) (declaration "double dVar3;" (primitive_type "double") (identifier "dVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "uVar11 = FUN_00019701();" (assignment_expression "uVar11 = FUN_00019701()" (identifier "uVar11") (= "=") (call_expression "FUN_00019701()" (identifier "FUN_00019701") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar8 = (int)((ulonglong)uVar11 >> 0x20);" (assignment_expression "iVar8 = (int)((ulonglong)uVar11 >> 0x20)" (identifier "iVar8") (= "=") (cast_expression "(int)((ulonglong)uVar11 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar11 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar11 >> 0x20" (cast_expression "(ulonglong)uVar11" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar11")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar10 = (int)uVar11;" (assignment_expression "iVar10 = (int)uVar11" (identifier "iVar10") (= "=") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);" (assignment_expression "iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" (identifier "iVar4") (= "=") (call_expression "FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" (identifier "FUN_000223d0") (argument_list "(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30)" (( "(") (identifier "iVar10") (, ",") (binary_expression "&UNK_000c0780 + unaff_EBP" (pointer_expression "&UNK_000c0780" (& "&") (identifier "UNK_000c0780")) (+ "+") (identifier "unaff_EBP")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")")))) (; ";")) (if_statement "if (iVar4 == 2) {\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }" (if "if") (parenthesized_expression "(iVar4 == 2)" (( "(") (binary_expression "iVar4 == 2" (identifier "iVar4") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    pbVar9 = (byte *)(iVar10 + 5);\n    if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }\n    *(undefined1 *)(iVar8 + 0x2b) = 1;\n    *(undefined2 *)(iVar8 + 0x28) = 0;\n    *(undefined4 *)(iVar8 + 0x14) = local_34;\n    *(double *)(iVar8 + 0x20) = dVar2;\n    *(undefined4 *)(iVar8 + 0x18) = local_30;\n    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }\n    *(undefined4 *)(iVar8 + 0x1c) = 0;\n    bVar1 = *pbVar9;\n    if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }\n    if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }\n  }" ({ "{") (expression_statement "pbVar9 = (byte *)(iVar10 + 5);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 5)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(iVar10 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 5)" (( "(") (binary_expression "iVar10 + 5" (identifier "iVar10") (+ "+") (number_literal "5")) () ")")))) (; ";")) (if_statement "if (*(char *)(iVar10 + 5) == ':') {\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }\n    else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar10 + 5) == ':')" (( "(") (binary_expression "*(char *)(iVar10 + 5) == ':'" (pointer_expression "*(char *)(iVar10 + 5)" (* "*") (cast_expression "(char *)(iVar10 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 5)" (( "(") (binary_expression "iVar10 + 5" (identifier "iVar10") (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);\n      if (iVar4 != 1) goto LAB_00036090;\n      pbVar9 = (byte *)(iVar10 + 8);\n      if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }\n    }" ({ "{") (expression_statement "iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);" (assignment_expression "iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" (identifier "iVar4") (= "=") (call_expression "FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" (identifier "FUN_000223d0") (argument_list "(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c)" (( "(") (binary_expression "iVar10 + 6" (identifier "iVar10") (+ "+") (number_literal "6")) (, ",") (binary_expression "&UNK_000c09c8 + unaff_EBP" (pointer_expression "&UNK_000c09c8" (& "&") (identifier "UNK_000c09c8")) (+ "+") (identifier "unaff_EBP")) (, ",") (pointer_expression "&local_2c" (& "&") (identifier "local_2c")) () ")")))) (; ";")) (if_statement "if (iVar4 != 1) goto LAB_00036090;" (if "if") (parenthesized_expression "(iVar4 != 1)" (( "(") (binary_expression "iVar4 != 1" (identifier "iVar4") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00036090;" (goto "goto") (statement_identifier "LAB_00036090") (; ";"))) (expression_statement "pbVar9 = (byte *)(iVar10 + 8);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 8)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(iVar10 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if ((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }\n      else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" (if "if") (parenthesized_expression "((*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0))" (( "(") (binary_expression "(*(char *)(iVar10 + 8) == '.') &&\n         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" (parenthesized_expression "(*(char *)(iVar10 + 8) == '.')" (( "(") (binary_expression "*(char *)(iVar10 + 8) == '.'" (pointer_expression "*(char *)(iVar10 + 8)" (* "*") (cast_expression "(char *)(iVar10 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" (( "(") (comma_expression "uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (assignment_expression "uVar6 = (uint)*(byte *)(iVar10 + 9)" (identifier "uVar6") (= "=") (binary_expression "(uint)*(byte *)(iVar10 + 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar10 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 9)" (( "(") (binary_expression "iVar10 + 9" (identifier "iVar10") (+ "+") (number_literal "9")) () ")"))))) (, ",") (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0xcc83a + uVar6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xcc83a + uVar6)" (( "(") (binary_expression "unaff_EBP + 0xcc83a + uVar6" (binary_expression "unaff_EBP + 0xcc83a" (identifier "unaff_EBP") (+ "+") (number_literal "0xcc83a")) (+ "+") (identifier "uVar6")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        dVar2 = 1.0;\n        pbVar9 = (byte *)(iVar10 + 9);\n        dVar3 = 0.0;\n        do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);\n        dVar2 = dVar3 / dVar2 + (double)local_2c;\n      }" ({ "{") (expression_statement "dVar2 = 1.0;" (assignment_expression "dVar2 = 1.0" (identifier "dVar2") (= "=") (number_literal "1.0")) (; ";")) (expression_statement "pbVar9 = (byte *)(iVar10 + 9);" (assignment_expression "pbVar9 = (byte *)(iVar10 + 9)" (identifier "pbVar9") (= "=") (cast_expression "(byte *)(iVar10 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 9)" (( "(") (binary_expression "iVar10 + 9" (identifier "iVar10") (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "dVar3 = 0.0;" (assignment_expression "dVar3 = 0.0" (identifier "dVar3") (= "=") (number_literal "0.0")) (; ";")) (do_statement "do {\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);" (do "do") (compound_statement "{\n          cVar7 = (char)uVar6;\n          pbVar9 = pbVar9 + 1;\n          uVar6 = (uint)*pbVar9;\n          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);\n          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);\n        }" ({ "{") (expression_statement "cVar7 = (char)uVar6;" (assignment_expression "cVar7 = (char)uVar6" (identifier "cVar7") (= "=") (cast_expression "(char)uVar6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar6"))) (; ";")) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = (uint)*pbVar9;" (assignment_expression "uVar6 = (uint)*pbVar9" (identifier "uVar6") (= "=") (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda);" (assignment_expression "dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda)" (identifier "dVar3") (= "=") (binary_expression "((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -\n                  (double)*(float *)(unaff_EBP + 0xd1cda)" (parenthesized_expression "((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e))" (( "(") (binary_expression "(double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)" (cast_expression "(double)(short)cVar7" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(short)cVar7" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "cVar7"))) (+ "+") (binary_expression "dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)" (identifier "dVar3") (* "*") (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c7e)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0xd1c7e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0xd1c7e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xd1c7e)" (( "(") (binary_expression "unaff_EBP + 0xd1c7e" (identifier "unaff_EBP") (+ "+") (number_literal "0xd1c7e")) () ")"))))))) () ")")) (- "-") (cast_expression "(double)*(float *)(unaff_EBP + 0xd1cda)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0xd1cda)" (* "*") (cast_expression "(float *)(unaff_EBP + 0xd1cda)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xd1cda)" (( "(") (binary_expression "unaff_EBP + 0xd1cda" (identifier "unaff_EBP") (+ "+") (number_literal "0xd1cda")) () ")"))))))) (; ";")) (expression_statement "dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);" (assignment_expression "dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e)" (identifier "dVar2") (= "=") (binary_expression "dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e)" (identifier "dVar2") (* "*") (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c7e)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0xd1c7e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0xd1c7e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xd1c7e)" (( "(") (binary_expression "unaff_EBP + 0xd1c7e" (identifier "unaff_EBP") (+ "+") (number_literal "0xd1c7e")) () ")"))))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + uVar6)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0xcc83a + uVar6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xcc83a + uVar6)" (( "(") (binary_expression "unaff_EBP + 0xcc83a + uVar6" (binary_expression "unaff_EBP + 0xcc83a" (identifier "unaff_EBP") (+ "+") (number_literal "0xcc83a")) (+ "+") (identifier "uVar6")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "dVar2 = dVar3 / dVar2 + (double)local_2c;" (assignment_expression "dVar2 = dVar3 / dVar2 + (double)local_2c" (identifier "dVar2") (= "=") (binary_expression "dVar3 / dVar2 + (double)local_2c" (binary_expression "dVar3 / dVar2" (identifier "dVar3") (/ "/") (identifier "dVar2")) (+ "+") (cast_expression "(double)local_2c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2c")))) (; ";")) (} "}")) (else_clause "else {\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" (else "else") (compound_statement "{\n        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);\n      }" ({ "{") (expression_statement "dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);" (assignment_expression "dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82)" (identifier "dVar2") (= "=") (binary_expression "(double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82)" (cast_expression "(double)local_2c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "local_2c")) (+ "+") (cast_expression "(double)*(float *)(unaff_EBP + 0xd1c82)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0xd1c82)" (* "*") (cast_expression "(float *)(unaff_EBP + 0xd1c82)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xd1c82)" (( "(") (binary_expression "unaff_EBP + 0xd1c82" (identifier "unaff_EBP") (+ "+") (number_literal "0xd1c82")) () ")"))))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" (else "else") (compound_statement "{\n      local_2c = 0;\n      dVar2 = 0.0;\n    }" ({ "{") (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar2 = 0.0;" (assignment_expression "dVar2 = 0.0" (identifier "dVar2") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)(iVar8 + 0x2b) = 1;" (assignment_expression "*(undefined1 *)(iVar8 + 0x2b) = 1" (pointer_expression "*(undefined1 *)(iVar8 + 0x2b)" (* "*") (cast_expression "(undefined1 *)(iVar8 + 0x2b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2b)" (( "(") (binary_expression "iVar8 + 0x2b" (identifier "iVar8") (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined2 *)(iVar8 + 0x28) = 0;" (assignment_expression "*(undefined2 *)(iVar8 + 0x28) = 0" (pointer_expression "*(undefined2 *)(iVar8 + 0x28)" (* "*") (cast_expression "(undefined2 *)(iVar8 + 0x28)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x28)" (( "(") (binary_expression "iVar8 + 0x28" (identifier "iVar8") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = local_34;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = local_34" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(double *)(iVar8 + 0x20) = dVar2;" (assignment_expression "*(double *)(iVar8 + 0x20) = dVar2" (pointer_expression "*(double *)(iVar8 + 0x20)" (* "*") (cast_expression "(double *)(iVar8 + 0x20)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x20)" (( "(") (binary_expression "iVar8 + 0x20" (identifier "iVar8") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "dVar2")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x18) = local_30;" (assignment_expression "*(undefined4 *)(iVar8 + 0x18) = local_30" (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "local_30")) (; ";")) (if_statement "if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }" (if "if") (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" (identifier "unaff_EBP") (+ "+") (number_literal "0xcc83a")) (+ "+") (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar9"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n    }" ({ "{") (do_statement "do {\n        pbVar9 = pbVar9 + 1;\n      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);" (do "do") (compound_statement "{\n        pbVar9 = pbVar9 + 1;\n      }" ({ "{") (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" (identifier "unaff_EBP") (+ "+") (number_literal "0xcc83a")) (+ "+") (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar9"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = *pbVar9;" (assignment_expression "bVar1 = *pbVar9" (identifier "bVar1") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (if_statement "if (bVar1 == 0x2d) {\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }\n    else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" (if "if") (parenthesized_expression "(bVar1 == 0x2d)" (( "(") (binary_expression "bVar1 == 0x2d" (identifier "bVar1") (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n      iVar10 = -1;\nLAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);\n      if (iVar4 != 2) goto LAB_00036090;\n      pbVar9 = pbVar9 + 6;\n      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);\nLAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }\n      *(undefined1 *)(iVar8 + 0x2d) = 1;\n      bVar1 = *pbVar9;\n    }" ({ "{") (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" (identifier "iVar10") (= "=") (number_literal "-1")) (; ";")) (labeled_statement "LAB_000360b5:\n      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);" (statement_identifier "LAB_000360b5") (: ":") (expression_statement "iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);" (assignment_expression "iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" (identifier "iVar4") (= "=") (call_expression "FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" (identifier "FUN_000223d0") (argument_list "(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24)" (( "(") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1")) (, ",") (binary_expression "&UNK_000c0788 + unaff_EBP" (pointer_expression "&UNK_000c0788" (& "&") (identifier "UNK_000c0788")) (+ "+") (identifier "unaff_EBP")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")")))) (; ";"))) (if_statement "if (iVar4 != 2) goto LAB_00036090;" (if "if") (parenthesized_expression "(iVar4 != 2)" (( "(") (binary_expression "iVar4 != 2" (identifier "iVar4") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_00036090;" (goto "goto") (statement_identifier "LAB_00036090") (; ";"))) (expression_statement "pbVar9 = pbVar9 + 6;" (assignment_expression "pbVar9 = pbVar9 + 6" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 6" (identifier "pbVar9") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "*(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);" (assignment_expression "*(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24)" (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "iVar10 * (local_28 * 0x3c + local_24)" (identifier "iVar10") (* "*") (parenthesized_expression "(local_28 * 0x3c + local_24)" (( "(") (binary_expression "local_28 * 0x3c + local_24" (binary_expression "local_28 * 0x3c" (identifier "local_28") (* "*") (number_literal "0x3c")) (+ "+") (identifier "local_24")) () ")")))) (; ";")) (labeled_statement "LAB_000360e9:\n      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" (statement_identifier "LAB_000360e9") (: ":") (if_statement "if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" (if "if") (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" (identifier "unaff_EBP") (+ "+") (number_literal "0xcc83a")) (+ "+") (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar9"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);\n      }" ({ "{") (do_statement "do {\n          pbVar9 = pbVar9 + 1;\n        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);" (do "do") (compound_statement "{\n          pbVar9 = pbVar9 + 1;\n        }" ({ "{") (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0" (parenthesized_expression "(*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1)" (( "(") (binary_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1" (pointer_expression "*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (* "*") (cast_expression "(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xcc83a + (uint)*pbVar9)" (( "(") (binary_expression "unaff_EBP + 0xcc83a + (uint)*pbVar9" (binary_expression "unaff_EBP + 0xcc83a" (identifier "unaff_EBP") (+ "+") (number_literal "0xcc83a")) (+ "+") (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar9"))) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (expression_statement "*(undefined1 *)(iVar8 + 0x2d) = 1;" (assignment_expression "*(undefined1 *)(iVar8 + 0x2d) = 1" (pointer_expression "*(undefined1 *)(iVar8 + 0x2d)" (* "*") (cast_expression "(undefined1 *)(iVar8 + 0x2d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2d)" (( "(") (binary_expression "iVar8 + 0x2d" (identifier "iVar8") (+ "+") (number_literal "0x2d")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar1 = *pbVar9;" (assignment_expression "bVar1 = *pbVar9" (identifier "bVar1") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (} "}")) (else_clause "else {\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" (else "else") (compound_statement "{\n      if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }\n      pbVar9 = pbVar9 + 1;\n      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;\n    }" ({ "{") (if_statement "if (bVar1 == 0x2b) {\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }" (if "if") (parenthesized_expression "(bVar1 == 0x2b)" (( "(") (binary_expression "bVar1 == 0x2b" (identifier "bVar1") (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n        iVar10 = 1;\n        goto LAB_000360b5;\n      }" ({ "{") (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000360b5;" (goto "goto") (statement_identifier "LAB_000360b5") (; ";")) (} "}"))) (expression_statement "pbVar9 = pbVar9 + 1;" (assignment_expression "pbVar9 = pbVar9 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;" (if "if") (parenthesized_expression "((bVar1 & 0xdf) == 0x5a)" (( "(") (binary_expression "(bVar1 & 0xdf) == 0x5a" (parenthesized_expression "(bVar1 & 0xdf)" (( "(") (binary_expression "bVar1 & 0xdf" (identifier "bVar1") (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x5a")) () ")")) (goto_statement "goto LAB_000360e9;" (goto "goto") (statement_identifier "LAB_000360e9") (; ";"))) (} "}")))) (if_statement "if (bVar1 == 0) {\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;\n      uVar5 = 0;\n      goto LAB_00036095;\n    }" ({ "{") (expression_statement "*(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;" (assignment_expression "*(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0" (pointer_expression "*(bool *)(iVar8 + 0x2c)" (* "*") (cast_expression "(bool *)(iVar8 + 0x2c)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2c)" (( "(") (binary_expression "iVar8 + 0x2c" (identifier "iVar8") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "*(int *)(iVar8 + 0x1c) != 0" (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00036095;" (goto "goto") (statement_identifier "LAB_00036095") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00036090:\n  uVar5 = 1;" (statement_identifier "LAB_00036090") (: ":") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";"))) (labeled_statement "LAB_00036095:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }" (statement_identifier "LAB_00036095") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000f4bf0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_000f4bf0();\n  }" ({ "{") (expression_statement "FUN_000f4bf0();" (call_expression "FUN_000f4bf0()" (identifier "FUN_000f4bf0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

int __regparm3 function_1(char *var_4,type_1 *p)

{
  type_2 var_8;
  double var_7;
  double var_6;
  int var_3;
  int var_9;
  type_3 uVar6;
  char cVar7;
  type_2 *var_5;
  int var_1;
  int h;
  int m;
  int s;
  int var_10;
  int var_11;
  int var_12;
  
  var_12 = *(int *)(var_1 + 0x14);
  var_3 = var_2(var_4,"20c:20e",&h,&m);
  if (var_3 == 2) {
    var_5 = (type_2 *)(var_4 + 5);
    if (var_4[5] == ':') {
      var_3 = var_2(var_4 + 6,"20e",&s);
      if (var_3 != 1) goto LAB_00036090;
      var_5 = (type_2 *)(var_4 + 8);
      if ((var_4[8] == '.') && (uVar6 = (type_3)(type_2)var_4[9], (""[uVar6] & 4) != 0)) {
        var_7 = 1.0;
        var_5 = (type_2 *)(var_4 + 9);
        var_6 = 0.0;
        do {
          cVar7 = (char)uVar6;
          var_5 = var_5 + 1;
          uVar6 = (type_3)*var_5;
          var_6 = ((double)(short)cVar7 + var_6 * (double)DAT_00107c44) - (double)DAT_00107ca0;
          var_7 = var_7 * (double)DAT_00107c44;
        } while ((""[uVar6] & 4) != 0);
        var_7 = var_6 / var_7 + (double)s;
      }
      else {
        var_7 = (double)s + (double)DAT_00107c48;
      }
    }
    else {
      s = 0;
      var_7 = 0.0;
    }
    p->validHMS = '\x01';
    p->validJD = '\0';
    p->rawS = '\0';
    p->h = h;
    p->s = var_7;
    p->m = m;
    var_8 = ""[*var_5];
    while ((var_8 & 1) != 0) {
      var_5 = var_5 + 1;
      var_8 = ""[*var_5];
    }
    p->tz = 0;
    var_8 = *var_5;
    if (var_8 == 0x2d) {
      var_3 = -1;
LAB_000360b5:
      var_9 = var_2((char *)(var_5 + 1),"20b:20e",&var_10,&var_11);
      if (var_9 != 2) goto LAB_00036090;
      var_5 = var_5 + 6;
      p->tz = var_3 * (var_10 * 0x3c + var_11);
LAB_000360e9:
      var_8 = ""[*var_5];
      while ((var_8 & 1) != 0) {
        var_5 = var_5 + 1;
        var_8 = ""[*var_5];
      }
      p->tzSet = '\x01';
      var_8 = *var_5;
    }
    else {
      if (var_8 == 0x2b) {
        var_3 = 1;
        goto LAB_000360b5;
      }
      var_5 = var_5 + 1;
      if ((var_8 & 0xdf) == 0x5a) goto LAB_000360e9;
    }
    if (var_8 == 0) {
      p->validTZ = p->tz != 0;
      var_3 = 0;
      goto LAB_00036095;
    }
  }
LAB_00036090:
  var_3 = 1;
LAB_00036095:
  if (var_12 == *(int *)(var_1 + 0x14)) {
    return var_3;
  }
                    /* WARNING: Subroutine does not return */
  var_13();
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (pointer_expression argument: (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: (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: (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: (char_literal (character)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (identifier) right: (number_literal)) right: (identifier))))) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))))) 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: (identifier) right: (number_literal)) right: (identifier))))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_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: (identifier))) (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: (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))) (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: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (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: (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: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (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: (identifier) right: (pointer_expression argument: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (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: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (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: (primitive_type) 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: (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: (number_literal))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (return_statement (identifier)))))

undefined4 MASKED(void)

{
  byte bVar1;
  double dVar2;
  double dVar3;
  int iVar4;
  undefined4 uVar5;
  uint uVar6;
  char cVar7;
  int iVar8;
  byte *pbVar9;
  int unaff_EBP;
  int iVar10;
  int in_GS_OFFSET;
  undefined8 uVar11;
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  int local_28;
  int local_24;
  int local_20;
  
  uVar11 = FUN_00019701();
  iVar8 = (int)((ulonglong)uVar11 >> 0x20);
  iVar10 = (int)uVar11;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar4 = FUN_000223d0(iVar10,&UNK_000c0780 + unaff_EBP,&local_34,&local_30);
  if (iVar4 == 2) {
    pbVar9 = (byte *)(iVar10 + 5);
    if (*(char *)(iVar10 + 5) == ':') {
      iVar4 = FUN_000223d0(iVar10 + 6,&UNK_000c09c8 + unaff_EBP,&local_2c);
      if (iVar4 != 1) goto LAB_00036090;
      pbVar9 = (byte *)(iVar10 + 8);
      if ((*(char *)(iVar10 + 8) == '.') &&
         (uVar6 = (uint)*(byte *)(iVar10 + 9), (*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0)) {
        dVar2 = 1.0;
        pbVar9 = (byte *)(iVar10 + 9);
        dVar3 = 0.0;
        do {
          cVar7 = (char)uVar6;
          pbVar9 = pbVar9 + 1;
          uVar6 = (uint)*pbVar9;
          dVar3 = ((double)(short)cVar7 + dVar3 * (double)*(float *)(unaff_EBP + 0xd1c7e)) -
                  (double)*(float *)(unaff_EBP + 0xd1cda);
          dVar2 = dVar2 * (double)*(float *)(unaff_EBP + 0xd1c7e);
        } while ((*(byte *)(unaff_EBP + 0xcc83a + uVar6) & 4) != 0);
        dVar2 = dVar3 / dVar2 + (double)local_2c;
      }
      else {
        dVar2 = (double)local_2c + (double)*(float *)(unaff_EBP + 0xd1c82);
      }
    }
    else {
      local_2c = 0;
      dVar2 = 0.0;
    }
    *(undefined1 *)(iVar8 + 0x2b) = 1;
    *(undefined2 *)(iVar8 + 0x28) = 0;
    *(undefined4 *)(iVar8 + 0x14) = local_34;
    *(double *)(iVar8 + 0x20) = dVar2;
    *(undefined4 *)(iVar8 + 0x18) = local_30;
    if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {
      do {
        pbVar9 = pbVar9 + 1;
      } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);
    }
    *(undefined4 *)(iVar8 + 0x1c) = 0;
    bVar1 = *pbVar9;
    if (bVar1 == 0x2d) {
      iVar10 = -1;
LAB_000360b5:
      iVar4 = FUN_000223d0(pbVar9 + 1,&UNK_000c0788 + unaff_EBP,&local_28,&local_24);
      if (iVar4 != 2) goto LAB_00036090;
      pbVar9 = pbVar9 + 6;
      *(int *)(iVar8 + 0x1c) = iVar10 * (local_28 * 0x3c + local_24);
LAB_000360e9:
      if ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0) {
        do {
          pbVar9 = pbVar9 + 1;
        } while ((*(byte *)(unaff_EBP + 0xcc83a + (uint)*pbVar9) & 1) != 0);
      }
      *(undefined1 *)(iVar8 + 0x2d) = 1;
      bVar1 = *pbVar9;
    }
    else {
      if (bVar1 == 0x2b) {
        iVar10 = 1;
        goto LAB_000360b5;
      }
      pbVar9 = pbVar9 + 1;
      if ((bVar1 & 0xdf) == 0x5a) goto LAB_000360e9;
    }
    if (bVar1 == 0) {
      *(bool *)(iVar8 + 0x2c) = *(int *)(iVar8 + 0x1c) != 0;
      uVar5 = 0;
      goto LAB_00036095;
    }
  }
LAB_00036090:
  uVar5 = 1;
LAB_00036095:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000f4bf0();
  }
  return uVar5;
}

