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

void __regparm3 set_level_indent(char *str)

{
  char *str_00;
  char cVar1;
  long lVar2;
  int iVar3;
  void *__s;
  undefined4 uVar4;
  char *pcVar5;
  int in_GS_OFFSET;
  char *q;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1687b;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  lVar2 = strtol(str,&q,0);
  if ((*q == '\0') && (0 < lVar2)) {
    __s = xmalloc(lVar2 + 1);
    memset(__s,0x20,lVar2 - 1);
    *(undefined1 *)((int)__s + lVar2 + -1) = 0;
    level_indent = __s;
    DAT_000368a8 = __s;
  }
  else {
    cVar1 = *str;
    pcVar5 = str;
    while (cVar1 != '=') {
      while (cVar1 == '\0') {
        pcVar5 = pcVar5 + 1;
        uVar4 = dcgettext(0,"level-indent syntax",5);
        error(3,0,uVar4);
        cVar1 = *pcVar5;
        if (cVar1 == '=') goto LAB_000168fd;
      }
      pcVar5 = pcVar5 + 1;
      cVar1 = *pcVar5;
    }
LAB_000168fd:
    str_00 = pcVar5 + 1;
    iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);
    switch(iVar3) {
    default:
      uVar4 = dcgettext(0,"unknown level indent option: %s",5);
      error(3,0,uVar4,str);
      break;
    case 1:
      parse_level_string(str_00,&level_begin);
      break;
    case 2:
      parse_level_string(str_00,(char **)&level_indent);
      break;
    case 3:
      parse_level_string(str_00,(char **)&DAT_000368a8);
      break;
    case 4:
      parse_level_string(str_00,&level_end);
      break;
    case 5:
      parse_level_string(str_00,&PTR_DAT_0003620c);
    }
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return;
}



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

void __regparm3 FUN_00016870(char *param_1)

