
void s_endif(int arg)

{
  char cVar1;
  conditional_frame *pcVar2;
  conditional_frame *pcVar3;
  conditional_frame *pcVar4;
  char *format;
  
  if (current_cframe == (conditional_frame *)0x0) {
    format = (char *)dcgettext(0,"\".endif\" without \".if\"",5);
    as_bad(format);
    pcVar4 = current_cframe;
    pcVar2 = (conditional_frame *)cond_obstack.object_base;
    pcVar3 = (conditional_frame *)cond_obstack.next_free;
  }
  else {
    pcVar4 = current_cframe->previous_cframe;
    if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&
       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {
      listing_list(1);
      pcVar4 = current_cframe->previous_cframe;
    }
    if ((current_cframe <= cond_obstack.chunk) ||
       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe
       )) {
      pcVar2 = current_cframe;
      current_cframe = pcVar4;
      _obstack_free(&cond_obstack,pcVar2);
      pcVar4 = current_cframe;
      pcVar2 = (conditional_frame *)cond_obstack.object_base;
      pcVar3 = (conditional_frame *)cond_obstack.next_free;
    }
  }
  cond_obstack.next_free = (char *)pcVar3;
  cond_obstack.object_base = (char *)pcVar2;
  current_cframe = pcVar4;
  if (flag_mri != 0) {
    cVar1 = is_end_of_line[(byte)*input_line_pointer];
    while (cVar1 == '\0') {
      input_line_pointer = (char *)((byte *)input_line_pointer + 1);
      cVar1 = is_end_of_line[(byte)*input_line_pointer];
    }
  }
  demand_empty_rest_of_line();
  return;
}



void FUN_0010f0b0(void)

{
  char cVar1;
  ulong uVar2;
  ulong uVar3;
  ulong uVar4;
  undefined8 uVar5;
  
  if (DAT_0019ce90 == 0) {
    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);
    FUN_0011f6d0(uVar5);
    uVar4 = DAT_0019ce90;
    uVar2 = DAT_0019d8b0;
    uVar3 = DAT_0019d8b8;
  }
  else {
    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);
    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&
       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {
      FUN_0011c4c0(1);
      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);
    }
    if ((DAT_0019ce90 <= DAT_0019d8a8) ||
       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {
      DAT_0019ce90 = uVar4;
      _obstack_free(&DAT_0019d8a0);
      uVar4 = DAT_0019ce90;
      uVar2 = DAT_0019d8b0;
      uVar3 = DAT_0019d8b8;
    }
  }
  DAT_0019d8b8 = uVar3;
  DAT_0019d8b0 = uVar2;
  DAT_0019ce90 = uVar4;
  if (DAT_0019d870 != 0) {
    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];
    while (cVar1 == '\0') {
      DAT_0019d9a0 = DAT_0019d9a0 + 1;
      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];
    }
  }
  FUN_00121a20();
  return;
}


