
void dwarf2_emit_label(symbolS *label)

{
  segT paVar1;
  dwarf2_line_info loc;
  
  if (dwarf2_loc_mark_labels == 0) {
    return;
  }
  paVar1 = S_GET_SEGMENT(label);
  if ((paVar1 != now_seg) || ((paVar1->flags & 0x10) == 0)) {
    return;
  }
  if (files_in_use == 0) {
    if (debug_type != DEBUG_DWARF2) {
      return;
    }
  }
  else if (debug_type != DEBUG_DWARF2) {
    loc.discriminator = current.discriminator;
    loc.flags = current.flags;
    loc.filenum = current.filenum;
    loc.line = current.line;
    loc.column = current.column;
    loc.isa = current.isa;
    loc.view = current.view;
    goto LAB_00117c7c;
  }
  dwarf2_where(&loc);
LAB_00117c7c:
  loc._16_8_ = loc._16_8_ | 2;
  dwarf2_gen_line_info_1(label,&loc);
  current.flags = current.flags & 0xfffffff1;
  dwarf2_loc_directive_seen = 0;
  current.discriminator = 0;
  current.view = (symbolS *)0x0;
  return;
}



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

void FUN_00117bf0(undefined8 param_1)

{
  long lVar1;
  undefined8 local_28;
  undefined8 uStack_20;
  ulong local_18;
  undefined8 uStack_10;
  
  if (DAT_00175998 == 0) {
    return;
  }
  lVar1 = FUN_00131c90();
  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {
    return;
  }
  if (DAT_00174ec4 == 0) {
    if (DAT_00174db8 != 5) {
      return;
    }
  }
  else if (DAT_00174db8 != 5) {
    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);
    local_28 = _DAT_0016c3e0;
    uStack_20 = _DAT_0016c3e8;
    uStack_10 = DAT_0016c3f8;
    goto LAB_00117c7c;
  }
  FUN_00117930(&local_28);
LAB_00117c7c:
  local_18 = local_18 | 2;
  FUN_001178a0(param_1,&local_28);
  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;
  DAT_0017599c = 0;
  DAT_0016c3f4 = 0;
  DAT_0016c3f8 = 0;
  return;
}


