
int get_expression(char *str)

{
  char *pcVar1;
  char *pcVar2;
  segT paVar3;
  
  pcVar1 = input_line_pointer;
  input_line_pointer = str;
  paVar3 = expr(0,&the_insn.exp,expr_normal);
  pcVar2 = input_line_pointer;
  if ((((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&
      (data_section != paVar3)) &&
     ((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))))) {
    the_insn.error = (char *)dcgettext(0,"bad segment",5);
    expr_end = input_line_pointer;
    input_line_pointer = pcVar1;
    return 1;
  }
  input_line_pointer = pcVar1;
  expr_end = pcVar2;
  return 0;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 FUN_00130e90(undefined8 param_1)

{
  undefined8 uVar1;
  undefined8 uVar2;
  long lVar3;
  
  uVar1 = DAT_00187800;
  DAT_00187800 = param_1;
  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);
  uVar2 = DAT_00187800;
  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&
     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {
    _DAT_00187a60 = dcgettext(0,"bad segment",5);
    DAT_001872d8 = DAT_00187800;
    DAT_00187800 = uVar1;
    return 1;
  }
  DAT_00187800 = uVar1;
  DAT_001872d8 = uVar2;
  return 0;
}


PUSH RBX
MOV EDX,0x1
MOV RBX,qword ptr [0x00187800]
LEA RSI,[0x187a78]
MOV qword ptr [0x00187800],RDI
XOR EDI,EDI
CALL 0x001155a0
LEA RDX,[0x17e770]
CMP RAX,RDX
JZ 0x00130ee5
CMP qword ptr [0x001876b0],RAX
JZ 0x00130ee5
CMP qword ptr [0x001875e8],RAX
JZ 0x00130ee5
CMP qword ptr [0x00187550],RAX
JZ 0x00130ee5
SUB RDX,0x118
CMP RAX,RDX
JNZ 0x00130f00
MOV RAX,qword ptr [0x00187800]
MOV qword ptr [0x00187800],RBX
POP RBX
MOV qword ptr [0x001872d8],RAX
XOR EAX,EAX
RET
MOV EDX,0x5
LEA RSI,[0x1451f5]
XOR EDI,EDI
CALL 0x001081d0
MOV qword ptr [0x00187a60],RAX
MOV RAX,qword ptr [0x00187800]
MOV qword ptr [0x00187800],RBX
POP RBX
MOV qword ptr [0x001872d8],RAX
MOV EAX,0x1
RET
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined8 FUN_00130e90(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}\n\n" comment (function_definition "undefined8 FUN_00130e90(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}" type_identifier (function_declarator "FUN_00130e90(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar1 = DAT_00187800;" (assignment_expression "uVar1 = DAT_00187800" identifier = identifier) ;) (expression_statement "DAT_00187800 = param_1;" (assignment_expression "DAT_00187800 = param_1" identifier = identifier) ;) (expression_statement "lVar3 = FUN_001155a0(0,&DAT_00187a78,1);" (assignment_expression "lVar3 = FUN_001155a0(0,&DAT_00187a78,1)" identifier = (call_expression "FUN_001155a0(0,&DAT_00187a78,1)" identifier (argument_list "(0,&DAT_00187a78,1)" ( number_literal , (pointer_expression "&DAT_00187a78" & identifier) , number_literal )))) ;) (expression_statement "uVar2 = DAT_00187800;" (assignment_expression "uVar2 = DAT_00187800" identifier = identifier) ;) (if_statement "if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }" if (parenthesized_expression "((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658))))" ( (binary_expression "(((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))" (parenthesized_expression "(((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3))" ( (binary_expression "((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)" (parenthesized_expression "((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3))" ( (binary_expression "(lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)" (parenthesized_expression "(lVar3 != 0x17e770)" ( (binary_expression "lVar3 != 0x17e770" identifier != number_literal) )) && (parenthesized_expression "(DAT_001876b0 != lVar3)" ( (binary_expression "DAT_001876b0 != lVar3" identifier != identifier) ))) )) && (parenthesized_expression "(DAT_001875e8 != lVar3)" ( (binary_expression "DAT_001875e8 != lVar3" identifier != identifier) ))) )) && (parenthesized_expression "((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))" ( (parenthesized_expression "(DAT_00187550 != lVar3 && (lVar3 != 0x17e658))" ( (binary_expression "DAT_00187550 != lVar3 && (lVar3 != 0x17e658)" (binary_expression "DAT_00187550 != lVar3" identifier != identifier) && (parenthesized_expression "(lVar3 != 0x17e658)" ( (binary_expression "lVar3 != 0x17e658" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }" { (expression_statement "_DAT_00187a60 = dcgettext(0,"bad segment",5);" (assignment_expression "_DAT_00187a60 = dcgettext(0,"bad segment",5)" identifier = (call_expression "dcgettext(0,"bad segment",5)" identifier (argument_list "(0,"bad segment",5)" ( number_literal , (string_literal ""bad segment"" " string_content ") , number_literal )))) ;) (expression_statement "DAT_001872d8 = DAT_00187800;" (assignment_expression "DAT_001872d8 = DAT_00187800" identifier = identifier) ;) (expression_statement "DAT_00187800 = uVar1;" (assignment_expression "DAT_00187800 = uVar1" identifier = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "DAT_00187800 = uVar1;" (assignment_expression "DAT_00187800 = uVar1" identifier = identifier) ;) (expression_statement "DAT_001872d8 = uVar2;" (assignment_expression "DAT_001872d8 = uVar2" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int get_expression(char *str)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  segT paVar3;\n  \n  pcVar1 = input_line_pointer;\n  input_line_pointer = str;\n  paVar3 = expr(0,&the_insn.exp,expr_normal);\n  pcVar2 = input_line_pointer;\n  if ((((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3)) &&\n     ((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))))) {\n    the_insn.error = (char *)dcgettext(0,"bad segment",5);\n    expr_end = input_line_pointer;\n    input_line_pointer = pcVar1;\n    return 1;\n  }\n  input_line_pointer = pcVar1;\n  expr_end = pcVar2;\n  return 0;\n}\n\n" (function_definition "int get_expression(char *str)\n\n{\n  char *pcVar1;\n  char *pcVar2;\n  segT paVar3;\n  \n  pcVar1 = input_line_pointer;\n  input_line_pointer = str;\n  paVar3 = expr(0,&the_insn.exp,expr_normal);\n  pcVar2 = input_line_pointer;\n  if ((((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3)) &&\n     ((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))))) {\n    the_insn.error = (char *)dcgettext(0,"bad segment",5);\n    expr_end = input_line_pointer;\n    input_line_pointer = pcVar1;\n    return 1;\n  }\n  input_line_pointer = pcVar1;\n  expr_end = pcVar2;\n  return 0;\n}" primitive_type (function_declarator "get_expression(char *str)" identifier (parameter_list "(char *str)" ( (parameter_declaration "char *str" primitive_type (pointer_declarator "*str" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char *pcVar2;\n  segT paVar3;\n  \n  pcVar1 = input_line_pointer;\n  input_line_pointer = str;\n  paVar3 = expr(0,&the_insn.exp,expr_normal);\n  pcVar2 = input_line_pointer;\n  if ((((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3)) &&\n     ((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))))) {\n    the_insn.error = (char *)dcgettext(0,"bad segment",5);\n    expr_end = input_line_pointer;\n    input_line_pointer = pcVar1;\n    return 1;\n  }\n  input_line_pointer = pcVar1;\n  expr_end = pcVar2;\n  return 0;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "segT paVar3;" type_identifier identifier ;) (expression_statement "pcVar1 = input_line_pointer;" (assignment_expression "pcVar1 = input_line_pointer" identifier = identifier) ;) (expression_statement "input_line_pointer = str;" (assignment_expression "input_line_pointer = str" identifier = identifier) ;) (expression_statement "paVar3 = expr(0,&the_insn.exp,expr_normal);" (assignment_expression "paVar3 = expr(0,&the_insn.exp,expr_normal)" identifier = (call_expression "expr(0,&the_insn.exp,expr_normal)" identifier (argument_list "(0,&the_insn.exp,expr_normal)" ( number_literal , (pointer_expression "&the_insn.exp" & (field_expression "the_insn.exp" identifier . field_identifier)) , identifier )))) ;) (expression_statement "pcVar2 = input_line_pointer;" (assignment_expression "pcVar2 = input_line_pointer" identifier = identifier) ;) (if_statement "if ((((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3)) &&\n     ((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))))) {\n    the_insn.error = (char *)dcgettext(0,"bad segment",5);\n    expr_end = input_line_pointer;\n    input_line_pointer = pcVar1;\n    return 1;\n  }" if (parenthesized_expression "((((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3)) &&\n     ((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118)))))" ( (binary_expression "(((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3)) &&\n     ((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))))" (parenthesized_expression "(((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3))" ( (binary_expression "((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)) &&\n      (data_section != paVar3)" (parenthesized_expression "((paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3))" ( (binary_expression "(paVar3 != (segT)(_bfd_std_section + 0x230)) && (text_section != paVar3)" (parenthesized_expression "(paVar3 != (segT)(_bfd_std_section + 0x230))" ( (binary_expression "paVar3 != (segT)(_bfd_std_section + 0x230)" identifier != (call_expression "(segT)(_bfd_std_section + 0x230)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(_bfd_std_section + 0x230)" ( (binary_expression "_bfd_std_section + 0x230" identifier + number_literal) )))) )) && (parenthesized_expression "(text_section != paVar3)" ( (binary_expression "text_section != paVar3" identifier != identifier) ))) )) && (parenthesized_expression "(data_section != paVar3)" ( (binary_expression "data_section != paVar3" identifier != identifier) ))) )) && (parenthesized_expression "((bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))))" ( (parenthesized_expression "(bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118)))" ( (binary_expression "bss_section != paVar3 && (paVar3 != (segT)(_bfd_std_section + 0x118))" (binary_expression "bss_section != paVar3" identifier != identifier) && (parenthesized_expression "(paVar3 != (segT)(_bfd_std_section + 0x118))" ( (binary_expression "paVar3 != (segT)(_bfd_std_section + 0x118)" identifier != (call_expression "(segT)(_bfd_std_section + 0x118)" (parenthesized_expression "(segT)" ( identifier )) (argument_list "(_bfd_std_section + 0x118)" ( (binary_expression "_bfd_std_section + 0x118" identifier + number_literal) )))) ))) )) ))) )) (compound_statement "{\n    the_insn.error = (char *)dcgettext(0,"bad segment",5);\n    expr_end = input_line_pointer;\n    input_line_pointer = pcVar1;\n    return 1;\n  }" { (expression_statement "the_insn.error = (char *)dcgettext(0,"bad segment",5);" (assignment_expression "the_insn.error = (char *)dcgettext(0,"bad segment",5)" (field_expression "the_insn.error" identifier . field_identifier) = (cast_expression "(char *)dcgettext(0,"bad segment",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"bad segment",5)" identifier (argument_list "(0,"bad segment",5)" ( number_literal , (string_literal ""bad segment"" " string_content ") , number_literal ))))) ;) (expression_statement "expr_end = input_line_pointer;" (assignment_expression "expr_end = input_line_pointer" identifier = identifier) ;) (expression_statement "input_line_pointer = pcVar1;" (assignment_expression "input_line_pointer = pcVar1" identifier = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "input_line_pointer = pcVar1;" (assignment_expression "input_line_pointer = pcVar1" identifier = identifier) ;) (expression_statement "expr_end = pcVar2;" (assignment_expression "expr_end = pcVar2" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "undefined8 FUN_00130e90(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}\n\n" (function_definition "undefined8 FUN_00130e90(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}" type_identifier (function_declarator "FUN_00130e90(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar1 = DAT_00187800;" (assignment_expression "uVar1 = DAT_00187800" identifier = identifier) ;) (expression_statement "DAT_00187800 = param_1;" (assignment_expression "DAT_00187800 = param_1" identifier = identifier) ;) (expression_statement "lVar3 = FUN_001155a0(0,&DAT_00187a78,1);" (assignment_expression "lVar3 = FUN_001155a0(0,&DAT_00187a78,1)" identifier = (call_expression "FUN_001155a0(0,&DAT_00187a78,1)" identifier (argument_list "(0,&DAT_00187a78,1)" ( number_literal , (pointer_expression "&DAT_00187a78" & identifier) , number_literal )))) ;) (expression_statement "uVar2 = DAT_00187800;" (assignment_expression "uVar2 = DAT_00187800" identifier = identifier) ;) (if_statement "if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }" if (parenthesized_expression "((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658))))" ( (binary_expression "(((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))" (parenthesized_expression "(((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3))" ( (binary_expression "((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)" (parenthesized_expression "((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3))" ( (binary_expression "(lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)" (parenthesized_expression "(lVar3 != 0x17e770)" ( (binary_expression "lVar3 != 0x17e770" identifier != number_literal) )) && (parenthesized_expression "(DAT_001876b0 != lVar3)" ( (binary_expression "DAT_001876b0 != lVar3" identifier != identifier) ))) )) && (parenthesized_expression "(DAT_001875e8 != lVar3)" ( (binary_expression "DAT_001875e8 != lVar3" identifier != identifier) ))) )) && (parenthesized_expression "((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))" ( (parenthesized_expression "(DAT_00187550 != lVar3 && (lVar3 != 0x17e658))" ( (binary_expression "DAT_00187550 != lVar3 && (lVar3 != 0x17e658)" (binary_expression "DAT_00187550 != lVar3" identifier != identifier) && (parenthesized_expression "(lVar3 != 0x17e658)" ( (binary_expression "lVar3 != 0x17e658" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }" { (expression_statement "_DAT_00187a60 = dcgettext(0,"bad segment",5);" (assignment_expression "_DAT_00187a60 = dcgettext(0,"bad segment",5)" identifier = (call_expression "dcgettext(0,"bad segment",5)" identifier (argument_list "(0,"bad segment",5)" ( number_literal , (string_literal ""bad segment"" " string_content ") , number_literal )))) ;) (expression_statement "DAT_001872d8 = DAT_00187800;" (assignment_expression "DAT_001872d8 = DAT_00187800" identifier = identifier) ;) (expression_statement "DAT_00187800 = uVar1;" (assignment_expression "DAT_00187800 = uVar1" identifier = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "DAT_00187800 = uVar1;" (assignment_expression "DAT_00187800 = uVar1" identifier = identifier) ;) (expression_statement "DAT_001872d8 = uVar2;" (assignment_expression "DAT_001872d8 = uVar2" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_00130e90(undefined8 param_1)\n\n{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}" (type_identifier "undefined8") (function_declarator "FUN_00130e90(undefined8 param_1)" (identifier "FUN_00130e90") (parameter_list "(undefined8 param_1)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  undefined8 uVar2;\n  long lVar3;\n  \n  uVar1 = DAT_00187800;\n  DAT_00187800 = param_1;\n  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);\n  uVar2 = DAT_00187800;\n  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }\n  DAT_00187800 = uVar1;\n  DAT_001872d8 = uVar2;\n  return 0;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (expression_statement "uVar1 = DAT_00187800;" (assignment_expression "uVar1 = DAT_00187800" (identifier "uVar1") (= "=") (identifier "DAT_00187800")) (; ";")) (expression_statement "DAT_00187800 = param_1;" (assignment_expression "DAT_00187800 = param_1" (identifier "DAT_00187800") (= "=") (identifier "param_1")) (; ";")) (expression_statement "lVar3 = FUN_001155a0(0,&DAT_00187a78,1);" (assignment_expression "lVar3 = FUN_001155a0(0,&DAT_00187a78,1)" (identifier "lVar3") (= "=") (call_expression "FUN_001155a0(0,&DAT_00187a78,1)" (identifier "FUN_001155a0") (argument_list "(0,&DAT_00187a78,1)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_00187a78" (& "&") (identifier "DAT_00187a78")) (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar2 = DAT_00187800;" (assignment_expression "uVar2 = DAT_00187800" (identifier "uVar2") (= "=") (identifier "DAT_00187800")) (; ";")) (if_statement "if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }" (if "if") (parenthesized_expression "((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658))))" (( "(") (binary_expression "(((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&\n     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))" (parenthesized_expression "(((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3))" (( "(") (binary_expression "((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)" (parenthesized_expression "((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3))" (( "(") (binary_expression "(lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)" (parenthesized_expression "(lVar3 != 0x17e770)" (( "(") (binary_expression "lVar3 != 0x17e770" (identifier "lVar3") (!= "!=") (number_literal "0x17e770")) () ")")) (&& "&&") (parenthesized_expression "(DAT_001876b0 != lVar3)" (( "(") (binary_expression "DAT_001876b0 != lVar3" (identifier "DAT_001876b0") (!= "!=") (identifier "lVar3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_001875e8 != lVar3)" (( "(") (binary_expression "DAT_001875e8 != lVar3" (identifier "DAT_001875e8") (!= "!=") (identifier "lVar3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))" (( "(") (parenthesized_expression "(DAT_00187550 != lVar3 && (lVar3 != 0x17e658))" (( "(") (binary_expression "DAT_00187550 != lVar3 && (lVar3 != 0x17e658)" (binary_expression "DAT_00187550 != lVar3" (identifier "DAT_00187550") (!= "!=") (identifier "lVar3")) (&& "&&") (parenthesized_expression "(lVar3 != 0x17e658)" (( "(") (binary_expression "lVar3 != 0x17e658" (identifier "lVar3") (!= "!=") (number_literal "0x17e658")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    _DAT_00187a60 = dcgettext(0,"bad segment",5);\n    DAT_001872d8 = DAT_00187800;\n    DAT_00187800 = uVar1;\n    return 1;\n  }" ({ "{") (expression_statement "_DAT_00187a60 = dcgettext(0,"bad segment",5);" (assignment_expression "_DAT_00187a60 = dcgettext(0,"bad segment",5)" (identifier "_DAT_00187a60") (= "=") (call_expression "dcgettext(0,"bad segment",5)" (identifier "dcgettext") (argument_list "(0,"bad segment",5)" (( "(") (number_literal "0") (, ",") (string_literal ""bad segment"" (" """) (string_content "bad segment") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "DAT_001872d8 = DAT_00187800;" (assignment_expression "DAT_001872d8 = DAT_00187800" (identifier "DAT_001872d8") (= "=") (identifier "DAT_00187800")) (; ";")) (expression_statement "DAT_00187800 = uVar1;" (assignment_expression "DAT_00187800 = uVar1" (identifier "DAT_00187800") (= "=") (identifier "uVar1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "DAT_00187800 = uVar1;" (assignment_expression "DAT_00187800 = uVar1" (identifier "DAT_00187800") (= "=") (identifier "uVar1")) (; ";")) (expression_statement "DAT_001872d8 = uVar2;" (assignment_expression "DAT_001872d8 = uVar2" (identifier "DAT_001872d8") (= "=") (identifier "uVar2")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

int function_1(char *str)

{
  char *pcVar1;
  char *pcVar2;
  type_1 var_2;
  
  pcVar1 = input_line_pointer;
  input_line_pointer = str;
  var_2 = var_1(0,&the_insn.exp,expr_normal);
  pcVar2 = input_line_pointer;
  if ((((var_2 != (type_1)(var_3 + 0x230)) && (var_4 != var_2)) &&
      (var_5 != var_2)) &&
     ((var_6 != var_2 && (var_2 != (type_1)(var_3 + 0x118))))) {
    the_insn.error = (char *)var_7(0,"bad segment",5);
    expr_end = input_line_pointer;
    input_line_pointer = pcVar1;
    return 1;
  }
  input_line_pointer = pcVar1;
  expr_end = pcVar2;
  return 0;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (return_statement (number_literal)))))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined8 MASKED(undefined8 param_1)

{
  undefined8 uVar1;
  undefined8 uVar2;
  long lVar3;
  
  uVar1 = DAT_00187800;
  DAT_00187800 = param_1;
  lVar3 = FUN_001155a0(0,&DAT_00187a78,1);
  uVar2 = DAT_00187800;
  if ((((lVar3 != 0x17e770) && (DAT_001876b0 != lVar3)) && (DAT_001875e8 != lVar3)) &&
     ((DAT_00187550 != lVar3 && (lVar3 != 0x17e658)))) {
    _DAT_00187a60 = dcgettext(0,"bad segment",5);
    DAT_001872d8 = DAT_00187800;
    DAT_00187800 = uVar1;
    return 1;
  }
  DAT_00187800 = uVar1;
  DAT_001872d8 = uVar2;
  return 0;
}