SUB RSP,0x8
MOV RSI,qword ptr [0x0019ce90]
TEST RSI,RSI
JZ 0x0010f180
MOV RAX,qword ptr [RSI + 0x20]
TEST byte ptr [0x0019d7cc],0x20
JZ 0x0010f100
MOV ECX,dword ptr [RSI + 0x2c]
TEST ECX,ECX
JZ 0x0010f100
TEST RAX,RAX
JZ 0x0010f0e4
MOV EDX,dword ptr [RAX + 0x2c]
TEST EDX,EDX
JNZ 0x0010f100
MOV EDI,0x1
CALL 0x0011c4c0
MOV RSI,qword ptr [0x0019ce90]
MOV RAX,qword ptr [RSI + 0x20]
NOP dword ptr [RAX]
CMP qword ptr [0x0019d8a8],RSI
MOV qword ptr [0x0019ce90],RAX
JNC 0x0010f119
CMP qword ptr [0x0019d8c0],RSI
JA 0x0010f170
LEA RDI,[0x19d8a0]
CALL 0x0013cdb0
MOV EAX,dword ptr [0x0019d870]
TEST EAX,EAX
JZ 0x0010f167
MOV RAX,qword ptr [0x0019d9a0]
LEA RCX,[0x194540]
MOVZX EDX,byte ptr [RAX]
CMP byte ptr [RCX + RDX*0x1],0x0
JNZ 0x0010f167
ADD RAX,0x1
NOP word ptr [RAX + RAX*0x1]
MOV RDX,RAX
MOV qword ptr [0x0019d9a0],RAX
ADD RAX,0x1
MOVZX EDX,byte ptr [RDX]
CMP byte ptr [RCX + RDX*0x1],0x0
JZ 0x0010f150
ADD RSP,0x8
JMP 0x00121a20
MOV qword ptr [0x0019d8b0],RSI
MOV qword ptr [0x0019d8b8],RSI
JMP 0x0010f125
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x13f147]
CALL 0x0010a1d0
MOV RDI,RAX
XOR EAX,EAX
CALL 0x0011f6d0
JMP 0x0010f125
(translation_unit "void FUN_0010f0b0(void)\n\n{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}\n\n" (function_definition "void FUN_0010f0b0(void)\n\n{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}" primitive_type (function_declarator "FUN_0010f0b0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (if_statement "if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" if (parenthesized_expression "(DAT_0019ce90 == 0)" ( (binary_expression "DAT_0019ce90 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }" { (expression_statement "uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);" (assignment_expression "uVar5 = dcgettext(0,"\".endif\" without \".if\"",5)" identifier = (call_expression "dcgettext(0,"\".endif\" without \".if\"",5)" identifier (argument_list "(0,"\".endif\" without \".if\"",5)" ( number_literal , (string_literal ""\".endif\" without \".if\""" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011f6d0(uVar5);" (call_expression "FUN_0011f6d0(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar4 = DAT_0019ce90;" (assignment_expression "uVar4 = DAT_0019ce90" identifier = identifier) ;) (expression_statement "uVar2 = DAT_0019d8b0;" (assignment_expression "uVar2 = DAT_0019d8b0" identifier = identifier) ;) (expression_statement "uVar3 = DAT_0019d8b8;" (assignment_expression "uVar3 = DAT_0019d8b8" identifier = identifier) ;) }) (else_clause "else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" else (compound_statement "{\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" { (expression_statement "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);" (assignment_expression "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20)" identifier = (pointer_expression "*(ulong *)(DAT_0019ce90 + 0x20)" * (cast_expression "(ulong *)(DAT_0019ce90 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019ce90 + 0x20)" ( (binary_expression "DAT_0019ce90 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }" if (parenthesized_expression "(((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0))))" ( (binary_expression "((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))" (parenthesized_expression "((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0))" ( (binary_expression "(((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)" (parenthesized_expression "(((byte)DAT_0019d7cc & 0x20) != 0)" ( (binary_expression "((byte)DAT_0019d7cc & 0x20) != 0" (parenthesized_expression "((byte)DAT_0019d7cc & 0x20)" ( (binary_expression "(byte)DAT_0019d7cc & 0x20" (cast_expression "(byte)DAT_0019d7cc" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(DAT_0019ce90 + 0x2c) != 0)" ( (binary_expression "*(int *)(DAT_0019ce90 + 0x2c) != 0" (pointer_expression "*(int *)(DAT_0019ce90 + 0x2c)" * (cast_expression "(int *)(DAT_0019ce90 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019ce90 + 0x2c)" ( (binary_expression "DAT_0019ce90 + 0x2c" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))" ( (parenthesized_expression "(uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0))" ( (binary_expression "uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)" (binary_expression "uVar4 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(uVar4 + 0x2c) == 0)" ( (binary_expression "*(int *)(uVar4 + 0x2c) == 0" (pointer_expression "*(int *)(uVar4 + 0x2c)" * (cast_expression "(int *)(uVar4 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 0x2c)" ( (binary_expression "uVar4 + 0x2c" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }" { (expression_statement "FUN_0011c4c0(1);" (call_expression "FUN_0011c4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);" (assignment_expression "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20)" identifier = (pointer_expression "*(ulong *)(DAT_0019ce90 + 0x20)" * (cast_expression "(ulong *)(DAT_0019ce90 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019ce90 + 0x20)" ( (binary_expression "DAT_0019ce90 + 0x20" identifier + number_literal) ))))) ;) })) (if_statement "if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }" if (parenthesized_expression "((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90))" ( (binary_expression "(DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)" (parenthesized_expression "(DAT_0019ce90 <= DAT_0019d8a8)" ( (binary_expression "DAT_0019ce90 <= DAT_0019d8a8" identifier <= identifier) )) || (parenthesized_expression "(uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)" ( (comma_expression "uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90" (assignment_expression "uVar2 = DAT_0019ce90" identifier = identifier) , (comma_expression "uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90" (assignment_expression "uVar3 = DAT_0019ce90" identifier = identifier) , (binary_expression "DAT_0019d8c0 <= DAT_0019ce90" identifier <= identifier))) ))) )) (compound_statement "{\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }" { (expression_statement "DAT_0019ce90 = uVar4;" (assignment_expression "DAT_0019ce90 = uVar4" identifier = identifier) ;) (expression_statement "_obstack_free(&DAT_0019d8a0);" (call_expression "_obstack_free(&DAT_0019d8a0)" identifier (argument_list "(&DAT_0019d8a0)" ( (pointer_expression "&DAT_0019d8a0" & identifier) ))) ;) (expression_statement "uVar4 = DAT_0019ce90;" (assignment_expression "uVar4 = DAT_0019ce90" identifier = identifier) ;) (expression_statement "uVar2 = DAT_0019d8b0;" (assignment_expression "uVar2 = DAT_0019d8b0" identifier = identifier) ;) (expression_statement "uVar3 = DAT_0019d8b8;" (assignment_expression "uVar3 = DAT_0019d8b8" identifier = identifier) ;) })) }))) (expression_statement "DAT_0019d8b8 = uVar3;" (assignment_expression "DAT_0019d8b8 = uVar3" identifier = identifier) ;) (expression_statement "DAT_0019d8b0 = uVar2;" (assignment_expression "DAT_0019d8b0 = uVar2" identifier = identifier) ;) (expression_statement "DAT_0019ce90 = uVar4;" (assignment_expression "DAT_0019ce90 = uVar4" identifier = identifier) ;) (if_statement "if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }" if (parenthesized_expression "(DAT_0019d870 != 0)" ( (binary_expression "DAT_0019d870 != 0" identifier != number_literal) )) (compound_statement "{\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }" { (expression_statement "cVar1 = (&DAT_00194540)[*DAT_0019d9a0];" (assignment_expression "cVar1 = (&DAT_00194540)[*DAT_0019d9a0]" identifier = (subscript_expression "(&DAT_00194540)[*DAT_0019d9a0]" (parenthesized_expression "(&DAT_00194540)" ( (pointer_expression "&DAT_00194540" & identifier) )) [ (pointer_expression "*DAT_0019d9a0" * identifier) ])) ;) (while_statement "while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }" { (expression_statement "DAT_0019d9a0 = DAT_0019d9a0 + 1;" (assignment_expression "DAT_0019d9a0 = DAT_0019d9a0 + 1" identifier = (binary_expression "DAT_0019d9a0 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = (&DAT_00194540)[*DAT_0019d9a0];" (assignment_expression "cVar1 = (&DAT_00194540)[*DAT_0019d9a0]" identifier = (subscript_expression "(&DAT_00194540)[*DAT_0019d9a0]" (parenthesized_expression "(&DAT_00194540)" ( (pointer_expression "&DAT_00194540" & identifier) )) [ (pointer_expression "*DAT_0019d9a0" * identifier) ])) ;) })) })) (expression_statement "FUN_00121a20();" (call_expression "FUN_00121a20()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void s_endif(int arg)\n\n{\n  char cVar1;\n  conditional_frame *pcVar2;\n  conditional_frame *pcVar3;\n  conditional_frame *pcVar4;\n  char *format;\n  \n  if (current_cframe == (conditional_frame *)0x0) {\n    format = (char *)dcgettext(0,"\".endif\" without \".if\"",5);\n    as_bad(format);\n    pcVar4 = current_cframe;\n    pcVar2 = (conditional_frame *)cond_obstack.object_base;\n    pcVar3 = (conditional_frame *)cond_obstack.next_free;\n  }\n  else {\n    pcVar4 = current_cframe->previous_cframe;\n    if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }\n    if ((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )) {\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }\n  }\n  cond_obstack.next_free = (char *)pcVar3;\n  cond_obstack.object_base = (char *)pcVar2;\n  current_cframe = pcVar4;\n  if (flag_mri != 0) {\n    cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    while (cVar1 == '\0') {\n      input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n      cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    }\n  }\n  demand_empty_rest_of_line();\n  return;\n}\n\n" (function_definition "void s_endif(int arg)\n\n{\n  char cVar1;\n  conditional_frame *pcVar2;\n  conditional_frame *pcVar3;\n  conditional_frame *pcVar4;\n  char *format;\n  \n  if (current_cframe == (conditional_frame *)0x0) {\n    format = (char *)dcgettext(0,"\".endif\" without \".if\"",5);\n    as_bad(format);\n    pcVar4 = current_cframe;\n    pcVar2 = (conditional_frame *)cond_obstack.object_base;\n    pcVar3 = (conditional_frame *)cond_obstack.next_free;\n  }\n  else {\n    pcVar4 = current_cframe->previous_cframe;\n    if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }\n    if ((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )) {\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }\n  }\n  cond_obstack.next_free = (char *)pcVar3;\n  cond_obstack.object_base = (char *)pcVar2;\n  current_cframe = pcVar4;\n  if (flag_mri != 0) {\n    cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    while (cVar1 == '\0') {\n      input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n      cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    }\n  }\n  demand_empty_rest_of_line();\n  return;\n}" primitive_type (function_declarator "s_endif(int arg)" identifier (parameter_list "(int arg)" ( (parameter_declaration "int arg" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  conditional_frame *pcVar2;\n  conditional_frame *pcVar3;\n  conditional_frame *pcVar4;\n  char *format;\n  \n  if (current_cframe == (conditional_frame *)0x0) {\n    format = (char *)dcgettext(0,"\".endif\" without \".if\"",5);\n    as_bad(format);\n    pcVar4 = current_cframe;\n    pcVar2 = (conditional_frame *)cond_obstack.object_base;\n    pcVar3 = (conditional_frame *)cond_obstack.next_free;\n  }\n  else {\n    pcVar4 = current_cframe->previous_cframe;\n    if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }\n    if ((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )) {\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }\n  }\n  cond_obstack.next_free = (char *)pcVar3;\n  cond_obstack.object_base = (char *)pcVar2;\n  current_cframe = pcVar4;\n  if (flag_mri != 0) {\n    cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    while (cVar1 == '\0') {\n      input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n      cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    }\n  }\n  demand_empty_rest_of_line();\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "conditional_frame *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "conditional_frame *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "conditional_frame *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (if_statement "if (current_cframe == (conditional_frame *)0x0) {\n    format = (char *)dcgettext(0,"\".endif\" without \".if\"",5);\n    as_bad(format);\n    pcVar4 = current_cframe;\n    pcVar2 = (conditional_frame *)cond_obstack.object_base;\n    pcVar3 = (conditional_frame *)cond_obstack.next_free;\n  }\n  else {\n    pcVar4 = current_cframe->previous_cframe;\n    if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }\n    if ((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )) {\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }\n  }" if (parenthesized_expression "(current_cframe == (conditional_frame *)0x0)" ( (binary_expression "current_cframe == (conditional_frame *)0x0" identifier == (cast_expression "(conditional_frame *)0x0" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    format = (char *)dcgettext(0,"\".endif\" without \".if\"",5);\n    as_bad(format);\n    pcVar4 = current_cframe;\n    pcVar2 = (conditional_frame *)cond_obstack.object_base;\n    pcVar3 = (conditional_frame *)cond_obstack.next_free;\n  }" { (expression_statement "format = (char *)dcgettext(0,"\".endif\" without \".if\"",5);" (assignment_expression "format = (char *)dcgettext(0,"\".endif\" without \".if\"",5)" identifier = (cast_expression "(char *)dcgettext(0,"\".endif\" without \".if\"",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\".endif\" without \".if\"",5)" identifier (argument_list "(0,"\".endif\" without \".if\"",5)" ( number_literal , (string_literal ""\".endif\" without \".if\""" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "as_bad(format);" (call_expression "as_bad(format)" identifier (argument_list "(format)" ( identifier ))) ;) (expression_statement "pcVar4 = current_cframe;" (assignment_expression "pcVar4 = current_cframe" identifier = identifier) ;) (expression_statement "pcVar2 = (conditional_frame *)cond_obstack.object_base;" (assignment_expression "pcVar2 = (conditional_frame *)cond_obstack.object_base" identifier = (cast_expression "(conditional_frame *)cond_obstack.object_base" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cond_obstack.object_base" identifier . field_identifier))) ;) (expression_statement "pcVar3 = (conditional_frame *)cond_obstack.next_free;" (assignment_expression "pcVar3 = (conditional_frame *)cond_obstack.next_free" identifier = (cast_expression "(conditional_frame *)cond_obstack.next_free" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cond_obstack.next_free" identifier . field_identifier))) ;) }) (else_clause "else {\n    pcVar4 = current_cframe->previous_cframe;\n    if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }\n    if ((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )) {\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }\n  }" else (compound_statement "{\n    pcVar4 = current_cframe->previous_cframe;\n    if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }\n    if ((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )) {\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }\n  }" { (expression_statement "pcVar4 = current_cframe->previous_cframe;" (assignment_expression "pcVar4 = current_cframe->previous_cframe" identifier = (field_expression "current_cframe->previous_cframe" identifier -> field_identifier)) ;) (if_statement "if (((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))) {\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }" if (parenthesized_expression "(((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0))))" ( (binary_expression "((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)) &&\n       ((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))" (parenthesized_expression "((((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0))" ( (binary_expression "(((byte)listing & 0x20) != 0) && (current_cframe->ignoring != 0)" (parenthesized_expression "(((byte)listing & 0x20) != 0)" ( (binary_expression "((byte)listing & 0x20) != 0" (parenthesized_expression "((byte)listing & 0x20)" ( (binary_expression "(byte)listing & 0x20" (cast_expression "(byte)listing" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(current_cframe->ignoring != 0)" ( (binary_expression "current_cframe->ignoring != 0" (field_expression "current_cframe->ignoring" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "((pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)))" ( (parenthesized_expression "(pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0))" ( (binary_expression "pcVar4 == (conditional_frame *)0x0 || (pcVar4->ignoring == 0)" (binary_expression "pcVar4 == (conditional_frame *)0x0" identifier == (cast_expression "(conditional_frame *)0x0" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pcVar4->ignoring == 0)" ( (binary_expression "pcVar4->ignoring == 0" (field_expression "pcVar4->ignoring" identifier -> field_identifier) == number_literal) ))) )) ))) )) (compound_statement "{\n      listing_list(1);\n      pcVar4 = current_cframe->previous_cframe;\n    }" { (expression_statement "listing_list(1);" (call_expression "listing_list(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "pcVar4 = current_cframe->previous_cframe;" (assignment_expression "pcVar4 = current_cframe->previous_cframe" identifier = (field_expression "current_cframe->previous_cframe" identifier -> field_identifier)) ;) })) (if_statement "if ((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )) {\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }" if (parenthesized_expression "((current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       ))" ( (binary_expression "(current_cframe <= cond_obstack.chunk) ||\n       (pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )" (parenthesized_expression "(current_cframe <= cond_obstack.chunk)" ( (binary_expression "current_cframe <= cond_obstack.chunk" identifier <= (field_expression "cond_obstack.chunk" identifier . field_identifier)) )) || (parenthesized_expression "(pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe\n       )" ( (comma_expression "pcVar2 = current_cframe, pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe" (assignment_expression "pcVar2 = current_cframe" identifier = identifier) , (comma_expression "pcVar3 = current_cframe, cond_obstack.chunk_limit <= current_cframe" (assignment_expression "pcVar3 = current_cframe" identifier = identifier) , (binary_expression "cond_obstack.chunk_limit <= current_cframe" (field_expression "cond_obstack.chunk_limit" identifier . field_identifier) <= identifier))) ))) )) (compound_statement "{\n      pcVar2 = current_cframe;\n      current_cframe = pcVar4;\n      _obstack_free(&cond_obstack,pcVar2);\n      pcVar4 = current_cframe;\n      pcVar2 = (conditional_frame *)cond_obstack.object_base;\n      pcVar3 = (conditional_frame *)cond_obstack.next_free;\n    }" { (expression_statement "pcVar2 = current_cframe;" (assignment_expression "pcVar2 = current_cframe" identifier = identifier) ;) (expression_statement "current_cframe = pcVar4;" (assignment_expression "current_cframe = pcVar4" identifier = identifier) ;) (expression_statement "_obstack_free(&cond_obstack,pcVar2);" (call_expression "_obstack_free(&cond_obstack,pcVar2)" identifier (argument_list "(&cond_obstack,pcVar2)" ( (pointer_expression "&cond_obstack" & identifier) , identifier ))) ;) (expression_statement "pcVar4 = current_cframe;" (assignment_expression "pcVar4 = current_cframe" identifier = identifier) ;) (expression_statement "pcVar2 = (conditional_frame *)cond_obstack.object_base;" (assignment_expression "pcVar2 = (conditional_frame *)cond_obstack.object_base" identifier = (cast_expression "(conditional_frame *)cond_obstack.object_base" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cond_obstack.object_base" identifier . field_identifier))) ;) (expression_statement "pcVar3 = (conditional_frame *)cond_obstack.next_free;" (assignment_expression "pcVar3 = (conditional_frame *)cond_obstack.next_free" identifier = (cast_expression "(conditional_frame *)cond_obstack.next_free" ( (type_descriptor "conditional_frame *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cond_obstack.next_free" identifier . field_identifier))) ;) })) }))) (expression_statement "cond_obstack.next_free = (char *)pcVar3;" (assignment_expression "cond_obstack.next_free = (char *)pcVar3" (field_expression "cond_obstack.next_free" identifier . field_identifier) = (cast_expression "(char *)pcVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "cond_obstack.object_base = (char *)pcVar2;" (assignment_expression "cond_obstack.object_base = (char *)pcVar2" (field_expression "cond_obstack.object_base" identifier . field_identifier) = (cast_expression "(char *)pcVar2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "current_cframe = pcVar4;" (assignment_expression "current_cframe = pcVar4" identifier = identifier) ;) (if_statement "if (flag_mri != 0) {\n    cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    while (cVar1 == '\0') {\n      input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n      cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    }\n  }" if (parenthesized_expression "(flag_mri != 0)" ( (binary_expression "flag_mri != 0" identifier != number_literal) )) (compound_statement "{\n    cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    while (cVar1 == '\0') {\n      input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n      cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    }\n  }" { (expression_statement "cVar1 = is_end_of_line[(byte)*input_line_pointer];" (assignment_expression "cVar1 = is_end_of_line[(byte)*input_line_pointer]" identifier = (subscript_expression "is_end_of_line[(byte)*input_line_pointer]" identifier [ (binary_expression "(byte)*input_line_pointer" (parenthesized_expression "(byte)" ( identifier )) * identifier) ])) ;) (while_statement "while (cVar1 == '\0') {\n      input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n      cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      input_line_pointer = (char *)((byte *)input_line_pointer + 1);\n      cVar1 = is_end_of_line[(byte)*input_line_pointer];\n    }" { (expression_statement "input_line_pointer = (char *)((byte *)input_line_pointer + 1);" (assignment_expression "input_line_pointer = (char *)((byte *)input_line_pointer + 1)" identifier = (cast_expression "(char *)((byte *)input_line_pointer + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((byte *)input_line_pointer + 1)" ( (binary_expression "(byte *)input_line_pointer + 1" (cast_expression "(byte *)input_line_pointer" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "cVar1 = is_end_of_line[(byte)*input_line_pointer];" (assignment_expression "cVar1 = is_end_of_line[(byte)*input_line_pointer]" identifier = (subscript_expression "is_end_of_line[(byte)*input_line_pointer]" identifier [ (binary_expression "(byte)*input_line_pointer" (parenthesized_expression "(byte)" ( identifier )) * identifier) ])) ;) })) })) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0010f0b0(void)\n\n{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}\n\n" (function_definition "void FUN_0010f0b0(void)\n\n{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}" primitive_type (function_declarator "FUN_0010f0b0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (if_statement "if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" if (parenthesized_expression "(DAT_0019ce90 == 0)" ( (binary_expression "DAT_0019ce90 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }" { (expression_statement "uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);" (assignment_expression "uVar5 = dcgettext(0,"\".endif\" without \".if\"",5)" identifier = (call_expression "dcgettext(0,"\".endif\" without \".if\"",5)" identifier (argument_list "(0,"\".endif\" without \".if\"",5)" ( number_literal , (string_literal ""\".endif\" without \".if\""" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_0011f6d0(uVar5);" (call_expression "FUN_0011f6d0(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar4 = DAT_0019ce90;" (assignment_expression "uVar4 = DAT_0019ce90" identifier = identifier) ;) (expression_statement "uVar2 = DAT_0019d8b0;" (assignment_expression "uVar2 = DAT_0019d8b0" identifier = identifier) ;) (expression_statement "uVar3 = DAT_0019d8b8;" (assignment_expression "uVar3 = DAT_0019d8b8" identifier = identifier) ;) }) (else_clause "else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" else (compound_statement "{\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" { (expression_statement "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);" (assignment_expression "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20)" identifier = (pointer_expression "*(ulong *)(DAT_0019ce90 + 0x20)" * (cast_expression "(ulong *)(DAT_0019ce90 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019ce90 + 0x20)" ( (binary_expression "DAT_0019ce90 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }" if (parenthesized_expression "(((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0))))" ( (binary_expression "((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))" (parenthesized_expression "((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0))" ( (binary_expression "(((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)" (parenthesized_expression "(((byte)DAT_0019d7cc & 0x20) != 0)" ( (binary_expression "((byte)DAT_0019d7cc & 0x20) != 0" (parenthesized_expression "((byte)DAT_0019d7cc & 0x20)" ( (binary_expression "(byte)DAT_0019d7cc & 0x20" (cast_expression "(byte)DAT_0019d7cc" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(DAT_0019ce90 + 0x2c) != 0)" ( (binary_expression "*(int *)(DAT_0019ce90 + 0x2c) != 0" (pointer_expression "*(int *)(DAT_0019ce90 + 0x2c)" * (cast_expression "(int *)(DAT_0019ce90 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019ce90 + 0x2c)" ( (binary_expression "DAT_0019ce90 + 0x2c" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))" ( (parenthesized_expression "(uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0))" ( (binary_expression "uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)" (binary_expression "uVar4 == 0" identifier == number_literal) || (parenthesized_expression "(*(int *)(uVar4 + 0x2c) == 0)" ( (binary_expression "*(int *)(uVar4 + 0x2c) == 0" (pointer_expression "*(int *)(uVar4 + 0x2c)" * (cast_expression "(int *)(uVar4 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 0x2c)" ( (binary_expression "uVar4 + 0x2c" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }" { (expression_statement "FUN_0011c4c0(1);" (call_expression "FUN_0011c4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);" (assignment_expression "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20)" identifier = (pointer_expression "*(ulong *)(DAT_0019ce90 + 0x20)" * (cast_expression "(ulong *)(DAT_0019ce90 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0019ce90 + 0x20)" ( (binary_expression "DAT_0019ce90 + 0x20" identifier + number_literal) ))))) ;) })) (if_statement "if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }" if (parenthesized_expression "((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90))" ( (binary_expression "(DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)" (parenthesized_expression "(DAT_0019ce90 <= DAT_0019d8a8)" ( (binary_expression "DAT_0019ce90 <= DAT_0019d8a8" identifier <= identifier) )) || (parenthesized_expression "(uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)" ( (comma_expression "uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90" (assignment_expression "uVar2 = DAT_0019ce90" identifier = identifier) , (comma_expression "uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90" (assignment_expression "uVar3 = DAT_0019ce90" identifier = identifier) , (binary_expression "DAT_0019d8c0 <= DAT_0019ce90" identifier <= identifier))) ))) )) (compound_statement "{\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }" { (expression_statement "DAT_0019ce90 = uVar4;" (assignment_expression "DAT_0019ce90 = uVar4" identifier = identifier) ;) (expression_statement "_obstack_free(&DAT_0019d8a0);" (call_expression "_obstack_free(&DAT_0019d8a0)" identifier (argument_list "(&DAT_0019d8a0)" ( (pointer_expression "&DAT_0019d8a0" & identifier) ))) ;) (expression_statement "uVar4 = DAT_0019ce90;" (assignment_expression "uVar4 = DAT_0019ce90" identifier = identifier) ;) (expression_statement "uVar2 = DAT_0019d8b0;" (assignment_expression "uVar2 = DAT_0019d8b0" identifier = identifier) ;) (expression_statement "uVar3 = DAT_0019d8b8;" (assignment_expression "uVar3 = DAT_0019d8b8" identifier = identifier) ;) })) }))) (expression_statement "DAT_0019d8b8 = uVar3;" (assignment_expression "DAT_0019d8b8 = uVar3" identifier = identifier) ;) (expression_statement "DAT_0019d8b0 = uVar2;" (assignment_expression "DAT_0019d8b0 = uVar2" identifier = identifier) ;) (expression_statement "DAT_0019ce90 = uVar4;" (assignment_expression "DAT_0019ce90 = uVar4" identifier = identifier) ;) (if_statement "if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }" if (parenthesized_expression "(DAT_0019d870 != 0)" ( (binary_expression "DAT_0019d870 != 0" identifier != number_literal) )) (compound_statement "{\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }" { (expression_statement "cVar1 = (&DAT_00194540)[*DAT_0019d9a0];" (assignment_expression "cVar1 = (&DAT_00194540)[*DAT_0019d9a0]" identifier = (subscript_expression "(&DAT_00194540)[*DAT_0019d9a0]" (parenthesized_expression "(&DAT_00194540)" ( (pointer_expression "&DAT_00194540" & identifier) )) [ (pointer_expression "*DAT_0019d9a0" * identifier) ])) ;) (while_statement "while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }" { (expression_statement "DAT_0019d9a0 = DAT_0019d9a0 + 1;" (assignment_expression "DAT_0019d9a0 = DAT_0019d9a0 + 1" identifier = (binary_expression "DAT_0019d9a0 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = (&DAT_00194540)[*DAT_0019d9a0];" (assignment_expression "cVar1 = (&DAT_00194540)[*DAT_0019d9a0]" identifier = (subscript_expression "(&DAT_00194540)[*DAT_0019d9a0]" (parenthesized_expression "(&DAT_00194540)" ( (pointer_expression "&DAT_00194540" & identifier) )) [ (pointer_expression "*DAT_0019d9a0" * identifier) ])) ;) })) })) (expression_statement "FUN_00121a20();" (call_expression "FUN_00121a20()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (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 ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (pointer_expression * IDENT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (pointer_expression * IDENT) ])) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0010f0b0(void)\n\n{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010f0b0(void)" (identifier "FUN_0010f0b0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char cVar1;\n  ulong uVar2;\n  ulong uVar3;\n  ulong uVar4;\n  undefined8 uVar5;\n  \n  if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }\n  DAT_0019d8b8 = uVar3;\n  DAT_0019d8b0 = uVar2;\n  DAT_0019ce90 = uVar4;\n  if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }\n  FUN_00121a20();\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (if_statement "if (DAT_0019ce90 == 0) {\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }\n  else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_0019ce90 == 0)" (( "(") (binary_expression "DAT_0019ce90 == 0" (identifier "DAT_0019ce90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);\n    FUN_0011f6d0(uVar5);\n    uVar4 = DAT_0019ce90;\n    uVar2 = DAT_0019d8b0;\n    uVar3 = DAT_0019d8b8;\n  }" ({ "{") (expression_statement "uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);" (assignment_expression "uVar5 = dcgettext(0,"\".endif\" without \".if\"",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"\".endif\" without \".if\"",5)" (identifier "dcgettext") (argument_list "(0,"\".endif\" without \".if\"",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\".endif\" without \".if\""" (" """) (escape_sequence "\"") (string_content ".endif") (escape_sequence "\"") (string_content " without ") (escape_sequence "\"") (string_content ".if") (escape_sequence "\"") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0011f6d0(uVar5);" (call_expression "FUN_0011f6d0(uVar5)" (identifier "FUN_0011f6d0") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "uVar4 = DAT_0019ce90;" (assignment_expression "uVar4 = DAT_0019ce90" (identifier "uVar4") (= "=") (identifier "DAT_0019ce90")) (; ";")) (expression_statement "uVar2 = DAT_0019d8b0;" (assignment_expression "uVar2 = DAT_0019d8b0" (identifier "uVar2") (= "=") (identifier "DAT_0019d8b0")) (; ";")) (expression_statement "uVar3 = DAT_0019d8b8;" (assignment_expression "uVar3 = DAT_0019d8b8" (identifier "uVar3") (= "=") (identifier "DAT_0019d8b8")) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }\n    if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }\n  }" ({ "{") (expression_statement "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);" (assignment_expression "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20)" (identifier "uVar4") (= "=") (pointer_expression "*(ulong *)(DAT_0019ce90 + 0x20)" (* "*") (cast_expression "(ulong *)(DAT_0019ce90 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0019ce90 + 0x20)" (( "(") (binary_expression "DAT_0019ce90 + 0x20" (identifier "DAT_0019ce90") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }" (if "if") (parenthesized_expression "(((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0))))" (( "(") (binary_expression "((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&\n       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))" (parenthesized_expression "((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0))" (( "(") (binary_expression "(((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)" (parenthesized_expression "(((byte)DAT_0019d7cc & 0x20) != 0)" (( "(") (binary_expression "((byte)DAT_0019d7cc & 0x20) != 0" (parenthesized_expression "((byte)DAT_0019d7cc & 0x20)" (( "(") (binary_expression "(byte)DAT_0019d7cc & 0x20" (cast_expression "(byte)DAT_0019d7cc" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0019d7cc")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(DAT_0019ce90 + 0x2c) != 0)" (( "(") (binary_expression "*(int *)(DAT_0019ce90 + 0x2c) != 0" (pointer_expression "*(int *)(DAT_0019ce90 + 0x2c)" (* "*") (cast_expression "(int *)(DAT_0019ce90 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0019ce90 + 0x2c)" (( "(") (binary_expression "DAT_0019ce90 + 0x2c" (identifier "DAT_0019ce90") (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))" (( "(") (parenthesized_expression "(uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0))" (( "(") (binary_expression "uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)" (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(*(int *)(uVar4 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(uVar4 + 0x2c) == 0" (pointer_expression "*(int *)(uVar4 + 0x2c)" (* "*") (cast_expression "(int *)(uVar4 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 + 0x2c)" (( "(") (binary_expression "uVar4 + 0x2c" (identifier "uVar4") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      FUN_0011c4c0(1);\n      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);\n    }" ({ "{") (expression_statement "FUN_0011c4c0(1);" (call_expression "FUN_0011c4c0(1)" (identifier "FUN_0011c4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);" (assignment_expression "uVar4 = *(ulong *)(DAT_0019ce90 + 0x20)" (identifier "uVar4") (= "=") (pointer_expression "*(ulong *)(DAT_0019ce90 + 0x20)" (* "*") (cast_expression "(ulong *)(DAT_0019ce90 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0019ce90 + 0x20)" (( "(") (binary_expression "DAT_0019ce90 + 0x20" (identifier "DAT_0019ce90") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }" (if "if") (parenthesized_expression "((DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90))" (( "(") (binary_expression "(DAT_0019ce90 <= DAT_0019d8a8) ||\n       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)" (parenthesized_expression "(DAT_0019ce90 <= DAT_0019d8a8)" (( "(") (binary_expression "DAT_0019ce90 <= DAT_0019d8a8" (identifier "DAT_0019ce90") (<= "<=") (identifier "DAT_0019d8a8")) () ")")) (|| "||") (parenthesized_expression "(uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)" (( "(") (comma_expression "uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90" (assignment_expression "uVar2 = DAT_0019ce90" (identifier "uVar2") (= "=") (identifier "DAT_0019ce90")) (, ",") (comma_expression "uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90" (assignment_expression "uVar3 = DAT_0019ce90" (identifier "uVar3") (= "=") (identifier "DAT_0019ce90")) (, ",") (binary_expression "DAT_0019d8c0 <= DAT_0019ce90" (identifier "DAT_0019d8c0") (<= "<=") (identifier "DAT_0019ce90")))) () ")"))) () ")")) (compound_statement "{\n      DAT_0019ce90 = uVar4;\n      _obstack_free(&DAT_0019d8a0);\n      uVar4 = DAT_0019ce90;\n      uVar2 = DAT_0019d8b0;\n      uVar3 = DAT_0019d8b8;\n    }" ({ "{") (expression_statement "DAT_0019ce90 = uVar4;" (assignment_expression "DAT_0019ce90 = uVar4" (identifier "DAT_0019ce90") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "_obstack_free(&DAT_0019d8a0);" (call_expression "_obstack_free(&DAT_0019d8a0)" (identifier "_obstack_free") (argument_list "(&DAT_0019d8a0)" (( "(") (pointer_expression "&DAT_0019d8a0" (& "&") (identifier "DAT_0019d8a0")) () ")"))) (; ";")) (expression_statement "uVar4 = DAT_0019ce90;" (assignment_expression "uVar4 = DAT_0019ce90" (identifier "uVar4") (= "=") (identifier "DAT_0019ce90")) (; ";")) (expression_statement "uVar2 = DAT_0019d8b0;" (assignment_expression "uVar2 = DAT_0019d8b0" (identifier "uVar2") (= "=") (identifier "DAT_0019d8b0")) (; ";")) (expression_statement "uVar3 = DAT_0019d8b8;" (assignment_expression "uVar3 = DAT_0019d8b8" (identifier "uVar3") (= "=") (identifier "DAT_0019d8b8")) (; ";")) (} "}"))) (} "}")))) (expression_statement "DAT_0019d8b8 = uVar3;" (assignment_expression "DAT_0019d8b8 = uVar3" (identifier "DAT_0019d8b8") (= "=") (identifier "uVar3")) (; ";")) (expression_statement "DAT_0019d8b0 = uVar2;" (assignment_expression "DAT_0019d8b0 = uVar2" (identifier "DAT_0019d8b0") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "DAT_0019ce90 = uVar4;" (assignment_expression "DAT_0019ce90 = uVar4" (identifier "DAT_0019ce90") (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (DAT_0019d870 != 0) {\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }" (if "if") (parenthesized_expression "(DAT_0019d870 != 0)" (( "(") (binary_expression "DAT_0019d870 != 0" (identifier "DAT_0019d870") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }\n  }" ({ "{") (expression_statement "cVar1 = (&DAT_00194540)[*DAT_0019d9a0];" (assignment_expression "cVar1 = (&DAT_00194540)[*DAT_0019d9a0]" (identifier "cVar1") (= "=") (subscript_expression "(&DAT_00194540)[*DAT_0019d9a0]" (parenthesized_expression "(&DAT_00194540)" (( "(") (pointer_expression "&DAT_00194540" (& "&") (identifier "DAT_00194540")) () ")")) ([ "[") (pointer_expression "*DAT_0019d9a0" (* "*") (identifier "DAT_0019d9a0")) (] "]"))) (; ";")) (while_statement "while (cVar1 == '\0') {\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }" (while "while") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      DAT_0019d9a0 = DAT_0019d9a0 + 1;\n      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];\n    }" ({ "{") (expression_statement "DAT_0019d9a0 = DAT_0019d9a0 + 1;" (assignment_expression "DAT_0019d9a0 = DAT_0019d9a0 + 1" (identifier "DAT_0019d9a0") (= "=") (binary_expression "DAT_0019d9a0 + 1" (identifier "DAT_0019d9a0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = (&DAT_00194540)[*DAT_0019d9a0];" (assignment_expression "cVar1 = (&DAT_00194540)[*DAT_0019d9a0]" (identifier "cVar1") (= "=") (subscript_expression "(&DAT_00194540)[*DAT_0019d9a0]" (parenthesized_expression "(&DAT_00194540)" (( "(") (pointer_expression "&DAT_00194540" (& "&") (identifier "DAT_00194540")) () ")")) ([ "[") (pointer_expression "*DAT_0019d9a0" (* "*") (identifier "DAT_0019d9a0")) (] "]"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00121a20();" (call_expression "FUN_00121a20()" (identifier "FUN_00121a20") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(int arg)

{
  char var_9;
  type_1 *pcVar2;
  type_1 *pcVar3;
  type_1 *var_4;
  char *format;
  
  if (var_1 == (type_1 *)0x0) {
    format = (char *)var_2(0,"\".endif\" without \".if\"",5);
    var_3(format);
    var_4 = var_1;
    pcVar2 = (type_1 *)cond_obstack.object_base;
    pcVar3 = (type_1 *)cond_obstack.next_free;
  }
  else {
    var_4 = var_1->previous_cframe;
    if (((((type_2)listing & 0x20) != 0) && (var_1->ignoring != 0)) &&
       ((var_4 == (type_1 *)0x0 || (var_4->ignoring == 0)))) {
      var_5(1);
      var_4 = var_1->previous_cframe;
    }
    if ((var_1 <= cond_obstack.chunk) ||
       (pcVar2 = var_1, pcVar3 = var_1, cond_obstack.chunk_limit <= var_1
       )) {
      pcVar2 = var_1;
      var_1 = var_4;
      var_6(&cond_obstack,pcVar2);
      var_4 = var_1;
      pcVar2 = (type_1 *)cond_obstack.object_base;
      pcVar3 = (type_1 *)cond_obstack.next_free;
    }
  }
  cond_obstack.next_free = (char *)pcVar3;
  cond_obstack.object_base = (char *)pcVar2;
  var_1 = var_4;
  if (var_7 != 0) {
    var_9 = is_end_of_line[(type_2)*var_8];
    while (var_9 == '\0') {
      var_8 = (char *)((type_2 *)var_8 + 1);
      var_9 = is_end_of_line[(type_2)*var_8];
    }
  }
  var_10();
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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 (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (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 (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (pointer_expression argument: (identifier))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (pointer_expression argument: (identifier))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

void MASKED(void)

{
  char cVar1;
  ulong uVar2;
  ulong uVar3;
  ulong uVar4;
  undefined8 uVar5;
  
  if (DAT_0019ce90 == 0) {
    uVar5 = dcgettext(0,"\".endif\" without \".if\"",5);
    FUN_0011f6d0(uVar5);
    uVar4 = DAT_0019ce90;
    uVar2 = DAT_0019d8b0;
    uVar3 = DAT_0019d8b8;
  }
  else {
    uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);
    if (((((byte)DAT_0019d7cc & 0x20) != 0) && (*(int *)(DAT_0019ce90 + 0x2c) != 0)) &&
       ((uVar4 == 0 || (*(int *)(uVar4 + 0x2c) == 0)))) {
      FUN_0011c4c0(1);
      uVar4 = *(ulong *)(DAT_0019ce90 + 0x20);
    }
    if ((DAT_0019ce90 <= DAT_0019d8a8) ||
       (uVar2 = DAT_0019ce90, uVar3 = DAT_0019ce90, DAT_0019d8c0 <= DAT_0019ce90)) {
      DAT_0019ce90 = uVar4;
      _obstack_free(&DAT_0019d8a0);
      uVar4 = DAT_0019ce90;
      uVar2 = DAT_0019d8b0;
      uVar3 = DAT_0019d8b8;
    }
  }
  DAT_0019d8b8 = uVar3;
  DAT_0019d8b0 = uVar2;
  DAT_0019ce90 = uVar4;
  if (DAT_0019d870 != 0) {
    cVar1 = (&DAT_00194540)[*DAT_0019d9a0];
    while (cVar1 == '\0') {
      DAT_0019d9a0 = DAT_0019d9a0 + 1;
      cVar1 = (&DAT_00194540)[*DAT_0019d9a0];
    }
  }
  FUN_00121a20();
  return;
}