MOV ECX,dword ptr [0x00175998]
TEST ECX,ECX
JNZ 0x00117c00
RET
PUSH RBX
MOV RBX,RDI
SUB RSP,0x30
CALL 0x00131c90
CMP RAX,qword ptr [0x00175788]
JZ 0x00117c20
ADD RSP,0x30
POP RBX
RET
TEST byte ptr [RAX + 0x20],0x10
JZ 0x00117c16
MOV EDX,dword ptr [0x00174ec4]
MOV EAX,dword ptr [0x00174db8]
TEST EDX,EDX
JNZ 0x00117c58
CMP EAX,0x5
JNZ 0x00117c16
LEA RSI,[RSP + 0x10]
MOV RDI,RSI
MOV qword ptr [RSP + 0x8],RSI
CALL 0x00117930
MOV RSI,qword ptr [RSP + 0x8]
JMP 0x00117c7c
CMP EAX,0x5
JZ 0x00117c3b
MOVDQA XMM0,xmmword ptr [0x0016c3e0]
MOVDQA XMM1,xmmword ptr [0x0016c3f0]
LEA RSI,[RSP + 0x10]
MOVAPS xmmword ptr [RSP + 0x10],XMM0
MOVAPS xmmword ptr [RSP + 0x20],XMM1
MOV RDI,RBX
OR dword ptr [RSP + 0x20],0x2
CALL 0x001178a0
AND dword ptr [0x0016c3f0],0xfffffff1
MOV dword ptr [0x0017599c],0x0
MOV dword ptr [0x0016c3f4],0x0
MOV qword ptr [0x0016c3f8],0x0
ADD RSP,0x30
POP RBX
RET
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_00117bf0(undefined8 param_1)\n\n{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}\n\n" comment (function_definition "void FUN_00117bf0(undefined8 param_1)\n\n{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}" primitive_type (function_declarator "FUN_00117bf0(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 uStack_20;" type_identifier identifier ;) (declaration "ulong local_18;" type_identifier identifier ;) (declaration "undefined8 uStack_10;" type_identifier identifier ;) (if_statement "if (DAT_00175998 == 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_00175998 == 0)" ( (binary_expression "DAT_00175998 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "lVar1 = FUN_00131c90();" (assignment_expression "lVar1 = FUN_00131c90()" identifier = (call_expression "FUN_00131c90()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }" if (parenthesized_expression "((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0))" ( (binary_expression "(lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)" (parenthesized_expression "(lVar1 != DAT_00175788)" ( (binary_expression "lVar1 != DAT_00175788" identifier != identifier) )) || (parenthesized_expression "((*(byte *)(lVar1 + 0x20) & 0x10) == 0)" ( (binary_expression "(*(byte *)(lVar1 + 0x20) & 0x10) == 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x20) & 0x10)" ( (binary_expression "*(byte *)(lVar1 + 0x20) & 0x10" (pointer_expression "*(byte *)(lVar1 + 0x20)" * (cast_expression "(byte *)(lVar1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x20)" ( (binary_expression "lVar1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" if (parenthesized_expression "(DAT_00174ec4 == 0)" ( (binary_expression "DAT_00174ec4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }" { (if_statement "if (DAT_00174db8 != 5) {\n      return;\n    }" if (parenthesized_expression "(DAT_00174db8 != 5)" ( (binary_expression "DAT_00174db8 != 5" identifier != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" else (if_statement "if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" if (parenthesized_expression "(DAT_00174db8 != 5)" ( (binary_expression "DAT_00174db8 != 5" identifier != number_literal) )) (compound_statement "{\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" { (expression_statement "local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);" (assignment_expression "local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0)" identifier = (call_expression "CONCAT44(DAT_0016c3f4,_DAT_0016c3f0)" identifier (argument_list "(DAT_0016c3f4,_DAT_0016c3f0)" ( identifier , identifier )))) ;) (expression_statement "local_28 = _DAT_0016c3e0;" (assignment_expression "local_28 = _DAT_0016c3e0" identifier = identifier) ;) (expression_statement "uStack_20 = _DAT_0016c3e8;" (assignment_expression "uStack_20 = _DAT_0016c3e8" identifier = identifier) ;) (expression_statement "uStack_10 = DAT_0016c3f8;" (assignment_expression "uStack_10 = DAT_0016c3f8" identifier = identifier) ;) (goto_statement "goto LAB_00117c7c;" goto statement_identifier ;) })))) (expression_statement "FUN_00117930(&local_28);" (call_expression "FUN_00117930(&local_28)" identifier (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) ))) ;) (labeled_statement "LAB_00117c7c:\n  local_18 = local_18 | 2;" statement_identifier : (expression_statement "local_18 = local_18 | 2;" (assignment_expression "local_18 = local_18 | 2" identifier = (binary_expression "local_18 | 2" identifier | number_literal)) ;)) (expression_statement "FUN_001178a0(param_1,&local_28);" (call_expression "FUN_001178a0(param_1,&local_28)" identifier (argument_list "(param_1,&local_28)" ( identifier , (pointer_expression "&local_28" & identifier) ))) ;) (expression_statement "_DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;" (assignment_expression "_DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1" identifier = (binary_expression "_DAT_0016c3f0 & 0xfffffff1" identifier & number_literal)) ;) (expression_statement "DAT_0017599c = 0;" (assignment_expression "DAT_0017599c = 0" identifier = number_literal) ;) (expression_statement "DAT_0016c3f4 = 0;" (assignment_expression "DAT_0016c3f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_0016c3f8 = 0;" (assignment_expression "DAT_0016c3f8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void dwarf2_emit_label(symbolS *label)\n\n{\n  segT paVar1;\n  dwarf2_line_info loc;\n  \n  if (dwarf2_loc_mark_labels == 0) {\n    return;\n  }\n  paVar1 = S_GET_SEGMENT(label);\n  if ((paVar1 != now_seg) || ((paVar1->flags & 0x10) == 0)) {\n    return;\n  }\n  if (files_in_use == 0) {\n    if (debug_type != DEBUG_DWARF2) {\n      return;\n    }\n  }\n  else if (debug_type != DEBUG_DWARF2) {\n    loc.discriminator = current.discriminator;\n    loc.flags = current.flags;\n    loc.filenum = current.filenum;\n    loc.line = current.line;\n    loc.column = current.column;\n    loc.isa = current.isa;\n    loc.view = current.view;\n    goto LAB_00117c7c;\n  }\n  dwarf2_where(&loc);\nLAB_00117c7c:\n  loc._16_8_ = loc._16_8_ | 2;\n  dwarf2_gen_line_info_1(label,&loc);\n  current.flags = current.flags & 0xfffffff1;\n  dwarf2_loc_directive_seen = 0;\n  current.discriminator = 0;\n  current.view = (symbolS *)0x0;\n  return;\n}\n\n" (function_definition "void dwarf2_emit_label(symbolS *label)\n\n{\n  segT paVar1;\n  dwarf2_line_info loc;\n  \n  if (dwarf2_loc_mark_labels == 0) {\n    return;\n  }\n  paVar1 = S_GET_SEGMENT(label);\n  if ((paVar1 != now_seg) || ((paVar1->flags & 0x10) == 0)) {\n    return;\n  }\n  if (files_in_use == 0) {\n    if (debug_type != DEBUG_DWARF2) {\n      return;\n    }\n  }\n  else if (debug_type != DEBUG_DWARF2) {\n    loc.discriminator = current.discriminator;\n    loc.flags = current.flags;\n    loc.filenum = current.filenum;\n    loc.line = current.line;\n    loc.column = current.column;\n    loc.isa = current.isa;\n    loc.view = current.view;\n    goto LAB_00117c7c;\n  }\n  dwarf2_where(&loc);\nLAB_00117c7c:\n  loc._16_8_ = loc._16_8_ | 2;\n  dwarf2_gen_line_info_1(label,&loc);\n  current.flags = current.flags & 0xfffffff1;\n  dwarf2_loc_directive_seen = 0;\n  current.discriminator = 0;\n  current.view = (symbolS *)0x0;\n  return;\n}" primitive_type (function_declarator "dwarf2_emit_label(symbolS *label)" identifier (parameter_list "(symbolS *label)" ( (parameter_declaration "symbolS *label" type_identifier (pointer_declarator "*label" * identifier)) ))) (compound_statement "{\n  segT paVar1;\n  dwarf2_line_info loc;\n  \n  if (dwarf2_loc_mark_labels == 0) {\n    return;\n  }\n  paVar1 = S_GET_SEGMENT(label);\n  if ((paVar1 != now_seg) || ((paVar1->flags & 0x10) == 0)) {\n    return;\n  }\n  if (files_in_use == 0) {\n    if (debug_type != DEBUG_DWARF2) {\n      return;\n    }\n  }\n  else if (debug_type != DEBUG_DWARF2) {\n    loc.discriminator = current.discriminator;\n    loc.flags = current.flags;\n    loc.filenum = current.filenum;\n    loc.line = current.line;\n    loc.column = current.column;\n    loc.isa = current.isa;\n    loc.view = current.view;\n    goto LAB_00117c7c;\n  }\n  dwarf2_where(&loc);\nLAB_00117c7c:\n  loc._16_8_ = loc._16_8_ | 2;\n  dwarf2_gen_line_info_1(label,&loc);\n  current.flags = current.flags & 0xfffffff1;\n  dwarf2_loc_directive_seen = 0;\n  current.discriminator = 0;\n  current.view = (symbolS *)0x0;\n  return;\n}" { (declaration "segT paVar1;" type_identifier identifier ;) (declaration "dwarf2_line_info loc;" type_identifier identifier ;) (if_statement "if (dwarf2_loc_mark_labels == 0) {\n    return;\n  }" if (parenthesized_expression "(dwarf2_loc_mark_labels == 0)" ( (binary_expression "dwarf2_loc_mark_labels == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "paVar1 = S_GET_SEGMENT(label);" (assignment_expression "paVar1 = S_GET_SEGMENT(label)" identifier = (call_expression "S_GET_SEGMENT(label)" identifier (argument_list "(label)" ( identifier )))) ;) (if_statement "if ((paVar1 != now_seg) || ((paVar1->flags & 0x10) == 0)) {\n    return;\n  }" if (parenthesized_expression "((paVar1 != now_seg) || ((paVar1->flags & 0x10) == 0))" ( (binary_expression "(paVar1 != now_seg) || ((paVar1->flags & 0x10) == 0)" (parenthesized_expression "(paVar1 != now_seg)" ( (binary_expression "paVar1 != now_seg" identifier != identifier) )) || (parenthesized_expression "((paVar1->flags & 0x10) == 0)" ( (binary_expression "(paVar1->flags & 0x10) == 0" (parenthesized_expression "(paVar1->flags & 0x10)" ( (binary_expression "paVar1->flags & 0x10" (field_expression "paVar1->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (files_in_use == 0) {\n    if (debug_type != DEBUG_DWARF2) {\n      return;\n    }\n  }\n  else if (debug_type != DEBUG_DWARF2) {\n    loc.discriminator = current.discriminator;\n    loc.flags = current.flags;\n    loc.filenum = current.filenum;\n    loc.line = current.line;\n    loc.column = current.column;\n    loc.isa = current.isa;\n    loc.view = current.view;\n    goto LAB_00117c7c;\n  }" if (parenthesized_expression "(files_in_use == 0)" ( (binary_expression "files_in_use == 0" identifier == number_literal) )) (compound_statement "{\n    if (debug_type != DEBUG_DWARF2) {\n      return;\n    }\n  }" { (if_statement "if (debug_type != DEBUG_DWARF2) {\n      return;\n    }" if (parenthesized_expression "(debug_type != DEBUG_DWARF2)" ( (binary_expression "debug_type != DEBUG_DWARF2" identifier != identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else if (debug_type != DEBUG_DWARF2) {\n    loc.discriminator = current.discriminator;\n    loc.flags = current.flags;\n    loc.filenum = current.filenum;\n    loc.line = current.line;\n    loc.column = current.column;\n    loc.isa = current.isa;\n    loc.view = current.view;\n    goto LAB_00117c7c;\n  }" else (if_statement "if (debug_type != DEBUG_DWARF2) {\n    loc.discriminator = current.discriminator;\n    loc.flags = current.flags;\n    loc.filenum = current.filenum;\n    loc.line = current.line;\n    loc.column = current.column;\n    loc.isa = current.isa;\n    loc.view = current.view;\n    goto LAB_00117c7c;\n  }" if (parenthesized_expression "(debug_type != DEBUG_DWARF2)" ( (binary_expression "debug_type != DEBUG_DWARF2" identifier != identifier) )) (compound_statement "{\n    loc.discriminator = current.discriminator;\n    loc.flags = current.flags;\n    loc.filenum = current.filenum;\n    loc.line = current.line;\n    loc.column = current.column;\n    loc.isa = current.isa;\n    loc.view = current.view;\n    goto LAB_00117c7c;\n  }" { (expression_statement "loc.discriminator = current.discriminator;" (assignment_expression "loc.discriminator = current.discriminator" (field_expression "loc.discriminator" identifier . field_identifier) = (field_expression "current.discriminator" identifier . field_identifier)) ;) (expression_statement "loc.flags = current.flags;" (assignment_expression "loc.flags = current.flags" (field_expression "loc.flags" identifier . field_identifier) = (field_expression "current.flags" identifier . field_identifier)) ;) (expression_statement "loc.filenum = current.filenum;" (assignment_expression "loc.filenum = current.filenum" (field_expression "loc.filenum" identifier . field_identifier) = (field_expression "current.filenum" identifier . field_identifier)) ;) (expression_statement "loc.line = current.line;" (assignment_expression "loc.line = current.line" (field_expression "loc.line" identifier . field_identifier) = (field_expression "current.line" identifier . field_identifier)) ;) (expression_statement "loc.column = current.column;" (assignment_expression "loc.column = current.column" (field_expression "loc.column" identifier . field_identifier) = (field_expression "current.column" identifier . field_identifier)) ;) (expression_statement "loc.isa = current.isa;" (assignment_expression "loc.isa = current.isa" (field_expression "loc.isa" identifier . field_identifier) = (field_expression "current.isa" identifier . field_identifier)) ;) (expression_statement "loc.view = current.view;" (assignment_expression "loc.view = current.view" (field_expression "loc.view" identifier . field_identifier) = (field_expression "current.view" identifier . field_identifier)) ;) (goto_statement "goto LAB_00117c7c;" goto statement_identifier ;) })))) (expression_statement "dwarf2_where(&loc);" (call_expression "dwarf2_where(&loc)" identifier (argument_list "(&loc)" ( (pointer_expression "&loc" & identifier) ))) ;) (labeled_statement "LAB_00117c7c:\n  loc._16_8_ = loc._16_8_ | 2;" statement_identifier : (expression_statement "loc._16_8_ = loc._16_8_ | 2;" (assignment_expression "loc._16_8_ = loc._16_8_ | 2" (field_expression "loc._16_8_" identifier . field_identifier) = (binary_expression "loc._16_8_ | 2" (field_expression "loc._16_8_" identifier . field_identifier) | number_literal)) ;)) (expression_statement "dwarf2_gen_line_info_1(label,&loc);" (call_expression "dwarf2_gen_line_info_1(label,&loc)" identifier (argument_list "(label,&loc)" ( identifier , (pointer_expression "&loc" & identifier) ))) ;) (expression_statement "current.flags = current.flags & 0xfffffff1;" (assignment_expression "current.flags = current.flags & 0xfffffff1" (field_expression "current.flags" identifier . field_identifier) = (binary_expression "current.flags & 0xfffffff1" (field_expression "current.flags" identifier . field_identifier) & number_literal)) ;) (expression_statement "dwarf2_loc_directive_seen = 0;" (assignment_expression "dwarf2_loc_directive_seen = 0" identifier = number_literal) ;) (expression_statement "current.discriminator = 0;" (assignment_expression "current.discriminator = 0" (field_expression "current.discriminator" identifier . field_identifier) = number_literal) ;) (expression_statement "current.view = (symbolS *)0x0;" (assignment_expression "current.view = (symbolS *)0x0" (field_expression "current.view" identifier . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00117bf0(undefined8 param_1)\n\n{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}\n\n" (function_definition "void FUN_00117bf0(undefined8 param_1)\n\n{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}" primitive_type (function_declarator "FUN_00117bf0(undefined8 param_1)" identifier (parameter_list "(undefined8 param_1)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 uStack_20;" type_identifier identifier ;) (declaration "ulong local_18;" type_identifier identifier ;) (declaration "undefined8 uStack_10;" type_identifier identifier ;) (if_statement "if (DAT_00175998 == 0) {\n    return;\n  }" if (parenthesized_expression "(DAT_00175998 == 0)" ( (binary_expression "DAT_00175998 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "lVar1 = FUN_00131c90();" (assignment_expression "lVar1 = FUN_00131c90()" identifier = (call_expression "FUN_00131c90()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }" if (parenthesized_expression "((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0))" ( (binary_expression "(lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)" (parenthesized_expression "(lVar1 != DAT_00175788)" ( (binary_expression "lVar1 != DAT_00175788" identifier != identifier) )) || (parenthesized_expression "((*(byte *)(lVar1 + 0x20) & 0x10) == 0)" ( (binary_expression "(*(byte *)(lVar1 + 0x20) & 0x10) == 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x20) & 0x10)" ( (binary_expression "*(byte *)(lVar1 + 0x20) & 0x10" (pointer_expression "*(byte *)(lVar1 + 0x20)" * (cast_expression "(byte *)(lVar1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0x20)" ( (binary_expression "lVar1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" if (parenthesized_expression "(DAT_00174ec4 == 0)" ( (binary_expression "DAT_00174ec4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }" { (if_statement "if (DAT_00174db8 != 5) {\n      return;\n    }" if (parenthesized_expression "(DAT_00174db8 != 5)" ( (binary_expression "DAT_00174db8 != 5" identifier != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" else (if_statement "if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" if (parenthesized_expression "(DAT_00174db8 != 5)" ( (binary_expression "DAT_00174db8 != 5" identifier != number_literal) )) (compound_statement "{\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" { (expression_statement "local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);" (assignment_expression "local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0)" identifier = (call_expression "CONCAT44(DAT_0016c3f4,_DAT_0016c3f0)" identifier (argument_list "(DAT_0016c3f4,_DAT_0016c3f0)" ( identifier , identifier )))) ;) (expression_statement "local_28 = _DAT_0016c3e0;" (assignment_expression "local_28 = _DAT_0016c3e0" identifier = identifier) ;) (expression_statement "uStack_20 = _DAT_0016c3e8;" (assignment_expression "uStack_20 = _DAT_0016c3e8" identifier = identifier) ;) (expression_statement "uStack_10 = DAT_0016c3f8;" (assignment_expression "uStack_10 = DAT_0016c3f8" identifier = identifier) ;) (goto_statement "goto LAB_00117c7c;" goto statement_identifier ;) })))) (expression_statement "FUN_00117930(&local_28);" (call_expression "FUN_00117930(&local_28)" identifier (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) ))) ;) (labeled_statement "LAB_00117c7c:\n  local_18 = local_18 | 2;" statement_identifier : (expression_statement "local_18 = local_18 | 2;" (assignment_expression "local_18 = local_18 | 2" identifier = (binary_expression "local_18 | 2" identifier | number_literal)) ;)) (expression_statement "FUN_001178a0(param_1,&local_28);" (call_expression "FUN_001178a0(param_1,&local_28)" identifier (argument_list "(param_1,&local_28)" ( identifier , (pointer_expression "&local_28" & identifier) ))) ;) (expression_statement "_DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;" (assignment_expression "_DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1" identifier = (binary_expression "_DAT_0016c3f0 & 0xfffffff1" identifier & number_literal)) ;) (expression_statement "DAT_0017599c = 0;" (assignment_expression "DAT_0017599c = 0" identifier = number_literal) ;) (expression_statement "DAT_0016c3f4 = 0;" (assignment_expression "DAT_0016c3f4 = 0" identifier = number_literal) ;) (expression_statement "DAT_0016c3f8 = 0;" (assignment_expression "DAT_0016c3f8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_00117bf0(undefined8 param_1)\n\n{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00117bf0(undefined8 param_1)" (identifier "FUN_00117bf0") (parameter_list "(undefined8 param_1)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) () ")"))) (compound_statement "{\n  long lVar1;\n  undefined8 local_28;\n  undefined8 uStack_20;\n  ulong local_18;\n  undefined8 uStack_10;\n  \n  if (DAT_00175998 == 0) {\n    return;\n  }\n  lVar1 = FUN_00131c90();\n  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }\n  if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }\n  FUN_00117930(&local_28);\nLAB_00117c7c:\n  local_18 = local_18 | 2;\n  FUN_001178a0(param_1,&local_28);\n  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;\n  DAT_0017599c = 0;\n  DAT_0016c3f4 = 0;\n  DAT_0016c3f8 = 0;\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "undefined8 local_28;" (type_identifier "undefined8") (identifier "local_28") (; ";")) (declaration "undefined8 uStack_20;" (type_identifier "undefined8") (identifier "uStack_20") (; ";")) (declaration "ulong local_18;" (type_identifier "ulong") (identifier "local_18") (; ";")) (declaration "undefined8 uStack_10;" (type_identifier "undefined8") (identifier "uStack_10") (; ";")) (if_statement "if (DAT_00175998 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_00175998 == 0)" (( "(") (binary_expression "DAT_00175998 == 0" (identifier "DAT_00175998") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "lVar1 = FUN_00131c90();" (assignment_expression "lVar1 = FUN_00131c90()" (identifier "lVar1") (= "=") (call_expression "FUN_00131c90()" (identifier "FUN_00131c90") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {\n    return;\n  }" (if "if") (parenthesized_expression "((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0))" (( "(") (binary_expression "(lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)" (parenthesized_expression "(lVar1 != DAT_00175788)" (( "(") (binary_expression "lVar1 != DAT_00175788" (identifier "lVar1") (!= "!=") (identifier "DAT_00175788")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar1 + 0x20) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(lVar1 + 0x20) & 0x10) == 0" (parenthesized_expression "(*(byte *)(lVar1 + 0x20) & 0x10)" (( "(") (binary_expression "*(byte *)(lVar1 + 0x20) & 0x10" (pointer_expression "*(byte *)(lVar1 + 0x20)" (* "*") (cast_expression "(byte *)(lVar1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0x20)" (( "(") (binary_expression "lVar1 + 0x20" (identifier "lVar1") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (DAT_00174ec4 == 0) {\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }\n  else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" (if "if") (parenthesized_expression "(DAT_00174ec4 == 0)" (( "(") (binary_expression "DAT_00174ec4 == 0" (identifier "DAT_00174ec4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_00174db8 != 5) {\n      return;\n    }\n  }" ({ "{") (if_statement "if (DAT_00174db8 != 5) {\n      return;\n    }" (if "if") (parenthesized_expression "(DAT_00174db8 != 5)" (( "(") (binary_expression "DAT_00174db8 != 5" (identifier "DAT_00174db8") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" (else "else") (if_statement "if (DAT_00174db8 != 5) {\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" (if "if") (parenthesized_expression "(DAT_00174db8 != 5)" (( "(") (binary_expression "DAT_00174db8 != 5" (identifier "DAT_00174db8") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);\n    local_28 = _DAT_0016c3e0;\n    uStack_20 = _DAT_0016c3e8;\n    uStack_10 = DAT_0016c3f8;\n    goto LAB_00117c7c;\n  }" ({ "{") (expression_statement "local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);" (assignment_expression "local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0)" (identifier "local_18") (= "=") (call_expression "CONCAT44(DAT_0016c3f4,_DAT_0016c3f0)" (identifier "CONCAT44") (argument_list "(DAT_0016c3f4,_DAT_0016c3f0)" (( "(") (identifier "DAT_0016c3f4") (, ",") (identifier "_DAT_0016c3f0") () ")")))) (; ";")) (expression_statement "local_28 = _DAT_0016c3e0;" (assignment_expression "local_28 = _DAT_0016c3e0" (identifier "local_28") (= "=") (identifier "_DAT_0016c3e0")) (; ";")) (expression_statement "uStack_20 = _DAT_0016c3e8;" (assignment_expression "uStack_20 = _DAT_0016c3e8" (identifier "uStack_20") (= "=") (identifier "_DAT_0016c3e8")) (; ";")) (expression_statement "uStack_10 = DAT_0016c3f8;" (assignment_expression "uStack_10 = DAT_0016c3f8" (identifier "uStack_10") (= "=") (identifier "DAT_0016c3f8")) (; ";")) (goto_statement "goto LAB_00117c7c;" (goto "goto") (statement_identifier "LAB_00117c7c") (; ";")) (} "}"))))) (expression_statement "FUN_00117930(&local_28);" (call_expression "FUN_00117930(&local_28)" (identifier "FUN_00117930") (argument_list "(&local_28)" (( "(") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (labeled_statement "LAB_00117c7c:\n  local_18 = local_18 | 2;" (statement_identifier "LAB_00117c7c") (: ":") (expression_statement "local_18 = local_18 | 2;" (assignment_expression "local_18 = local_18 | 2" (identifier "local_18") (= "=") (binary_expression "local_18 | 2" (identifier "local_18") (| "|") (number_literal "2"))) (; ";"))) (expression_statement "FUN_001178a0(param_1,&local_28);" (call_expression "FUN_001178a0(param_1,&local_28)" (identifier "FUN_001178a0") (argument_list "(param_1,&local_28)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (expression_statement "_DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;" (assignment_expression "_DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1" (identifier "_DAT_0016c3f0") (= "=") (binary_expression "_DAT_0016c3f0 & 0xfffffff1" (identifier "_DAT_0016c3f0") (& "&") (number_literal "0xfffffff1"))) (; ";")) (expression_statement "DAT_0017599c = 0;" (assignment_expression "DAT_0017599c = 0" (identifier "DAT_0017599c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0016c3f4 = 0;" (assignment_expression "DAT_0016c3f4 = 0" (identifier "DAT_0016c3f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0016c3f8 = 0;" (assignment_expression "DAT_0016c3f8 = 0" (identifier "DAT_0016c3f8") (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *label)

{
  type_2 var_3;
  type_3 loc;
  
  if (var_1 == 0) {
    return;
  }
  var_3 = var_2(label);
  if ((var_3 != var_4) || ((var_3->flags & 0x10) == 0)) {
    return;
  }
  if (var_5 == 0) {
    if (var_6 != var_7) {
      return;
    }
  }
  else if (var_6 != var_7) {
    loc.discriminator = current.discriminator;
    loc.flags = current.flags;
    loc.filenum = current.filenum;
    loc.line = current.line;
    loc.column = current.column;
    loc.isa = current.isa;
    loc.view = current.view;
    goto LAB_00117c7c;
  }
  var_8(&loc);
LAB_00117c7c:
  loc._16_8_ = loc._16_8_ | 2;
  var_9(label,&loc);
  current.flags = current.flags & 0xfffffff1;
  dwarf2_loc_directive_seen = 0;
  current.discriminator = 0;
  current.view = (type_1 *)0x0;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (return_statement))))

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

void MASKED(undefined8 param_1)

{
  long lVar1;
  undefined8 local_28;
  undefined8 uStack_20;
  ulong local_18;
  undefined8 uStack_10;
  
  if (DAT_00175998 == 0) {
    return;
  }
  lVar1 = FUN_00131c90();
  if ((lVar1 != DAT_00175788) || ((*(byte *)(lVar1 + 0x20) & 0x10) == 0)) {
    return;
  }
  if (DAT_00174ec4 == 0) {
    if (DAT_00174db8 != 5) {
      return;
    }
  }
  else if (DAT_00174db8 != 5) {
    local_18 = CONCAT44(DAT_0016c3f4,_DAT_0016c3f0);
    local_28 = _DAT_0016c3e0;
    uStack_20 = _DAT_0016c3e8;
    uStack_10 = DAT_0016c3f8;
    goto LAB_00117c7c;
  }
  FUN_00117930(&local_28);
LAB_00117c7c:
  local_18 = local_18 | 2;
  FUN_001178a0(param_1,&local_28);
  _DAT_0016c3f0 = _DAT_0016c3f0 & 0xfffffff1;
  DAT_0017599c = 0;
  DAT_0016c3f4 = 0;
  DAT_0016c3f8 = 0;
  return;
}