{
  char cVar1;
  long lVar2;
  undefined4 uVar3;
  void *__s;
  char *pcVar4;
  int in_GS_OFFSET;
  char *local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1687b;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  lVar2 = strtol(param_1,&local_24,0);
  if ((*local_24 == '\0') && (0 < lVar2)) {
    __s = (void *)FUN_00022ca0(lVar2 + 1);
    memset(__s,0x20,lVar2 - 1);
    *(undefined1 *)((int)__s + lVar2 + -1) = 0;
    DAT_000368a4 = __s;
    DAT_000368a8 = __s;
  }
  else {
    cVar1 = *param_1;
    pcVar4 = param_1;
    while (cVar1 != '=') {
      while (cVar1 == '\0') {
        pcVar4 = pcVar4 + 1;
        uVar3 = dcgettext(0,"level-indent syntax",5);
        error(3,0,uVar3);
        cVar1 = *pcVar4;
        if (cVar1 == '=') goto LAB_000168fd;
      }
      pcVar4 = pcVar4 + 1;
      cVar1 = *pcVar4;
    }
LAB_000168fd:
    uVar3 = FUN_00016500();
    switch(uVar3) {
    default:
      uVar3 = dcgettext(0,"unknown level indent option: %s",5);
      error(3,0,uVar3,param_1);
      break;
    case 1:
      FUN_00016650();
      break;
    case 2:
      FUN_00016650();
      break;
    case 3:
      FUN_00016650();
      break;
    case 4:
      FUN_00016650();
      break;
    case 5:
      FUN_00016650();
    }
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000283b0();
  }
  return;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x00012800
ADD EBX,0x1f5f5
SUB ESP,0x20
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x10],EAX
XOR EAX,EAX
PUSH 0x0
LEA EAX,[ESP + 0x10]
PUSH EAX
PUSH EDI
CALL 0x00012460
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x8]
CMP byte ptr [EAX],0x0
JNZ 0x000168b3
TEST ESI,ESI
JG 0x000169a0
MOVZX EAX,byte ptr [EDI]
MOV ESI,EDI
LEA EBP,[EBX + 0xffff5777]
CMP AL,0x3d
JNZ 0x000168d2
JMP 0x000168fd
ADD ESI,0x1
MOVZX EAX,byte ptr [ESI]
CMP AL,0x3d
JZ 0x000168fd
TEST AL,AL
JNZ 0x000168c8
SUB ESP,0x4
ADD ESI,0x1
PUSH 0x5
PUSH EBP
PUSH 0x0
CALL 0x00012110
ADD ESP,0xc
PUSH EAX
PUSH 0x0
PUSH 0x3
CALL 0x000121d0
MOVZX EAX,byte ptr [ESI]
ADD ESP,0x10
CMP AL,0x3d
JNZ 0x000168d2
MOV ECX,ESI
LEA EAX,[EBX + 0x290]
LEA EBP,[ESI + 0x1]
MOV EDX,EDI
SUB ECX,EDI
CALL 0x00016500
CMP EAX,0x5
JA 0x000169e0
MOV EDX,dword ptr [EBX + EAX*0x4 + 0xffff52d4]
ADD EDX,EBX
JMP EDX
MOV EAX,dword ptr [ESP + 0xc]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00016a06
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EAX,[ESI + 0x1]
PUSH EAX
CALL 0x00022ca0
ADD ESP,0xc
MOV EDI,EAX
LEA EAX,[ESI + -0x1]
PUSH EAX
PUSH 0x20
PUSH EDI
CALL 0x000122c0
MOV byte ptr [EDI + ESI*0x1 + -0x1],0x0
ADD ESP,0x10
MOV dword ptr [EBX + 0xa38],EDI
MOV dword ptr [EBX + 0xa34],EDI
JMP 0x00016938
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4ba0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00012110
PUSH EDI
PUSH EAX
PUSH 0x0
PUSH 0x3
CALL 0x000121d0
ADD ESP,0x20
JMP 0x00016938
CALL 0x000283b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00016870(char *param_1)\n\n{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000283b0();\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00016870(char *param_1)\n\n{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000283b0();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00016870(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000283b0();\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1687b;" (assignment_expression "uStack_14 = 0x1687b" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = strtol(param_1,&local_24,0);" (assignment_expression "lVar2 = strtol(param_1,&local_24,0)" identifier = (call_expression "strtol(param_1,&local_24,0)" identifier (argument_list "(param_1,&local_24,0)" ( identifier , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (if_statement "if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" if (parenthesized_expression "((*local_24 == '\0') && (0 < lVar2))" ( (binary_expression "(*local_24 == '\0') && (0 < lVar2)" (parenthesized_expression "(*local_24 == '\0')" ( (binary_expression "*local_24 == '\0'" (pointer_expression "*local_24" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < lVar2)" ( (binary_expression "0 < lVar2" number_literal < identifier) ))) )) (compound_statement "{\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }" { (expression_statement "__s = (void *)FUN_00022ca0(lVar2 + 1);" (assignment_expression "__s = (void *)FUN_00022ca0(lVar2 + 1)" identifier = (cast_expression "(void *)FUN_00022ca0(lVar2 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00022ca0(lVar2 + 1)" identifier (argument_list "(lVar2 + 1)" ( (binary_expression "lVar2 + 1" identifier + number_literal) ))))) ;) (expression_statement "memset(__s,0x20,lVar2 - 1);" (call_expression "memset(__s,0x20,lVar2 - 1)" identifier (argument_list "(__s,0x20,lVar2 - 1)" ( identifier , number_literal , (binary_expression "lVar2 - 1" identifier - number_literal) ))) ;) (expression_statement "*(undefined1 *)((int)__s + lVar2 + -1) = 0;" (assignment_expression "*(undefined1 *)((int)__s + lVar2 + -1) = 0" (pointer_expression "*(undefined1 *)((int)__s + lVar2 + -1)" * (cast_expression "(undefined1 *)((int)__s + lVar2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s + lVar2 + -1)" ( (binary_expression "(int)__s + lVar2 + -1" (binary_expression "(int)__s + lVar2" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "DAT_000368a4 = __s;" (assignment_expression "DAT_000368a4 = __s" identifier = identifier) ;) (expression_statement "DAT_000368a8 = __s;" (assignment_expression "DAT_000368a8 = __s" identifier = identifier) ;) }) (else_clause "else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" else (compound_statement "{\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" { (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar4 = param_1;" (assignment_expression "pcVar4 = param_1" identifier = identifier) ;) (while_statement "while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }" while (parenthesized_expression "(cVar1 != '=')" ( (binary_expression "cVar1 != '='" identifier != (char_literal "'='" ' character ')) )) (compound_statement "{\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }" { (while_statement "while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" { (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = dcgettext(0,"level-indent syntax",5);" (assignment_expression "uVar3 = dcgettext(0,"level-indent syntax",5)" identifier = (call_expression "dcgettext(0,"level-indent syntax",5)" identifier (argument_list "(0,"level-indent syntax",5)" ( number_literal , (string_literal ""level-indent syntax"" " string_content ") , number_literal )))) ;) (expression_statement "error(3,0,uVar3);" (call_expression "error(3,0,uVar3)" identifier (argument_list "(3,0,uVar3)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (if_statement "if (cVar1 == '=') goto LAB_000168fd;" if (parenthesized_expression "(cVar1 == '=')" ( (binary_expression "cVar1 == '='" identifier == (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_000168fd;" goto statement_identifier ;)) })) (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) })) (labeled_statement "LAB_000168fd:\n    uVar3 = FUN_00016500();" statement_identifier : (expression_statement "uVar3 = FUN_00016500();" (assignment_expression "uVar3 = FUN_00016500()" identifier = (call_expression "FUN_00016500()" identifier (argument_list "()" ( )))) ;)) (switch_statement "switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }" switch (parenthesized_expression "(uVar3)" ( identifier )) (compound_statement "{\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }" { (case_statement "default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;" default : (expression_statement "uVar3 = dcgettext(0,"unknown level indent option: %s",5);" (assignment_expression "uVar3 = dcgettext(0,"unknown level indent option: %s",5)" identifier = (call_expression "dcgettext(0,"unknown level indent option: %s",5)" identifier (argument_list "(0,"unknown level indent option: %s",5)" ( number_literal , (string_literal ""unknown level indent option: %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(3,0,uVar3,param_1);" (call_expression "error(3,0,uVar3,param_1)" identifier (argument_list "(3,0,uVar3,param_1)" ( number_literal , number_literal , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n      FUN_00016650();" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;)) })) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000283b0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000283b0();\n  }" { comment (expression_statement "FUN_000283b0();" (call_expression "FUN_000283b0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 set_level_indent(char *str)\n\n{\n  char *str_00;\n  char cVar1;\n  long lVar2;\n  int iVar3;\n  void *__s;\n  undefined4 uVar4;\n  char *pcVar5;\n  int in_GS_OFFSET;\n  char *q;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(str,&q,0);\n  if ((*q == '\0') && (0 < lVar2)) {\n    __s = xmalloc(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    level_indent = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *str;\n    pcVar5 = str;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }\nLAB_000168fd:\n    str_00 = pcVar5 + 1;\n    iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);\n    switch(iVar3) {\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 set_level_indent(char *str)\n\n{\n  char *str_00;\n  char cVar1;\n  long lVar2;\n  int iVar3;\n  void *__s;\n  undefined4 uVar4;\n  char *pcVar5;\n  int in_GS_OFFSET;\n  char *q;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(str,&q,0);\n  if ((*q == '\0') && (0 < lVar2)) {\n    __s = xmalloc(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    level_indent = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *str;\n    pcVar5 = str;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }\nLAB_000168fd:\n    str_00 = pcVar5 + 1;\n    iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);\n    switch(iVar3) {\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "set_level_indent(char *str)" identifier (parameter_list "(char *str)" ( (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) ))) (compound_statement "{\n  char *str_00;\n  char cVar1;\n  long lVar2;\n  int iVar3;\n  void *__s;\n  undefined4 uVar4;\n  char *pcVar5;\n  int in_GS_OFFSET;\n  char *q;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(str,&q,0);\n  if ((*q == '\0') && (0 < lVar2)) {\n    __s = xmalloc(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    level_indent = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *str;\n    pcVar5 = str;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }\nLAB_000168fd:\n    str_00 = pcVar5 + 1;\n    iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);\n    switch(iVar3) {\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return;\n}" { (declaration "char *str_00;" primitive_type (pointer_declarator "*str_00" * identifier) ;) (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *q;" primitive_type (pointer_declarator "*q" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1687b;" (assignment_expression "uStack_14 = 0x1687b" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = strtol(str,&q,0);" (assignment_expression "lVar2 = strtol(str,&q,0)" identifier = (call_expression "strtol(str,&q,0)" identifier (argument_list "(str,&q,0)" ( identifier , (pointer_expression "&q" & identifier) , number_literal )))) ;) (if_statement "if ((*q == '\0') && (0 < lVar2)) {\n    __s = xmalloc(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    level_indent = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *str;\n    pcVar5 = str;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }\nLAB_000168fd:\n    str_00 = pcVar5 + 1;\n    iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);\n    switch(iVar3) {\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }\n  }" if (parenthesized_expression "((*q == '\0') && (0 < lVar2))" ( (binary_expression "(*q == '\0') && (0 < lVar2)" (parenthesized_expression "(*q == '\0')" ( (binary_expression "*q == '\0'" (pointer_expression "*q" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < lVar2)" ( (binary_expression "0 < lVar2" number_literal < identifier) ))) )) (compound_statement "{\n    __s = xmalloc(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    level_indent = __s;\n    DAT_000368a8 = __s;\n  }" { (expression_statement "__s = xmalloc(lVar2 + 1);" (assignment_expression "__s = xmalloc(lVar2 + 1)" identifier = (call_expression "xmalloc(lVar2 + 1)" identifier (argument_list "(lVar2 + 1)" ( (binary_expression "lVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "memset(__s,0x20,lVar2 - 1);" (call_expression "memset(__s,0x20,lVar2 - 1)" identifier (argument_list "(__s,0x20,lVar2 - 1)" ( identifier , number_literal , (binary_expression "lVar2 - 1" identifier - number_literal) ))) ;) (expression_statement "*(undefined1 *)((int)__s + lVar2 + -1) = 0;" (assignment_expression "*(undefined1 *)((int)__s + lVar2 + -1) = 0" (pointer_expression "*(undefined1 *)((int)__s + lVar2 + -1)" * (cast_expression "(undefined1 *)((int)__s + lVar2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s + lVar2 + -1)" ( (binary_expression "(int)__s + lVar2 + -1" (binary_expression "(int)__s + lVar2" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "level_indent = __s;" (assignment_expression "level_indent = __s" identifier = identifier) ;) (expression_statement "DAT_000368a8 = __s;" (assignment_expression "DAT_000368a8 = __s" identifier = identifier) ;) }) (else_clause "else {\n    cVar1 = *str;\n    pcVar5 = str;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }\nLAB_000168fd:\n    str_00 = pcVar5 + 1;\n    iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);\n    switch(iVar3) {\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }\n  }" else (compound_statement "{\n    cVar1 = *str;\n    pcVar5 = str;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }\nLAB_000168fd:\n    str_00 = pcVar5 + 1;\n    iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);\n    switch(iVar3) {\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }\n  }" { (expression_statement "cVar1 = *str;" (assignment_expression "cVar1 = *str" identifier = (pointer_expression "*str" * identifier)) ;) (expression_statement "pcVar5 = str;" (assignment_expression "pcVar5 = str" identifier = identifier) ;) (while_statement "while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }" while (parenthesized_expression "(cVar1 != '=')" ( (binary_expression "cVar1 != '='" identifier != (char_literal "'='" ' character ')) )) (compound_statement "{\n      while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar5 = pcVar5 + 1;\n      cVar1 = *pcVar5;\n    }" { (while_statement "while (cVar1 == '\0') {\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar5 = pcVar5 + 1;\n        uVar4 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar4);\n        cVar1 = *pcVar5;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" { (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = dcgettext(0,"level-indent syntax",5);" (assignment_expression "uVar4 = dcgettext(0,"level-indent syntax",5)" identifier = (call_expression "dcgettext(0,"level-indent syntax",5)" identifier (argument_list "(0,"level-indent syntax",5)" ( number_literal , (string_literal ""level-indent syntax"" " string_content ") , number_literal )))) ;) (expression_statement "error(3,0,uVar4);" (call_expression "error(3,0,uVar4)" identifier (argument_list "(3,0,uVar4)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "cVar1 = *pcVar5;" (assignment_expression "cVar1 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) (if_statement "if (cVar1 == '=') goto LAB_000168fd;" if (parenthesized_expression "(cVar1 == '=')" ( (binary_expression "cVar1 == '='" identifier == (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_000168fd;" goto statement_identifier ;)) })) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar5;" (assignment_expression "cVar1 = *pcVar5" identifier = (pointer_expression "*pcVar5" * identifier)) ;) })) (labeled_statement "LAB_000168fd:\n    str_00 = pcVar5 + 1;" statement_identifier : (expression_statement "str_00 = pcVar5 + 1;" (assignment_expression "str_00 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;)) (expression_statement "iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str);" (assignment_expression "iVar3 = find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str)" identifier = (call_expression "find_option_type(level_indent_optype,str,(int)pcVar5 - (int)str)" identifier (argument_list "(level_indent_optype,str,(int)pcVar5 - (int)str)" ( identifier , identifier , (binary_expression "(int)pcVar5 - (int)str" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)str" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (switch_statement "switch(iVar3) {\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }" switch (parenthesized_expression "(iVar3)" ( identifier )) (compound_statement "{\n    default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;\n    case 1:\n      parse_level_string(str_00,&level_begin);\n      break;\n    case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;\n    case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;\n    case 4:\n      parse_level_string(str_00,&level_end);\n      break;\n    case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);\n    }" { (case_statement "default:\n      uVar4 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar4,str);\n      break;" default : (expression_statement "uVar4 = dcgettext(0,"unknown level indent option: %s",5);" (assignment_expression "uVar4 = dcgettext(0,"unknown level indent option: %s",5)" identifier = (call_expression "dcgettext(0,"unknown level indent option: %s",5)" identifier (argument_list "(0,"unknown level indent option: %s",5)" ( number_literal , (string_literal ""unknown level indent option: %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(3,0,uVar4,str);" (call_expression "error(3,0,uVar4,str)" identifier (argument_list "(3,0,uVar4,str)" ( number_literal , number_literal , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      parse_level_string(str_00,&level_begin);\n      break;" case number_literal : (expression_statement "parse_level_string(str_00,&level_begin);" (call_expression "parse_level_string(str_00,&level_begin)" identifier (argument_list "(str_00,&level_begin)" ( identifier , (pointer_expression "&level_begin" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      parse_level_string(str_00,(char **)&level_indent);\n      break;" case number_literal : (expression_statement "parse_level_string(str_00,(char **)&level_indent);" (call_expression "parse_level_string(str_00,(char **)&level_indent)" identifier (argument_list "(str_00,(char **)&level_indent)" ( identifier , (cast_expression "(char **)&level_indent" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&level_indent" & identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      parse_level_string(str_00,(char **)&DAT_000368a8);\n      break;" case number_literal : (expression_statement "parse_level_string(str_00,(char **)&DAT_000368a8);" (call_expression "parse_level_string(str_00,(char **)&DAT_000368a8)" identifier (argument_list "(str_00,(char **)&DAT_000368a8)" ( identifier , (cast_expression "(char **)&DAT_000368a8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_000368a8" & identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      parse_level_string(str_00,&level_end);\n      break;" case number_literal : (expression_statement "parse_level_string(str_00,&level_end);" (call_expression "parse_level_string(str_00,&level_end)" identifier (argument_list "(str_00,&level_end)" ( identifier , (pointer_expression "&level_end" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n      parse_level_string(str_00,&PTR_DAT_0003620c);" case number_literal : (expression_statement "parse_level_string(str_00,&PTR_DAT_0003620c);" (call_expression "parse_level_string(str_00,&PTR_DAT_0003620c)" identifier (argument_list "(str_00,&PTR_DAT_0003620c)" ( identifier , (pointer_expression "&PTR_DAT_0003620c" & identifier) ))) ;)) })) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00016870(char *param_1)\n\n{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000283b0();\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00016870(char *param_1)\n\n{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000283b0();\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00016870(char *param_1)" identifier (parameter_list "(char *param_1)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000283b0();\n  }\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1687b;" (assignment_expression "uStack_14 = 0x1687b" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "lVar2 = strtol(param_1,&local_24,0);" (assignment_expression "lVar2 = strtol(param_1,&local_24,0)" identifier = (call_expression "strtol(param_1,&local_24,0)" identifier (argument_list "(param_1,&local_24,0)" ( identifier , (pointer_expression "&local_24" & identifier) , number_literal )))) ;) (if_statement "if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" if (parenthesized_expression "((*local_24 == '\0') && (0 < lVar2))" ( (binary_expression "(*local_24 == '\0') && (0 < lVar2)" (parenthesized_expression "(*local_24 == '\0')" ( (binary_expression "*local_24 == '\0'" (pointer_expression "*local_24" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < lVar2)" ( (binary_expression "0 < lVar2" number_literal < identifier) ))) )) (compound_statement "{\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }" { (expression_statement "__s = (void *)FUN_00022ca0(lVar2 + 1);" (assignment_expression "__s = (void *)FUN_00022ca0(lVar2 + 1)" identifier = (cast_expression "(void *)FUN_00022ca0(lVar2 + 1)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00022ca0(lVar2 + 1)" identifier (argument_list "(lVar2 + 1)" ( (binary_expression "lVar2 + 1" identifier + number_literal) ))))) ;) (expression_statement "memset(__s,0x20,lVar2 - 1);" (call_expression "memset(__s,0x20,lVar2 - 1)" identifier (argument_list "(__s,0x20,lVar2 - 1)" ( identifier , number_literal , (binary_expression "lVar2 - 1" identifier - number_literal) ))) ;) (expression_statement "*(undefined1 *)((int)__s + lVar2 + -1) = 0;" (assignment_expression "*(undefined1 *)((int)__s + lVar2 + -1) = 0" (pointer_expression "*(undefined1 *)((int)__s + lVar2 + -1)" * (cast_expression "(undefined1 *)((int)__s + lVar2 + -1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__s + lVar2 + -1)" ( (binary_expression "(int)__s + lVar2 + -1" (binary_expression "(int)__s + lVar2" (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "DAT_000368a4 = __s;" (assignment_expression "DAT_000368a4 = __s" identifier = identifier) ;) (expression_statement "DAT_000368a8 = __s;" (assignment_expression "DAT_000368a8 = __s" identifier = identifier) ;) }) (else_clause "else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" else (compound_statement "{\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" { (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar4 = param_1;" (assignment_expression "pcVar4 = param_1" identifier = identifier) ;) (while_statement "while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }" while (parenthesized_expression "(cVar1 != '=')" ( (binary_expression "cVar1 != '='" identifier != (char_literal "'='" ' character ')) )) (compound_statement "{\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }" { (while_statement "while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" while (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" { (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = dcgettext(0,"level-indent syntax",5);" (assignment_expression "uVar3 = dcgettext(0,"level-indent syntax",5)" identifier = (call_expression "dcgettext(0,"level-indent syntax",5)" identifier (argument_list "(0,"level-indent syntax",5)" ( number_literal , (string_literal ""level-indent syntax"" " string_content ") , number_literal )))) ;) (expression_statement "error(3,0,uVar3);" (call_expression "error(3,0,uVar3)" identifier (argument_list "(3,0,uVar3)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (if_statement "if (cVar1 == '=') goto LAB_000168fd;" if (parenthesized_expression "(cVar1 == '=')" ( (binary_expression "cVar1 == '='" identifier == (char_literal "'='" ' character ')) )) (goto_statement "goto LAB_000168fd;" goto statement_identifier ;)) })) (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" identifier = (binary_expression "pcVar4 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) })) (labeled_statement "LAB_000168fd:\n    uVar3 = FUN_00016500();" statement_identifier : (expression_statement "uVar3 = FUN_00016500();" (assignment_expression "uVar3 = FUN_00016500()" identifier = (call_expression "FUN_00016500()" identifier (argument_list "()" ( )))) ;)) (switch_statement "switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }" switch (parenthesized_expression "(uVar3)" ( identifier )) (compound_statement "{\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }" { (case_statement "default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;" default : (expression_statement "uVar3 = dcgettext(0,"unknown level indent option: %s",5);" (assignment_expression "uVar3 = dcgettext(0,"unknown level indent option: %s",5)" identifier = (call_expression "dcgettext(0,"unknown level indent option: %s",5)" identifier (argument_list "(0,"unknown level indent option: %s",5)" ( number_literal , (string_literal ""unknown level indent option: %s"" " string_content ") , number_literal )))) ;) (expression_statement "error(3,0,uVar3,param_1);" (call_expression "error(3,0,uVar3,param_1)" identifier (argument_list "(3,0,uVar3,param_1)" ( number_literal , number_literal , identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n      FUN_00016650();\n      break;" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n      FUN_00016650();" case number_literal : (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" identifier (argument_list "()" ( ))) ;)) })) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000283b0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_000283b0();\n  }" { (expression_statement "FUN_000283b0();" (call_expression "FUN_000283b0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT - LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (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 = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00016870(char *param_1)\n\n{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000283b0();\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00016870(char *param_1)" (identifier "FUN_00016870") (parameter_list "(char *param_1)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  undefined4 uVar3;\n  void *__s;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  char *local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1687b;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  lVar2 = strtol(param_1,&local_24,0);\n  if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000283b0();\n  }\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "void *__s;" (primitive_type "void") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "char *local_24;" (primitive_type "char") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1687b;" (assignment_expression "uStack_14 = 0x1687b" (identifier "uStack_14") (= "=") (number_literal "0x1687b")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "lVar2 = strtol(param_1,&local_24,0);" (assignment_expression "lVar2 = strtol(param_1,&local_24,0)" (identifier "lVar2") (= "=") (call_expression "strtol(param_1,&local_24,0)" (identifier "strtol") (argument_list "(param_1,&local_24,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if ((*local_24 == '\0') && (0 < lVar2)) {\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }\n  else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" (if "if") (parenthesized_expression "((*local_24 == '\0') && (0 < lVar2))" (( "(") (binary_expression "(*local_24 == '\0') && (0 < lVar2)" (parenthesized_expression "(*local_24 == '\0')" (( "(") (binary_expression "*local_24 == '\0'" (pointer_expression "*local_24" (* "*") (identifier "local_24")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(0 < lVar2)" (( "(") (binary_expression "0 < lVar2" (number_literal "0") (< "<") (identifier "lVar2")) () ")"))) () ")")) (compound_statement "{\n    __s = (void *)FUN_00022ca0(lVar2 + 1);\n    memset(__s,0x20,lVar2 - 1);\n    *(undefined1 *)((int)__s + lVar2 + -1) = 0;\n    DAT_000368a4 = __s;\n    DAT_000368a8 = __s;\n  }" ({ "{") (expression_statement "__s = (void *)FUN_00022ca0(lVar2 + 1);" (assignment_expression "__s = (void *)FUN_00022ca0(lVar2 + 1)" (identifier "__s") (= "=") (cast_expression "(void *)FUN_00022ca0(lVar2 + 1)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00022ca0(lVar2 + 1)" (identifier "FUN_00022ca0") (argument_list "(lVar2 + 1)" (( "(") (binary_expression "lVar2 + 1" (identifier "lVar2") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "memset(__s,0x20,lVar2 - 1);" (call_expression "memset(__s,0x20,lVar2 - 1)" (identifier "memset") (argument_list "(__s,0x20,lVar2 - 1)" (( "(") (identifier "__s") (, ",") (number_literal "0x20") (, ",") (binary_expression "lVar2 - 1" (identifier "lVar2") (- "-") (number_literal "1")) () ")"))) (; ";")) (expression_statement "*(undefined1 *)((int)__s + lVar2 + -1) = 0;" (assignment_expression "*(undefined1 *)((int)__s + lVar2 + -1) = 0" (pointer_expression "*(undefined1 *)((int)__s + lVar2 + -1)" (* "*") (cast_expression "(undefined1 *)((int)__s + lVar2 + -1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__s + lVar2 + -1)" (( "(") (binary_expression "(int)__s + lVar2 + -1" (binary_expression "(int)__s + lVar2" (cast_expression "(int)__s" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s")) (+ "+") (identifier "lVar2")) (+ "+") (number_literal "-1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_000368a4 = __s;" (assignment_expression "DAT_000368a4 = __s" (identifier "DAT_000368a4") (= "=") (identifier "__s")) (; ";")) (expression_statement "DAT_000368a8 = __s;" (assignment_expression "DAT_000368a8 = __s" (identifier "DAT_000368a8") (= "=") (identifier "__s")) (; ";")) (} "}")) (else_clause "else {\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" (else "else") (compound_statement "{\n    cVar1 = *param_1;\n    pcVar4 = param_1;\n    while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }\nLAB_000168fd:\n    uVar3 = FUN_00016500();\n    switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }\n  }" ({ "{") (expression_statement "cVar1 = *param_1;" (assignment_expression "cVar1 = *param_1" (identifier "cVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pcVar4 = param_1;" (assignment_expression "pcVar4 = param_1" (identifier "pcVar4") (= "=") (identifier "param_1")) (; ";")) (while_statement "while (cVar1 != '=') {\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }" (while "while") (parenthesized_expression "(cVar1 != '=')" (( "(") (binary_expression "cVar1 != '='" (identifier "cVar1") (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (compound_statement "{\n      while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }\n      pcVar4 = pcVar4 + 1;\n      cVar1 = *pcVar4;\n    }" ({ "{") (while_statement "while (cVar1 == '\0') {\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" (while "while") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pcVar4 = pcVar4 + 1;\n        uVar3 = dcgettext(0,"level-indent syntax",5);\n        error(3,0,uVar3);\n        cVar1 = *pcVar4;\n        if (cVar1 == '=') goto LAB_000168fd;\n      }" ({ "{") (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = dcgettext(0,"level-indent syntax",5);" (assignment_expression "uVar3 = dcgettext(0,"level-indent syntax",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"level-indent syntax",5)" (identifier "dcgettext") (argument_list "(0,"level-indent syntax",5)" (( "(") (number_literal "0") (, ",") (string_literal ""level-indent syntax"" (" """) (string_content "level-indent syntax") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(3,0,uVar3);" (call_expression "error(3,0,uVar3)" (identifier "error") (argument_list "(3,0,uVar3)" (( "(") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" (identifier "cVar1") (= "=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) (; ";")) (if_statement "if (cVar1 == '=') goto LAB_000168fd;" (if "if") (parenthesized_expression "(cVar1 == '=')" (( "(") (binary_expression "cVar1 == '='" (identifier "cVar1") (== "==") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (goto_statement "goto LAB_000168fd;" (goto "goto") (statement_identifier "LAB_000168fd") (; ";"))) (} "}"))) (expression_statement "pcVar4 = pcVar4 + 1;" (assignment_expression "pcVar4 = pcVar4 + 1" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + 1" (identifier "pcVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" (identifier "cVar1") (= "=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) (; ";")) (} "}"))) (labeled_statement "LAB_000168fd:\n    uVar3 = FUN_00016500();" (statement_identifier "LAB_000168fd") (: ":") (expression_statement "uVar3 = FUN_00016500();" (assignment_expression "uVar3 = FUN_00016500()" (identifier "uVar3") (= "=") (call_expression "FUN_00016500()" (identifier "FUN_00016500") (argument_list "()" (( "(") () ")")))) (; ";"))) (switch_statement "switch(uVar3) {\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }" (switch "switch") (parenthesized_expression "(uVar3)" (( "(") (identifier "uVar3") () ")")) (compound_statement "{\n    default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;\n    case 1:\n      FUN_00016650();\n      break;\n    case 2:\n      FUN_00016650();\n      break;\n    case 3:\n      FUN_00016650();\n      break;\n    case 4:\n      FUN_00016650();\n      break;\n    case 5:\n      FUN_00016650();\n    }" ({ "{") (case_statement "default:\n      uVar3 = dcgettext(0,"unknown level indent option: %s",5);\n      error(3,0,uVar3,param_1);\n      break;" (default "default") (: ":") (expression_statement "uVar3 = dcgettext(0,"unknown level indent option: %s",5);" (assignment_expression "uVar3 = dcgettext(0,"unknown level indent option: %s",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"unknown level indent option: %s",5)" (identifier "dcgettext") (argument_list "(0,"unknown level indent option: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unknown level indent option: %s"" (" """) (string_content "unknown level indent option: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(3,0,uVar3,param_1);" (call_expression "error(3,0,uVar3,param_1)" (identifier "error") (argument_list "(3,0,uVar3,param_1)" (( "(") (number_literal "3") (, ",") (number_literal "0") (, ",") (identifier "uVar3") (, ",") (identifier "param_1") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n      FUN_00016650();\n      break;" (case "case") (number_literal "1") (: ":") (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" (identifier "FUN_00016650") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n      FUN_00016650();\n      break;" (case "case") (number_literal "2") (: ":") (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" (identifier "FUN_00016650") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n      FUN_00016650();\n      break;" (case "case") (number_literal "3") (: ":") (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" (identifier "FUN_00016650") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n      FUN_00016650();\n      break;" (case "case") (number_literal "4") (: ":") (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" (identifier "FUN_00016650") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n      FUN_00016650();" (case "case") (number_literal "5") (: ":") (expression_statement "FUN_00016650();" (call_expression "FUN_00016650()" (identifier "FUN_00016650") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (} "}")))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000283b0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_000283b0();\n  }" ({ "{") (expression_statement "FUN_000283b0();" (call_expression "FUN_000283b0()" (identifier "FUN_000283b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(char *str)

{
  char *str_00;
  char var_6;
  long var_3;
  int iVar3;
  void *__s;
  type_1 uVar4;
  char *var_7;
  int var_1;
  char *q;
  int var_12;
  type_1 uStack_14;
  
  uStack_14 = 0x1687b;
  var_12 = *(int *)(var_1 + 0x14);
  var_3 = var_2(str,&q,0);
  if ((*q == '\0') && (0 < var_3)) {
    __s = var_4(var_3 + 1);
    var_5(__s,0x20,var_3 - 1);
    *(type_2 *)((int)__s + var_3 + -1) = 0;
    level_indent = __s;
    DAT_000368a8 = __s;
  }
  else {
    var_6 = *str;
    var_7 = str;
    while (var_6 != '=') {
      while (var_6 == '\0') {
        var_7 = var_7 + 1;
        uVar4 = var_8(0,"level-indent syntax",5);
        var_9(3,0,uVar4);
        var_6 = *var_7;
        if (var_6 == '=') goto LAB_000168fd;
      }
      var_7 = var_7 + 1;
      var_6 = *var_7;
    }
LAB_000168fd:
    str_00 = var_7 + 1;
    iVar3 = var_10(level_indent_optype,str,(int)var_7 - (int)str);
    switch(iVar3) {
    default:
      uVar4 = var_8(0,"unknown level indent option: %s",5);
      var_9(3,0,uVar4,str);
      break;
    case 1:
      var_11(str_00,&level_begin);
      break;
    case 2:
      var_11(str_00,(char **)&level_indent);
      break;
    case 3:
      var_11(str_00,(char **)&DAT_000368a8);
      break;
    case 4:
      var_11(str_00,&level_end);
      break;
    case 5:
      var_11(str_00,&PTR_DAT_0003620c);
    }
  }
  if (var_12 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_13();
  }
  return;
}


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

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

void __regparm3 MASKED(char *param_1)

{
  char cVar1;
  long lVar2;
  undefined4 uVar3;
  void *__s;
  char *pcVar4;
  int in_GS_OFFSET;
  char *local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1687b;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  lVar2 = strtol(param_1,&local_24,0);
  if ((*local_24 == '\0') && (0 < lVar2)) {
    __s = (void *)FUN_00022ca0(lVar2 + 1);
    memset(__s,0x20,lVar2 - 1);
    *(undefined1 *)((int)__s + lVar2 + -1) = 0;
    DAT_000368a4 = __s;
    DAT_000368a8 = __s;
  }
  else {
    cVar1 = *param_1;
    pcVar4 = param_1;
    while (cVar1 != '=') {
      while (cVar1 == '\0') {
        pcVar4 = pcVar4 + 1;
        uVar3 = dcgettext(0,"level-indent syntax",5);
        error(3,0,uVar3);
        cVar1 = *pcVar4;
        if (cVar1 == '=') goto LAB_000168fd;
      }
      pcVar4 = pcVar4 + 1;
      cVar1 = *pcVar4;
    }
LAB_000168fd:
    uVar3 = FUN_00016500();
    switch(uVar3) {
    default:
      uVar3 = dcgettext(0,"unknown level indent option: %s",5);
      error(3,0,uVar3,param_1);
      break;
    case 1:
      FUN_00016650();
      break;
    case 2:
      FUN_00016650();
      break;
    case 3:
      FUN_00016650();
      break;
    case 4:
      FUN_00016650();
      break;
    case 5:
      FUN_00016650();
    }
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000283b0();
  }
  return;
}

