
void parse_variable_declaration(Ident *ident,int parm)

{
  long lVar1;
  int iVar2;
  char *pcVar3;
  long in_FS_OFFSET;
  Stackpos sp;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  mark(sp);
  ident->type_end = -1;
  if ((tok.type == 0x108) || (tok.type == 0x10b)) {
    iVar2 = nexttoken();
    if (iVar2 == 0x104) {
      ident->type_end = curs;
    }
    putback();
    skip_struct();
    iVar2 = curs;
    while (curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0) {
      nexttoken();
      iVar2 = curs;
    }
    if (tok.type == 0x104) {
      if (ident->type_end == -1) {
        restore(sp);
        tokdel(curs,iVar2 + -2);
        tokins(curs,0x104,tok.line,"{ ... }");
        debugtoken(&tok,"modified stack");
      }
    }
    else {
      if (tok.type == 0x3b) {
LAB_0010b2b1:
        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
          return;
        }
                    /* WARNING: Subroutine does not return */
        __stack_chk_fail();
      }
      restore(sp);
    }
  }
  do {
    parse_dcl(ident,0);
    while( true ) {
      if (tok.type == 0x3b) goto LAB_0010b2b1;
      if (tok.type < 0x3c) break;
      if ((tok.type == 0x7b) || (tok.type == 0x102)) {
        func_body();
        goto LAB_0010b2b1;
      }
      if (tok.type != 0x3d) goto LAB_0010b2a4;
      nexttoken();
      if ((tok.type == 0x7b) || (tok.type == 0x102)) {
        initializer_list();
      }
      else {
        expression();
      }
    }
    if (tok.type == 0x29) {
      if (parm == 0) {
LAB_0010b2a4:
        if (verbose != 0) {
          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);
          file_error(pcVar3,&tok);
        }
      }
      goto LAB_0010b2b1;
    }
    if (tok.type != 0x2c) {
      if (tok.type != 0) goto LAB_0010b2a4;
      if (verbose != 0) {
        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);
        file_error(pcVar3,(TOKSTK *)0x0);
      }
      goto LAB_0010b2b1;
    }
    if (parm != 0) goto LAB_0010b2b1;
    tos = ident->type_end;
    restore(sp);
  } while( true );
}



void FUN_0010b225(long param_1,int param_2)

{
  int iVar1;
  undefined8 uVar2;
  long in_FS_OFFSET;
  undefined1 local_24 [4];
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_0010922f(local_24);
  *(undefined4 *)(param_1 + 8) = 0xffffffff;
  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {
    iVar1 = FUN_001094bf();
    if (iVar1 == 0x104) {
      *(int *)(param_1 + 8) = DAT_00123380;
    }
    FUN_00109551();
    FUN_00109e79();
    iVar1 = DAT_00123380;
    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {
      FUN_001094bf();
      iVar1 = DAT_00123380;
    }
    if (DAT_001232e0 == 0x104) {
      if (*(int *)(param_1 + 8) == -1) {
        FUN_00109267(local_24);
        FUN_001092bd(DAT_00123380,iVar1 + -2);
        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");
        FUN_00108ece(&DAT_001232e0,"modified stack");
      }
    }
    else {
      if (DAT_001232e0 == 0x3b) {
LAB_0010b2b1:
        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {
          return;
        }
                    /* WARNING: Subroutine does not return */
        __stack_chk_fail();
      }
      FUN_00109267(local_24);
    }
  }
  do {
    FUN_0010b1cd(param_1,0);
    while( true ) {
      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;
      if (DAT_001232e0 < 0x3c) break;
      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {
        FUN_0010a4a5();
        goto LAB_0010b2b1;
      }
      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;
      FUN_001094bf();
      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {
        FUN_0010a421();
      }
      else {
        FUN_0010a273();
      }
    }
    if (DAT_001232e0 == 0x29) {
      if (param_2 == 0) {
LAB_0010b2a4:
        if (DAT_001231d0 != 0) {
          uVar2 = dcgettext(0,"expected `;\'",5);
          FUN_0010908a(uVar2,&DAT_001232e0);
        }
      }
      goto LAB_0010b2b1;
    }
    if (DAT_001232e0 != 0x2c) {
      if (DAT_001232e0 != 0) goto LAB_0010b2a4;
      if (DAT_001231d0 != 0) {
        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);
        FUN_0010908a(uVar2,0);
      }
      goto LAB_0010b2b1;
    }
    if (param_2 != 0) goto LAB_0010b2b1;
    DAT_001232f8 = *(undefined4 *)(param_1 + 8);
    FUN_00109267(local_24);
  } while( true );
}


PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x10
MOV RBX,RDI
MOV EBP,ESI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x8],RAX
XOR EAX,EAX
LEA RDI,[RSP + 0x4]
CALL 0x0010922f
MOV dword ptr [RBX + 0x8],0xffffffff
MOV EAX,dword ptr [0x001232e0]
CMP EAX,0x108
JZ 0x0010b2ce
CMP EAX,0x10b
JZ 0x0010b2ce
LEA R12,[RSP + 0x4]
MOV ESI,0x0
MOV RDI,RBX
CALL 0x0010b1cd
MOV EAX,dword ptr [0x001232e0]
CMP EAX,0x3b
JZ 0x0010b2b1
JG 0x0010b3b0
CMP EAX,0x29
JZ 0x0010b3f8
CMP EAX,0x2c
JZ 0x0010b42f
TEST EAX,EAX
JZ 0x0010b46b
CMP dword ptr [0x001231d0],0x0
JNZ 0x0010b405
MOV RAX,qword ptr [RSP + 0x8]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x0010b4a0
ADD RSP,0x10
POP RBX
POP RBP
POP R12
RET
MOV EAX,0x0
CALL 0x001094bf
CMP EAX,0x104
JZ 0x0010b340
MOV EAX,0x0
CALL 0x00109551
MOV EAX,0x0
CALL 0x00109e79
MOV EAX,dword ptr [0x001232e0]
LEA EDX,[RAX + -0x109]
TEST EDX,0xfffffff7
JNZ 0x0010b325
MOV EAX,0x0
CALL 0x001094bf
MOV EAX,dword ptr [0x001232e0]
LEA EDX,[RAX + -0x109]
TEST EDX,0xfffffff7
JZ 0x0010b307
CMP EAX,0x104
JZ 0x0010b34b
CMP EAX,0x3b
JZ 0x0010b2b1
LEA RDI,[RSP + 0x4]
CALL 0x00109267
JMP 0x0010b267
MOV EAX,dword ptr [0x00123380]
MOV dword ptr [RBX + 0x8],EAX
JMP 0x0010b2df
CMP dword ptr [RBX + 0x8],-0x1
JNZ 0x0010b267
MOV R12D,dword ptr [0x00123380]
LEA RDI,[RSP + 0x4]
CALL 0x00109267
LEA ESI,[R12 + -0x2]
MOV EDI,dword ptr [0x00123380]
CALL 0x001092bd
LEA RCX,[0x11ac4a]
MOV EDX,dword ptr [0x001232f0]
MOV ESI,0x104
MOV EDI,dword ptr [0x00123380]
CALL 0x0010931e
LEA RSI,[0x11ac52]
LEA RDI,[0x1232e0]
MOV EAX,0x0
CALL 0x00108ece
JMP 0x0010b267
CMP EAX,0x7b
JZ 0x0010b45c
CMP EAX,0x102
JZ 0x0010b45c
CMP EAX,0x3d
JNZ 0x0010b2a4
MOV EAX,0x0
CALL 0x001094bf
MOV EAX,dword ptr [0x001232e0]
CMP EAX,0x7b
JZ 0x0010b44d
CMP EAX,0x102
JZ 0x0010b44d
MOV EAX,0x0
CALL 0x0010a273
JMP 0x0010b279
TEST EBP,EBP
JNZ 0x0010b2b1
JMP 0x0010b2a4
MOV EDX,0x5
LEA RSI,[0x11abf7]
MOV EDI,0x0
CALL 0x00103180
LEA RSI,[0x1232e0]
MOV RDI,RAX
CALL 0x0010908a
JMP 0x0010b2b1
TEST EBP,EBP
JNZ 0x0010b2b1
MOV EAX,dword ptr [RBX + 0x8]
MOV dword ptr [0x001232f8],EAX
MOV RDI,R12
CALL 0x00109267
JMP 0x0010b26c
MOV EAX,0x0
CALL 0x0010a421
JMP 0x0010b279
MOV EAX,0x0
CALL 0x0010a4a5
JMP 0x0010b2b1
CMP dword ptr [0x001231d0],0x0
JZ 0x0010b2b1
MOV EDX,0x5
LEA RSI,[0x11afc0]
MOV EDI,0x0
CALL 0x00103180
MOV ESI,0x0
MOV RDI,RAX
CALL 0x0010908a
JMP 0x0010b2b1
CALL 0x00103190
(translation_unit "void FUN_0010b225(long param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}\n\n" (function_definition "void FUN_0010b225(long param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}" primitive_type (function_declarator "FUN_0010b225(long param_1,int param_2)" identifier (parameter_list "(long param_1,int param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_24 [4];" type_identifier (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "FUN_0010922f(local_24);" (call_expression "FUN_0010922f(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 8) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 8) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }" if (parenthesized_expression "((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b))" ( (binary_expression "(DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)" (parenthesized_expression "(DAT_001232e0 == 0x108)" ( (binary_expression "DAT_001232e0 == 0x108" identifier == number_literal) )) || (parenthesized_expression "(DAT_001232e0 == 0x10b)" ( (binary_expression "DAT_001232e0 == 0x10b" identifier == number_literal) ))) )) (compound_statement "{\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }" { (expression_statement "iVar1 = FUN_001094bf();" (assignment_expression "iVar1 = FUN_001094bf()" identifier = (call_expression "FUN_001094bf()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }" if (parenthesized_expression "(iVar1 == 0x104)" ( (binary_expression "iVar1 == 0x104" identifier == number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }" { (expression_statement "*(int *)(param_1 + 8) = DAT_00123380;" (assignment_expression "*(int *)(param_1 + 8) = DAT_00123380" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00109551();" (call_expression "FUN_00109551()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00109e79();" (call_expression "FUN_00109e79()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = DAT_00123380;" (assignment_expression "iVar1 = DAT_00123380" identifier = identifier) ;) (while_statement "while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }" while (parenthesized_expression "(DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0)" ( (comma_expression "DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0" (assignment_expression "DAT_00123380 = iVar1" identifier = identifier) , (binary_expression "(DAT_001232e0 - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(DAT_001232e0 - 0x109U & 0xfffffff7)" ( (binary_expression "DAT_001232e0 - 0x109U & 0xfffffff7" (binary_expression "DAT_001232e0 - 0x109U" identifier - number_literal) & number_literal) )) == number_literal)) )) (compound_statement "{\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }" { (expression_statement "FUN_001094bf();" (call_expression "FUN_001094bf()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = DAT_00123380;" (assignment_expression "iVar1 = DAT_00123380" identifier = identifier) ;) })) (if_statement "if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" if (parenthesized_expression "(DAT_001232e0 == 0x104)" ( (binary_expression "DAT_001232e0 == 0x104" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }" { (if_statement "if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }" if (parenthesized_expression "(*(int *)(param_1 + 8) == -1)" ( (binary_expression "*(int *)(param_1 + 8) == -1" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }" { (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_001092bd(DAT_00123380,iVar1 + -2);" (call_expression "FUN_001092bd(DAT_00123380,iVar1 + -2)" identifier (argument_list "(DAT_00123380,iVar1 + -2)" ( identifier , (binary_expression "iVar1 + -2" identifier + number_literal) ))) ;) (expression_statement "FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");" (call_expression "FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }")" identifier (argument_list "(DAT_00123380,0x104,DAT_001232f0,"{ ... }")" ( identifier , number_literal , identifier , (string_literal ""{ ... }"" " string_content ") ))) ;) (expression_statement "FUN_00108ece(&DAT_001232e0,"modified stack");" (call_expression "FUN_00108ece(&DAT_001232e0,"modified stack")" identifier (argument_list "(&DAT_001232e0,"modified stack")" ( (pointer_expression "&DAT_001232e0" & identifier) , (string_literal ""modified stack"" " string_content ") ))) ;) })) }) (else_clause "else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" else (compound_statement "{\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" { (if_statement "if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }" if (parenthesized_expression "(DAT_001232e0 == 0x3b)" ( (binary_expression "DAT_001232e0 == 0x3b" identifier == number_literal) )) (compound_statement "{\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }" { (labeled_statement "LAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" statement_identifier : (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" if (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }))) })) (do_statement "do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );" do (compound_statement "{\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  }" { (expression_statement "FUN_0010b1cd(param_1,0);" (call_expression "FUN_0010b1cd(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (while_statement "while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }" { (if_statement "if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;" if (parenthesized_expression "(DAT_001232e0 == 0x3b)" ( (binary_expression "DAT_001232e0 == 0x3b" identifier == number_literal) )) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;)) (if_statement "if (DAT_001232e0 < 0x3c) break;" if (parenthesized_expression "(DAT_001232e0 < 0x3c)" ( (binary_expression "DAT_001232e0 < 0x3c" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }" if (parenthesized_expression "((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102))" ( (binary_expression "(DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)" (parenthesized_expression "(DAT_001232e0 == 0x7b)" ( (binary_expression "DAT_001232e0 == 0x7b" identifier == number_literal) )) || (parenthesized_expression "(DAT_001232e0 == 0x102)" ( (binary_expression "DAT_001232e0 == 0x102" identifier == number_literal) ))) )) (compound_statement "{\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }" { (expression_statement "FUN_0010a4a5();" (call_expression "FUN_0010a4a5()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;" if (parenthesized_expression "(DAT_001232e0 != 0x3d)" ( (binary_expression "DAT_001232e0 != 0x3d" identifier != number_literal) )) (goto_statement "goto LAB_0010b2a4;" goto statement_identifier ;)) (expression_statement "FUN_001094bf();" (call_expression "FUN_001094bf()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }" if (parenthesized_expression "((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102))" ( (binary_expression "(DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)" (parenthesized_expression "(DAT_001232e0 == 0x7b)" ( (binary_expression "DAT_001232e0 == 0x7b" identifier == number_literal) )) || (parenthesized_expression "(DAT_001232e0 == 0x102)" ( (binary_expression "DAT_001232e0 == 0x102" identifier == number_literal) ))) )) (compound_statement "{\n        FUN_0010a421();\n      }" { (expression_statement "FUN_0010a421();" (call_expression "FUN_0010a421()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        FUN_0010a273();\n      }" else (compound_statement "{\n        FUN_0010a273();\n      }" { (expression_statement "FUN_0010a273();" (call_expression "FUN_0010a273()" identifier (argument_list "()" ( ))) ;) }))) })) (if_statement "if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" if (parenthesized_expression "(DAT_001232e0 == 0x29)" ( (binary_expression "DAT_001232e0 == 0x29" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" { (if_statement "if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }" { (labeled_statement "LAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" statement_identifier : (if_statement "if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" if (parenthesized_expression "(DAT_001231d0 != 0)" ( (binary_expression "DAT_001231d0 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" { (expression_statement "uVar2 = dcgettext(0,"expected `;\'",5);" (assignment_expression "uVar2 = dcgettext(0,"expected `;\'",5)" identifier = (call_expression "dcgettext(0,"expected `;\'",5)" identifier (argument_list "(0,"expected `;\'",5)" ( number_literal , (string_literal ""expected `;\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0010908a(uVar2,&DAT_001232e0);" (call_expression "FUN_0010908a(uVar2,&DAT_001232e0)" identifier (argument_list "(uVar2,&DAT_001232e0)" ( identifier , (pointer_expression "&DAT_001232e0" & identifier) ))) ;) }))) })) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }" if (parenthesized_expression "(DAT_001232e0 != 0x2c)" ( (binary_expression "DAT_001232e0 != 0x2c" identifier != number_literal) )) (compound_statement "{\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }" { (if_statement "if (DAT_001232e0 != 0) goto LAB_0010b2a4;" if (parenthesized_expression "(DAT_001232e0 != 0)" ( (binary_expression "DAT_001232e0 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010b2a4;" goto statement_identifier ;)) (if_statement "if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }" if (parenthesized_expression "(DAT_001231d0 != 0)" ( (binary_expression "DAT_001231d0 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }" { (expression_statement "uVar2 = dcgettext(0,"unexpected end of file in declaration",5);" (assignment_expression "uVar2 = dcgettext(0,"unexpected end of file in declaration",5)" identifier = (call_expression "dcgettext(0,"unexpected end of file in declaration",5)" identifier (argument_list "(0,"unexpected end of file in declaration",5)" ( number_literal , (string_literal ""unexpected end of file in declaration"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0010908a(uVar2,0);" (call_expression "FUN_0010908a(uVar2,0)" identifier (argument_list "(uVar2,0)" ( identifier , number_literal ))) ;) })) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (param_2 != 0) goto LAB_0010b2b1;" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;)) (expression_statement "DAT_001232f8 = *(undefined4 *)(param_1 + 8);" (assignment_expression "DAT_001232f8 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void parse_variable_declaration(Ident *ident,int parm)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  long in_FS_OFFSET;\n  Stackpos sp;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  mark(sp);\n  ident->type_end = -1;\n  if ((tok.type == 0x108) || (tok.type == 0x10b)) {\n    iVar2 = nexttoken();\n    if (iVar2 == 0x104) {\n      ident->type_end = curs;\n    }\n    putback();\n    skip_struct();\n    iVar2 = curs;\n    while (curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0) {\n      nexttoken();\n      iVar2 = curs;\n    }\n    if (tok.type == 0x104) {\n      if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }\n    }\n    else {\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }\n  }\n  do {\n    parse_dcl(ident,0);\n    while( true ) {\n      if (tok.type == 0x3b) goto LAB_0010b2b1;\n      if (tok.type < 0x3c) break;\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }\n      if (tok.type != 0x3d) goto LAB_0010b2a4;\n      nexttoken();\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }\n    }\n    if (tok.type == 0x29) {\n      if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (tok.type != 0x2c) {\n      if (tok.type != 0) goto LAB_0010b2a4;\n      if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (parm != 0) goto LAB_0010b2b1;\n    tos = ident->type_end;\n    restore(sp);\n  } while( true );\n}\n\n" (function_definition "void parse_variable_declaration(Ident *ident,int parm)\n\n{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  long in_FS_OFFSET;\n  Stackpos sp;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  mark(sp);\n  ident->type_end = -1;\n  if ((tok.type == 0x108) || (tok.type == 0x10b)) {\n    iVar2 = nexttoken();\n    if (iVar2 == 0x104) {\n      ident->type_end = curs;\n    }\n    putback();\n    skip_struct();\n    iVar2 = curs;\n    while (curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0) {\n      nexttoken();\n      iVar2 = curs;\n    }\n    if (tok.type == 0x104) {\n      if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }\n    }\n    else {\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }\n  }\n  do {\n    parse_dcl(ident,0);\n    while( true ) {\n      if (tok.type == 0x3b) goto LAB_0010b2b1;\n      if (tok.type < 0x3c) break;\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }\n      if (tok.type != 0x3d) goto LAB_0010b2a4;\n      nexttoken();\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }\n    }\n    if (tok.type == 0x29) {\n      if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (tok.type != 0x2c) {\n      if (tok.type != 0) goto LAB_0010b2a4;\n      if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (parm != 0) goto LAB_0010b2b1;\n    tos = ident->type_end;\n    restore(sp);\n  } while( true );\n}" primitive_type (function_declarator "parse_variable_declaration(Ident *ident,int parm)" identifier (parameter_list "(Ident *ident,int parm)" ( (parameter_declaration "Ident *ident" type_identifier (pointer_declarator "*ident" * identifier)) , (parameter_declaration "int parm" primitive_type identifier) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  char *pcVar3;\n  long in_FS_OFFSET;\n  Stackpos sp;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  mark(sp);\n  ident->type_end = -1;\n  if ((tok.type == 0x108) || (tok.type == 0x10b)) {\n    iVar2 = nexttoken();\n    if (iVar2 == 0x104) {\n      ident->type_end = curs;\n    }\n    putback();\n    skip_struct();\n    iVar2 = curs;\n    while (curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0) {\n      nexttoken();\n      iVar2 = curs;\n    }\n    if (tok.type == 0x104) {\n      if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }\n    }\n    else {\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }\n  }\n  do {\n    parse_dcl(ident,0);\n    while( true ) {\n      if (tok.type == 0x3b) goto LAB_0010b2b1;\n      if (tok.type < 0x3c) break;\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }\n      if (tok.type != 0x3d) goto LAB_0010b2a4;\n      nexttoken();\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }\n    }\n    if (tok.type == 0x29) {\n      if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (tok.type != 0x2c) {\n      if (tok.type != 0) goto LAB_0010b2a4;\n      if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (parm != 0) goto LAB_0010b2b1;\n    tos = ident->type_end;\n    restore(sp);\n  } while( true );\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "Stackpos sp;" type_identifier identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "mark(sp);" (call_expression "mark(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) (expression_statement "ident->type_end = -1;" (assignment_expression "ident->type_end = -1" (field_expression "ident->type_end" identifier -> field_identifier) = number_literal) ;) (if_statement "if ((tok.type == 0x108) || (tok.type == 0x10b)) {\n    iVar2 = nexttoken();\n    if (iVar2 == 0x104) {\n      ident->type_end = curs;\n    }\n    putback();\n    skip_struct();\n    iVar2 = curs;\n    while (curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0) {\n      nexttoken();\n      iVar2 = curs;\n    }\n    if (tok.type == 0x104) {\n      if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }\n    }\n    else {\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }\n  }" if (parenthesized_expression "((tok.type == 0x108) || (tok.type == 0x10b))" ( (binary_expression "(tok.type == 0x108) || (tok.type == 0x10b)" (parenthesized_expression "(tok.type == 0x108)" ( (binary_expression "tok.type == 0x108" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) || (parenthesized_expression "(tok.type == 0x10b)" ( (binary_expression "tok.type == 0x10b" (field_expression "tok.type" identifier . field_identifier) == number_literal) ))) )) (compound_statement "{\n    iVar2 = nexttoken();\n    if (iVar2 == 0x104) {\n      ident->type_end = curs;\n    }\n    putback();\n    skip_struct();\n    iVar2 = curs;\n    while (curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0) {\n      nexttoken();\n      iVar2 = curs;\n    }\n    if (tok.type == 0x104) {\n      if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }\n    }\n    else {\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }\n  }" { (expression_statement "iVar2 = nexttoken();" (assignment_expression "iVar2 = nexttoken()" identifier = (call_expression "nexttoken()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0x104) {\n      ident->type_end = curs;\n    }" if (parenthesized_expression "(iVar2 == 0x104)" ( (binary_expression "iVar2 == 0x104" identifier == number_literal) )) (compound_statement "{\n      ident->type_end = curs;\n    }" { (expression_statement "ident->type_end = curs;" (assignment_expression "ident->type_end = curs" (field_expression "ident->type_end" identifier -> field_identifier) = identifier) ;) })) (expression_statement "putback();" (call_expression "putback()" identifier (argument_list "()" ( ))) ;) (expression_statement "skip_struct();" (call_expression "skip_struct()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar2 = curs;" (assignment_expression "iVar2 = curs" identifier = identifier) ;) (while_statement "while (curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0) {\n      nexttoken();\n      iVar2 = curs;\n    }" while (parenthesized_expression "(curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0)" ( (comma_expression "curs = iVar2, (tok.type - 0x109U & 0xfffffff7) == 0" (assignment_expression "curs = iVar2" identifier = identifier) , (binary_expression "(tok.type - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(tok.type - 0x109U & 0xfffffff7)" ( (binary_expression "tok.type - 0x109U & 0xfffffff7" (binary_expression "tok.type - 0x109U" (field_expression "tok.type" identifier . field_identifier) - number_literal) & number_literal) )) == number_literal)) )) (compound_statement "{\n      nexttoken();\n      iVar2 = curs;\n    }" { (expression_statement "nexttoken();" (call_expression "nexttoken()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar2 = curs;" (assignment_expression "iVar2 = curs" identifier = identifier) ;) })) (if_statement "if (tok.type == 0x104) {\n      if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }\n    }\n    else {\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }" if (parenthesized_expression "(tok.type == 0x104)" ( (binary_expression "tok.type == 0x104" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }\n    }" { (if_statement "if (ident->type_end == -1) {\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }" if (parenthesized_expression "(ident->type_end == -1)" ( (binary_expression "ident->type_end == -1" (field_expression "ident->type_end" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        restore(sp);\n        tokdel(curs,iVar2 + -2);\n        tokins(curs,0x104,tok.line,"{ ... }");\n        debugtoken(&tok,"modified stack");\n      }" { (expression_statement "restore(sp);" (call_expression "restore(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) (expression_statement "tokdel(curs,iVar2 + -2);" (call_expression "tokdel(curs,iVar2 + -2)" identifier (argument_list "(curs,iVar2 + -2)" ( identifier , (binary_expression "iVar2 + -2" identifier + number_literal) ))) ;) (expression_statement "tokins(curs,0x104,tok.line,"{ ... }");" (call_expression "tokins(curs,0x104,tok.line,"{ ... }")" identifier (argument_list "(curs,0x104,tok.line,"{ ... }")" ( identifier , number_literal , (field_expression "tok.line" identifier . field_identifier) , (string_literal ""{ ... }"" " string_content ") ))) ;) (expression_statement "debugtoken(&tok,"modified stack");" (call_expression "debugtoken(&tok,"modified stack")" identifier (argument_list "(&tok,"modified stack")" ( (pointer_expression "&tok" & identifier) , (string_literal ""modified stack"" " string_content ") ))) ;) })) }) (else_clause "else {\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }" else (compound_statement "{\n      if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }\n      restore(sp);\n    }" { (if_statement "if (tok.type == 0x3b) {\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }" if (parenthesized_expression "(tok.type == 0x3b)" ( (binary_expression "tok.type == 0x3b" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (compound_statement "{\nLAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    /* WARNING: Subroutine does not return */\n        __stack_chk_fail();\n      }" { (labeled_statement "LAB_0010b2b1:\n        if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" statement_identifier : (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "restore(sp);" (call_expression "restore(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) }))) })) (do_statement "do {\n    parse_dcl(ident,0);\n    while( true ) {\n      if (tok.type == 0x3b) goto LAB_0010b2b1;\n      if (tok.type < 0x3c) break;\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }\n      if (tok.type != 0x3d) goto LAB_0010b2a4;\n      nexttoken();\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }\n    }\n    if (tok.type == 0x29) {\n      if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (tok.type != 0x2c) {\n      if (tok.type != 0) goto LAB_0010b2a4;\n      if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (parm != 0) goto LAB_0010b2b1;\n    tos = ident->type_end;\n    restore(sp);\n  } while( true );" do (compound_statement "{\n    parse_dcl(ident,0);\n    while( true ) {\n      if (tok.type == 0x3b) goto LAB_0010b2b1;\n      if (tok.type < 0x3c) break;\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }\n      if (tok.type != 0x3d) goto LAB_0010b2a4;\n      nexttoken();\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }\n    }\n    if (tok.type == 0x29) {\n      if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (tok.type != 0x2c) {\n      if (tok.type != 0) goto LAB_0010b2a4;\n      if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (parm != 0) goto LAB_0010b2b1;\n    tos = ident->type_end;\n    restore(sp);\n  }" { (expression_statement "parse_dcl(ident,0);" (call_expression "parse_dcl(ident,0)" identifier (argument_list "(ident,0)" ( identifier , number_literal ))) ;) (while_statement "while( true ) {\n      if (tok.type == 0x3b) goto LAB_0010b2b1;\n      if (tok.type < 0x3c) break;\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }\n      if (tok.type != 0x3d) goto LAB_0010b2a4;\n      nexttoken();\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (tok.type == 0x3b) goto LAB_0010b2b1;\n      if (tok.type < 0x3c) break;\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }\n      if (tok.type != 0x3d) goto LAB_0010b2a4;\n      nexttoken();\n      if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }\n    }" { (if_statement "if (tok.type == 0x3b) goto LAB_0010b2b1;" if (parenthesized_expression "(tok.type == 0x3b)" ( (binary_expression "tok.type == 0x3b" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;)) (if_statement "if (tok.type < 0x3c) break;" if (parenthesized_expression "(tok.type < 0x3c)" ( (binary_expression "tok.type < 0x3c" (field_expression "tok.type" identifier . field_identifier) < number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        func_body();\n        goto LAB_0010b2b1;\n      }" if (parenthesized_expression "((tok.type == 0x7b) || (tok.type == 0x102))" ( (binary_expression "(tok.type == 0x7b) || (tok.type == 0x102)" (parenthesized_expression "(tok.type == 0x7b)" ( (binary_expression "tok.type == 0x7b" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) || (parenthesized_expression "(tok.type == 0x102)" ( (binary_expression "tok.type == 0x102" (field_expression "tok.type" identifier . field_identifier) == number_literal) ))) )) (compound_statement "{\n        func_body();\n        goto LAB_0010b2b1;\n      }" { (expression_statement "func_body();" (call_expression "func_body()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (tok.type != 0x3d) goto LAB_0010b2a4;" if (parenthesized_expression "(tok.type != 0x3d)" ( (binary_expression "tok.type != 0x3d" (field_expression "tok.type" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_0010b2a4;" goto statement_identifier ;)) (expression_statement "nexttoken();" (call_expression "nexttoken()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((tok.type == 0x7b) || (tok.type == 0x102)) {\n        initializer_list();\n      }\n      else {\n        expression();\n      }" if (parenthesized_expression "((tok.type == 0x7b) || (tok.type == 0x102))" ( (binary_expression "(tok.type == 0x7b) || (tok.type == 0x102)" (parenthesized_expression "(tok.type == 0x7b)" ( (binary_expression "tok.type == 0x7b" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) || (parenthesized_expression "(tok.type == 0x102)" ( (binary_expression "tok.type == 0x102" (field_expression "tok.type" identifier . field_identifier) == number_literal) ))) )) (compound_statement "{\n        initializer_list();\n      }" { (expression_statement "initializer_list();" (call_expression "initializer_list()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        expression();\n      }" else (compound_statement "{\n        expression();\n      }" { (expression_statement "expression();" (call_expression "expression()" identifier (argument_list "()" ( ))) ;) }))) })) (if_statement "if (tok.type == 0x29) {\n      if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" if (parenthesized_expression "(tok.type == 0x29)" ( (binary_expression "tok.type == 0x29" (field_expression "tok.type" identifier . field_identifier) == number_literal) )) (compound_statement "{\n      if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" { (if_statement "if (parm == 0) {\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }" if (parenthesized_expression "(parm == 0)" ( (binary_expression "parm == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }\n      }" { (labeled_statement "LAB_0010b2a4:\n        if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }" statement_identifier : (if_statement "if (verbose != 0) {\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = (char *)dcgettext(0,"expected `;\'",5);\n          file_error(pcVar3,&tok);\n        }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"expected `;\'",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"expected `;\'",5)" identifier = (cast_expression "(char *)dcgettext(0,"expected `;\'",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"expected `;\'",5)" identifier (argument_list "(0,"expected `;\'",5)" ( number_literal , (string_literal ""expected `;\'"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "file_error(pcVar3,&tok);" (call_expression "file_error(pcVar3,&tok)" identifier (argument_list "(pcVar3,&tok)" ( identifier , (pointer_expression "&tok" & identifier) ))) ;) }))) })) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (tok.type != 0x2c) {\n      if (tok.type != 0) goto LAB_0010b2a4;\n      if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }\n      goto LAB_0010b2b1;\n    }" if (parenthesized_expression "(tok.type != 0x2c)" ( (binary_expression "tok.type != 0x2c" (field_expression "tok.type" identifier . field_identifier) != number_literal) )) (compound_statement "{\n      if (tok.type != 0) goto LAB_0010b2a4;\n      if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }\n      goto LAB_0010b2b1;\n    }" { (if_statement "if (tok.type != 0) goto LAB_0010b2a4;" if (parenthesized_expression "(tok.type != 0)" ( (binary_expression "tok.type != 0" (field_expression "tok.type" identifier . field_identifier) != number_literal) )) (goto_statement "goto LAB_0010b2a4;" goto statement_identifier ;)) (if_statement "if (verbose != 0) {\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);\n        file_error(pcVar3,(TOKSTK *)0x0);\n      }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"unexpected end of file in declaration",5)" identifier = (cast_expression "(char *)dcgettext(0,"unexpected end of file in declaration",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unexpected end of file in declaration",5)" identifier (argument_list "(0,"unexpected end of file in declaration",5)" ( number_literal , (string_literal ""unexpected end of file in declaration"" " string_content ") , number_literal ))))) ;) (expression_statement "file_error(pcVar3,(TOKSTK *)0x0);" (call_expression "file_error(pcVar3,(TOKSTK *)0x0)" identifier (argument_list "(pcVar3,(TOKSTK *)0x0)" ( identifier , (cast_expression "(TOKSTK *)0x0" ( (type_descriptor "TOKSTK *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (parm != 0) goto LAB_0010b2b1;" if (parenthesized_expression "(parm != 0)" ( (binary_expression "parm != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;)) (expression_statement "tos = ident->type_end;" (assignment_expression "tos = ident->type_end" identifier = (field_expression "ident->type_end" identifier -> field_identifier)) ;) (expression_statement "restore(sp);" (call_expression "restore(sp)" identifier (argument_list "(sp)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_0010b225(long param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}\n\n" (function_definition "void FUN_0010b225(long param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}" primitive_type (function_declarator "FUN_0010b225(long param_1,int param_2)" identifier (parameter_list "(long param_1,int param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_24 [4];" type_identifier (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "FUN_0010922f(local_24);" (call_expression "FUN_0010922f(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 8) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 8) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }" if (parenthesized_expression "((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b))" ( (binary_expression "(DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)" (parenthesized_expression "(DAT_001232e0 == 0x108)" ( (binary_expression "DAT_001232e0 == 0x108" identifier == number_literal) )) || (parenthesized_expression "(DAT_001232e0 == 0x10b)" ( (binary_expression "DAT_001232e0 == 0x10b" identifier == number_literal) ))) )) (compound_statement "{\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }" { (expression_statement "iVar1 = FUN_001094bf();" (assignment_expression "iVar1 = FUN_001094bf()" identifier = (call_expression "FUN_001094bf()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }" if (parenthesized_expression "(iVar1 == 0x104)" ( (binary_expression "iVar1 == 0x104" identifier == number_literal) )) (compound_statement "{\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }" { (expression_statement "*(int *)(param_1 + 8) = DAT_00123380;" (assignment_expression "*(int *)(param_1 + 8) = DAT_00123380" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00109551();" (call_expression "FUN_00109551()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00109e79();" (call_expression "FUN_00109e79()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = DAT_00123380;" (assignment_expression "iVar1 = DAT_00123380" identifier = identifier) ;) (while_statement "while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }" while (parenthesized_expression "(DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0)" ( (comma_expression "DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0" (assignment_expression "DAT_00123380 = iVar1" identifier = identifier) , (binary_expression "(DAT_001232e0 - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(DAT_001232e0 - 0x109U & 0xfffffff7)" ( (binary_expression "DAT_001232e0 - 0x109U & 0xfffffff7" (binary_expression "DAT_001232e0 - 0x109U" identifier - number_literal) & number_literal) )) == number_literal)) )) (compound_statement "{\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }" { (expression_statement "FUN_001094bf();" (call_expression "FUN_001094bf()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = DAT_00123380;" (assignment_expression "iVar1 = DAT_00123380" identifier = identifier) ;) })) (if_statement "if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" if (parenthesized_expression "(DAT_001232e0 == 0x104)" ( (binary_expression "DAT_001232e0 == 0x104" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }" { (if_statement "if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }" if (parenthesized_expression "(*(int *)(param_1 + 8) == -1)" ( (binary_expression "*(int *)(param_1 + 8) == -1" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }" { (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_001092bd(DAT_00123380,iVar1 + -2);" (call_expression "FUN_001092bd(DAT_00123380,iVar1 + -2)" identifier (argument_list "(DAT_00123380,iVar1 + -2)" ( identifier , (binary_expression "iVar1 + -2" identifier + number_literal) ))) ;) (expression_statement "FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");" (call_expression "FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }")" identifier (argument_list "(DAT_00123380,0x104,DAT_001232f0,"{ ... }")" ( identifier , number_literal , identifier , (string_literal ""{ ... }"" " string_content ") ))) ;) (expression_statement "FUN_00108ece(&DAT_001232e0,"modified stack");" (call_expression "FUN_00108ece(&DAT_001232e0,"modified stack")" identifier (argument_list "(&DAT_001232e0,"modified stack")" ( (pointer_expression "&DAT_001232e0" & identifier) , (string_literal ""modified stack"" " string_content ") ))) ;) })) }) (else_clause "else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" else (compound_statement "{\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" { (if_statement "if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }" if (parenthesized_expression "(DAT_001232e0 == 0x3b)" ( (binary_expression "DAT_001232e0 == 0x3b" identifier == number_literal) )) (compound_statement "{\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }" { (labeled_statement "LAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" statement_identifier : (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" if (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }))) })) (do_statement "do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );" do (compound_statement "{\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  }" { (expression_statement "FUN_0010b1cd(param_1,0);" (call_expression "FUN_0010b1cd(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (while_statement "while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }" { (if_statement "if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;" if (parenthesized_expression "(DAT_001232e0 == 0x3b)" ( (binary_expression "DAT_001232e0 == 0x3b" identifier == number_literal) )) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;)) (if_statement "if (DAT_001232e0 < 0x3c) break;" if (parenthesized_expression "(DAT_001232e0 < 0x3c)" ( (binary_expression "DAT_001232e0 < 0x3c" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }" if (parenthesized_expression "((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102))" ( (binary_expression "(DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)" (parenthesized_expression "(DAT_001232e0 == 0x7b)" ( (binary_expression "DAT_001232e0 == 0x7b" identifier == number_literal) )) || (parenthesized_expression "(DAT_001232e0 == 0x102)" ( (binary_expression "DAT_001232e0 == 0x102" identifier == number_literal) ))) )) (compound_statement "{\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }" { (expression_statement "FUN_0010a4a5();" (call_expression "FUN_0010a4a5()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;" if (parenthesized_expression "(DAT_001232e0 != 0x3d)" ( (binary_expression "DAT_001232e0 != 0x3d" identifier != number_literal) )) (goto_statement "goto LAB_0010b2a4;" goto statement_identifier ;)) (expression_statement "FUN_001094bf();" (call_expression "FUN_001094bf()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }" if (parenthesized_expression "((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102))" ( (binary_expression "(DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)" (parenthesized_expression "(DAT_001232e0 == 0x7b)" ( (binary_expression "DAT_001232e0 == 0x7b" identifier == number_literal) )) || (parenthesized_expression "(DAT_001232e0 == 0x102)" ( (binary_expression "DAT_001232e0 == 0x102" identifier == number_literal) ))) )) (compound_statement "{\n        FUN_0010a421();\n      }" { (expression_statement "FUN_0010a421();" (call_expression "FUN_0010a421()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        FUN_0010a273();\n      }" else (compound_statement "{\n        FUN_0010a273();\n      }" { (expression_statement "FUN_0010a273();" (call_expression "FUN_0010a273()" identifier (argument_list "()" ( ))) ;) }))) })) (if_statement "if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" if (parenthesized_expression "(DAT_001232e0 == 0x29)" ( (binary_expression "DAT_001232e0 == 0x29" identifier == number_literal) )) (compound_statement "{\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" { (if_statement "if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }" { (labeled_statement "LAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" statement_identifier : (if_statement "if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" if (parenthesized_expression "(DAT_001231d0 != 0)" ( (binary_expression "DAT_001231d0 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" { (expression_statement "uVar2 = dcgettext(0,"expected `;\'",5);" (assignment_expression "uVar2 = dcgettext(0,"expected `;\'",5)" identifier = (call_expression "dcgettext(0,"expected `;\'",5)" identifier (argument_list "(0,"expected `;\'",5)" ( number_literal , (string_literal ""expected `;\'"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0010908a(uVar2,&DAT_001232e0);" (call_expression "FUN_0010908a(uVar2,&DAT_001232e0)" identifier (argument_list "(uVar2,&DAT_001232e0)" ( identifier , (pointer_expression "&DAT_001232e0" & identifier) ))) ;) }))) })) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }" if (parenthesized_expression "(DAT_001232e0 != 0x2c)" ( (binary_expression "DAT_001232e0 != 0x2c" identifier != number_literal) )) (compound_statement "{\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }" { (if_statement "if (DAT_001232e0 != 0) goto LAB_0010b2a4;" if (parenthesized_expression "(DAT_001232e0 != 0)" ( (binary_expression "DAT_001232e0 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010b2a4;" goto statement_identifier ;)) (if_statement "if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }" if (parenthesized_expression "(DAT_001231d0 != 0)" ( (binary_expression "DAT_001231d0 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }" { (expression_statement "uVar2 = dcgettext(0,"unexpected end of file in declaration",5);" (assignment_expression "uVar2 = dcgettext(0,"unexpected end of file in declaration",5)" identifier = (call_expression "dcgettext(0,"unexpected end of file in declaration",5)" identifier (argument_list "(0,"unexpected end of file in declaration",5)" ( number_literal , (string_literal ""unexpected end of file in declaration"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0010908a(uVar2,0);" (call_expression "FUN_0010908a(uVar2,0)" identifier (argument_list "(uVar2,0)" ( identifier , number_literal ))) ;) })) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;) })) (if_statement "if (param_2 != 0) goto LAB_0010b2b1;" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0010b2b1;" goto statement_identifier ;)) (expression_statement "DAT_001232f8 = *(undefined4 *)(param_1 + 8);" (assignment_expression "DAT_001232f8 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (string_literal " string_content ") ))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) })) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) }))) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_0010b225(long param_1,int param_2)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_0010b225(long param_1,int param_2)" (identifier "FUN_0010b225") (parameter_list "(long param_1,int param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  long in_FS_OFFSET;\n  undefined1 local_24 [4];\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  FUN_0010922f(local_24);\n  *(undefined4 *)(param_1 + 8) = 0xffffffff;\n  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }\n  do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined1 local_24 [4];" (type_identifier "undefined1") (array_declarator "local_24 [4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "long local_20;" (sized_type_specifier "long" (long "long")) (identifier "local_20") (; ";")) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "FUN_0010922f(local_24);" (call_expression "FUN_0010922f(local_24)" (identifier "FUN_0010922f") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 8) = 0xffffffff;" (assignment_expression "*(undefined4 *)(param_1 + 8) = 0xffffffff" (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }" (if "if") (parenthesized_expression "((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b))" (( "(") (binary_expression "(DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)" (parenthesized_expression "(DAT_001232e0 == 0x108)" (( "(") (binary_expression "DAT_001232e0 == 0x108" (identifier "DAT_001232e0") (== "==") (number_literal "0x108")) () ")")) (|| "||") (parenthesized_expression "(DAT_001232e0 == 0x10b)" (( "(") (binary_expression "DAT_001232e0 == 0x10b" (identifier "DAT_001232e0") (== "==") (number_literal "0x10b")) () ")"))) () ")")) (compound_statement "{\n    iVar1 = FUN_001094bf();\n    if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }\n    FUN_00109551();\n    FUN_00109e79();\n    iVar1 = DAT_00123380;\n    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }\n    if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }\n  }" ({ "{") (expression_statement "iVar1 = FUN_001094bf();" (assignment_expression "iVar1 = FUN_001094bf()" (identifier "iVar1") (= "=") (call_expression "FUN_001094bf()" (identifier "FUN_001094bf") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 0x104) {\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0x104)" (( "(") (binary_expression "iVar1 == 0x104" (identifier "iVar1") (== "==") (number_literal "0x104")) () ")")) (compound_statement "{\n      *(int *)(param_1 + 8) = DAT_00123380;\n    }" ({ "{") (expression_statement "*(int *)(param_1 + 8) = DAT_00123380;" (assignment_expression "*(int *)(param_1 + 8) = DAT_00123380" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "DAT_00123380")) (; ";")) (} "}"))) (expression_statement "FUN_00109551();" (call_expression "FUN_00109551()" (identifier "FUN_00109551") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00109e79();" (call_expression "FUN_00109e79()" (identifier "FUN_00109e79") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = DAT_00123380;" (assignment_expression "iVar1 = DAT_00123380" (identifier "iVar1") (= "=") (identifier "DAT_00123380")) (; ";")) (while_statement "while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }" (while "while") (parenthesized_expression "(DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0)" (( "(") (comma_expression "DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0" (assignment_expression "DAT_00123380 = iVar1" (identifier "DAT_00123380") (= "=") (identifier "iVar1")) (, ",") (binary_expression "(DAT_001232e0 - 0x109U & 0xfffffff7) == 0" (parenthesized_expression "(DAT_001232e0 - 0x109U & 0xfffffff7)" (( "(") (binary_expression "DAT_001232e0 - 0x109U & 0xfffffff7" (binary_expression "DAT_001232e0 - 0x109U" (identifier "DAT_001232e0") (- "-") (number_literal "0x109U")) (& "&") (number_literal "0xfffffff7")) () ")")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      FUN_001094bf();\n      iVar1 = DAT_00123380;\n    }" ({ "{") (expression_statement "FUN_001094bf();" (call_expression "FUN_001094bf()" (identifier "FUN_001094bf") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = DAT_00123380;" (assignment_expression "iVar1 = DAT_00123380" (identifier "iVar1") (= "=") (identifier "DAT_00123380")) (; ";")) (} "}"))) (if_statement "if (DAT_001232e0 == 0x104) {\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }\n    else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" (if "if") (parenthesized_expression "(DAT_001232e0 == 0x104)" (( "(") (binary_expression "DAT_001232e0 == 0x104" (identifier "DAT_001232e0") (== "==") (number_literal "0x104")) () ")")) (compound_statement "{\n      if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }\n    }" ({ "{") (if_statement "if (*(int *)(param_1 + 8) == -1) {\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) == -1)" (( "(") (binary_expression "*(int *)(param_1 + 8) == -1" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        FUN_00109267(local_24);\n        FUN_001092bd(DAT_00123380,iVar1 + -2);\n        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");\n        FUN_00108ece(&DAT_001232e0,"modified stack");\n      }" ({ "{") (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" (identifier "FUN_00109267") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "FUN_001092bd(DAT_00123380,iVar1 + -2);" (call_expression "FUN_001092bd(DAT_00123380,iVar1 + -2)" (identifier "FUN_001092bd") (argument_list "(DAT_00123380,iVar1 + -2)" (( "(") (identifier "DAT_00123380") (, ",") (binary_expression "iVar1 + -2" (identifier "iVar1") (+ "+") (number_literal "-2")) () ")"))) (; ";")) (expression_statement "FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");" (call_expression "FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }")" (identifier "FUN_0010931e") (argument_list "(DAT_00123380,0x104,DAT_001232f0,"{ ... }")" (( "(") (identifier "DAT_00123380") (, ",") (number_literal "0x104") (, ",") (identifier "DAT_001232f0") (, ",") (string_literal ""{ ... }"" (" """) (string_content "{ ... }") (" """)) () ")"))) (; ";")) (expression_statement "FUN_00108ece(&DAT_001232e0,"modified stack");" (call_expression "FUN_00108ece(&DAT_001232e0,"modified stack")" (identifier "FUN_00108ece") (argument_list "(&DAT_001232e0,"modified stack")" (( "(") (pointer_expression "&DAT_001232e0" (& "&") (identifier "DAT_001232e0")) (, ",") (string_literal ""modified stack"" (" """) (string_content "modified stack") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" (else "else") (compound_statement "{\n      if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }\n      FUN_00109267(local_24);\n    }" ({ "{") (if_statement "if (DAT_001232e0 == 0x3b) {\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }" (if "if") (parenthesized_expression "(DAT_001232e0 == 0x3b)" (( "(") (binary_expression "DAT_001232e0 == 0x3b" (identifier "DAT_001232e0") (== "==") (number_literal "0x3b")) () ")")) (compound_statement "{\nLAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }\n                    \n        __stack_chk_fail();\n      }" ({ "{") (labeled_statement "LAB_0010b2b1:\n        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" (statement_identifier "LAB_0010b2b1") (: ":") (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n          return;\n        }" (if "if") (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" (identifier "FUN_00109267") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (} "}")))) (} "}"))) (do_statement "do {\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  } while( true );" (do "do") (compound_statement "{\n    FUN_0010b1cd(param_1,0);\n    while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }\n    if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }\n    if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }\n    if (param_2 != 0) goto LAB_0010b2b1;\n    DAT_001232f8 = *(undefined4 *)(param_1 + 8);\n    FUN_00109267(local_24);\n  }" ({ "{") (expression_statement "FUN_0010b1cd(param_1,0);" (call_expression "FUN_0010b1cd(param_1,0)" (identifier "FUN_0010b1cd") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")"))) (; ";")) (while_statement "while( true ) {\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;\n      if (DAT_001232e0 < 0x3c) break;\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }\n      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;\n      FUN_001094bf();\n      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }\n    }" ({ "{") (if_statement "if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;" (if "if") (parenthesized_expression "(DAT_001232e0 == 0x3b)" (( "(") (binary_expression "DAT_001232e0 == 0x3b" (identifier "DAT_001232e0") (== "==") (number_literal "0x3b")) () ")")) (goto_statement "goto LAB_0010b2b1;" (goto "goto") (statement_identifier "LAB_0010b2b1") (; ";"))) (if_statement "if (DAT_001232e0 < 0x3c) break;" (if "if") (parenthesized_expression "(DAT_001232e0 < 0x3c)" (( "(") (binary_expression "DAT_001232e0 < 0x3c" (identifier "DAT_001232e0") (< "<") (number_literal "0x3c")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }" (if "if") (parenthesized_expression "((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102))" (( "(") (binary_expression "(DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)" (parenthesized_expression "(DAT_001232e0 == 0x7b)" (( "(") (binary_expression "DAT_001232e0 == 0x7b" (identifier "DAT_001232e0") (== "==") (number_literal "0x7b")) () ")")) (|| "||") (parenthesized_expression "(DAT_001232e0 == 0x102)" (( "(") (binary_expression "DAT_001232e0 == 0x102" (identifier "DAT_001232e0") (== "==") (number_literal "0x102")) () ")"))) () ")")) (compound_statement "{\n        FUN_0010a4a5();\n        goto LAB_0010b2b1;\n      }" ({ "{") (expression_statement "FUN_0010a4a5();" (call_expression "FUN_0010a4a5()" (identifier "FUN_0010a4a5") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0010b2b1;" (goto "goto") (statement_identifier "LAB_0010b2b1") (; ";")) (} "}"))) (if_statement "if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;" (if "if") (parenthesized_expression "(DAT_001232e0 != 0x3d)" (( "(") (binary_expression "DAT_001232e0 != 0x3d" (identifier "DAT_001232e0") (!= "!=") (number_literal "0x3d")) () ")")) (goto_statement "goto LAB_0010b2a4;" (goto "goto") (statement_identifier "LAB_0010b2a4") (; ";"))) (expression_statement "FUN_001094bf();" (call_expression "FUN_001094bf()" (identifier "FUN_001094bf") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {\n        FUN_0010a421();\n      }\n      else {\n        FUN_0010a273();\n      }" (if "if") (parenthesized_expression "((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102))" (( "(") (binary_expression "(DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)" (parenthesized_expression "(DAT_001232e0 == 0x7b)" (( "(") (binary_expression "DAT_001232e0 == 0x7b" (identifier "DAT_001232e0") (== "==") (number_literal "0x7b")) () ")")) (|| "||") (parenthesized_expression "(DAT_001232e0 == 0x102)" (( "(") (binary_expression "DAT_001232e0 == 0x102" (identifier "DAT_001232e0") (== "==") (number_literal "0x102")) () ")"))) () ")")) (compound_statement "{\n        FUN_0010a421();\n      }" ({ "{") (expression_statement "FUN_0010a421();" (call_expression "FUN_0010a421()" (identifier "FUN_0010a421") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_0010a273();\n      }" (else "else") (compound_statement "{\n        FUN_0010a273();\n      }" ({ "{") (expression_statement "FUN_0010a273();" (call_expression "FUN_0010a273()" (identifier "FUN_0010a273") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (DAT_001232e0 == 0x29) {\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" (if "if") (parenthesized_expression "(DAT_001232e0 == 0x29)" (( "(") (binary_expression "DAT_001232e0 == 0x29" (identifier "DAT_001232e0") (== "==") (number_literal "0x29")) () ")")) (compound_statement "{\n      if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }\n      goto LAB_0010b2b1;\n    }" ({ "{") (if_statement "if (param_2 == 0) {\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }\n      }" ({ "{") (labeled_statement "LAB_0010b2a4:\n        if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" (statement_identifier "LAB_0010b2a4") (: ":") (if_statement "if (DAT_001231d0 != 0) {\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" (if "if") (parenthesized_expression "(DAT_001231d0 != 0)" (( "(") (binary_expression "DAT_001231d0 != 0" (identifier "DAT_001231d0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar2 = dcgettext(0,"expected `;\'",5);\n          FUN_0010908a(uVar2,&DAT_001232e0);\n        }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"expected `;\'",5);" (assignment_expression "uVar2 = dcgettext(0,"expected `;\'",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"expected `;\'",5)" (identifier "dcgettext") (argument_list "(0,"expected `;\'",5)" (( "(") (number_literal "0") (, ",") (string_literal ""expected `;\'"" (" """) (string_content "expected `;") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0010908a(uVar2,&DAT_001232e0);" (call_expression "FUN_0010908a(uVar2,&DAT_001232e0)" (identifier "FUN_0010908a") (argument_list "(uVar2,&DAT_001232e0)" (( "(") (identifier "uVar2") (, ",") (pointer_expression "&DAT_001232e0" (& "&") (identifier "DAT_001232e0")) () ")"))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_0010b2b1;" (goto "goto") (statement_identifier "LAB_0010b2b1") (; ";")) (} "}"))) (if_statement "if (DAT_001232e0 != 0x2c) {\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }" (if "if") (parenthesized_expression "(DAT_001232e0 != 0x2c)" (( "(") (binary_expression "DAT_001232e0 != 0x2c" (identifier "DAT_001232e0") (!= "!=") (number_literal "0x2c")) () ")")) (compound_statement "{\n      if (DAT_001232e0 != 0) goto LAB_0010b2a4;\n      if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }\n      goto LAB_0010b2b1;\n    }" ({ "{") (if_statement "if (DAT_001232e0 != 0) goto LAB_0010b2a4;" (if "if") (parenthesized_expression "(DAT_001232e0 != 0)" (( "(") (binary_expression "DAT_001232e0 != 0" (identifier "DAT_001232e0") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010b2a4;" (goto "goto") (statement_identifier "LAB_0010b2a4") (; ";"))) (if_statement "if (DAT_001231d0 != 0) {\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }" (if "if") (parenthesized_expression "(DAT_001231d0 != 0)" (( "(") (binary_expression "DAT_001231d0 != 0" (identifier "DAT_001231d0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);\n        FUN_0010908a(uVar2,0);\n      }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"unexpected end of file in declaration",5);" (assignment_expression "uVar2 = dcgettext(0,"unexpected end of file in declaration",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"unexpected end of file in declaration",5)" (identifier "dcgettext") (argument_list "(0,"unexpected end of file in declaration",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unexpected end of file in declaration"" (" """) (string_content "unexpected end of file in declaration") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0010908a(uVar2,0);" (call_expression "FUN_0010908a(uVar2,0)" (identifier "FUN_0010908a") (argument_list "(uVar2,0)" (( "(") (identifier "uVar2") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0010b2b1;" (goto "goto") (statement_identifier "LAB_0010b2b1") (; ";")) (} "}"))) (if_statement "if (param_2 != 0) goto LAB_0010b2b1;" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010b2b1;" (goto "goto") (statement_identifier "LAB_0010b2b1") (; ";"))) (expression_statement "DAT_001232f8 = *(undefined4 *)(param_1 + 8);" (assignment_expression "DAT_001232f8 = *(undefined4 *)(param_1 + 8)" (identifier "DAT_001232f8") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "FUN_00109267(local_24);" (call_expression "FUN_00109267(local_24)" (identifier "FUN_00109267") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

void function_1(type_1 *ident,int var_17)

{
  long var_11;
  int var_4;
  char *pcVar3;
  long var_1;
  type_2 sp;
  
  var_11 = *(long *)(var_1 + 0x28);
  var_2(sp);
  ident->type_end = -1;
  if ((tok.type == 0x108) || (tok.type == 0x10b)) {
    var_4 = var_3();
    if (var_4 == 0x104) {
      ident->type_end = curs;
    }
    var_5();
    var_6();
    var_4 = curs;
    while (curs = var_4, (tok.type - 0x109U & 0xfffffff7) == 0) {
      var_3();
      var_4 = curs;
    }
    if (tok.type == 0x104) {
      if (ident->type_end == -1) {
        var_7(sp);
        var_8(curs,var_4 + -2);
        var_9(curs,0x104,tok.line,"{ ... }");
        var_10(&tok,"modified stack");
      }
    }
    else {
      if (tok.type == 0x3b) {
LAB_0010b2b1:
        if (var_11 == *(long *)(var_1 + 0x28)) {
          return;
        }
                    /* WARNING: Subroutine does not return */
        var_12();
      }
      var_7(sp);
    }
  }
  do {
    var_13(ident,0);
    while( true ) {
      if (tok.type == 0x3b) goto LAB_0010b2b1;
      if (tok.type < 0x3c) break;
      if ((tok.type == 0x7b) || (tok.type == 0x102)) {
        var_14();
        goto LAB_0010b2b1;
      }
      if (tok.type != 0x3d) goto LAB_0010b2a4;
      var_3();
      if ((tok.type == 0x7b) || (tok.type == 0x102)) {
        var_15();
      }
      else {
        var_16();
      }
    }
    if (tok.type == 0x29) {
      if (var_17 == 0) {
LAB_0010b2a4:
        if (var_18 != 0) {
          pcVar3 = (char *)var_19(0,"expected `;\'",5);
          var_20(pcVar3,&tok);
        }
      }
      goto LAB_0010b2b1;
    }
    if (tok.type != 0x2c) {
      if (tok.type != 0) goto LAB_0010b2a4;
      if (var_18 != 0) {
        pcVar3 = (char *)var_19(0,"unexpected end of file in declaration",5);
        var_20(pcVar3,(type_3 *)0x0);
      }
      goto LAB_0010b2b1;
    }
    if (var_17 != 0) goto LAB_0010b2b1;
    tos = ident->type_end;
    var_7(sp);
  } while( true );
}


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

void MASKED(long param_1,int param_2)

{
  int iVar1;
  undefined8 uVar2;
  long in_FS_OFFSET;
  undefined1 local_24 [4];
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  FUN_0010922f(local_24);
  *(undefined4 *)(param_1 + 8) = 0xffffffff;
  if ((DAT_001232e0 == 0x108) || (DAT_001232e0 == 0x10b)) {
    iVar1 = FUN_001094bf();
    if (iVar1 == 0x104) {
      *(int *)(param_1 + 8) = DAT_00123380;
    }
    FUN_00109551();
    FUN_00109e79();
    iVar1 = DAT_00123380;
    while (DAT_00123380 = iVar1, (DAT_001232e0 - 0x109U & 0xfffffff7) == 0) {
      FUN_001094bf();
      iVar1 = DAT_00123380;
    }
    if (DAT_001232e0 == 0x104) {
      if (*(int *)(param_1 + 8) == -1) {
        FUN_00109267(local_24);
        FUN_001092bd(DAT_00123380,iVar1 + -2);
        FUN_0010931e(DAT_00123380,0x104,DAT_001232f0,"{ ... }");
        FUN_00108ece(&DAT_001232e0,"modified stack");
      }
    }
    else {
      if (DAT_001232e0 == 0x3b) {
LAB_0010b2b1:
        if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {
          return;
        }
                    /* WARNING: Subroutine does not return */
        __stack_chk_fail();
      }
      FUN_00109267(local_24);
    }
  }
  do {
    FUN_0010b1cd(param_1,0);
    while( true ) {
      if (DAT_001232e0 == 0x3b) goto LAB_0010b2b1;
      if (DAT_001232e0 < 0x3c) break;
      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {
        FUN_0010a4a5();
        goto LAB_0010b2b1;
      }
      if (DAT_001232e0 != 0x3d) goto LAB_0010b2a4;
      FUN_001094bf();
      if ((DAT_001232e0 == 0x7b) || (DAT_001232e0 == 0x102)) {
        FUN_0010a421();
      }
      else {
        FUN_0010a273();
      }
    }
    if (DAT_001232e0 == 0x29) {
      if (param_2 == 0) {
LAB_0010b2a4:
        if (DAT_001231d0 != 0) {
          uVar2 = dcgettext(0,"expected `;\'",5);
          FUN_0010908a(uVar2,&DAT_001232e0);
        }
      }
      goto LAB_0010b2b1;
    }
    if (DAT_001232e0 != 0x2c) {
      if (DAT_001232e0 != 0) goto LAB_0010b2a4;
      if (DAT_001231d0 != 0) {
        uVar2 = dcgettext(0,"unexpected end of file in declaration",5);
        FUN_0010908a(uVar2,0);
      }
      goto LAB_0010b2b1;
    }
    if (param_2 != 0) goto LAB_0010b2b1;
    DAT_001232f8 = *(undefined4 *)(param_1 + 8);
    FUN_00109267(local_24);
  } while( true );
}

