
void symbol_append(symbolS *addme,symbolS *target,symbolS **rootPP,symbolS **lastPP)

{
  symbol *psVar1;
  
  if (((uint)addme->sy_flags & 1) != 0) {
    if ((segT)addme->bsym != reg_section) {
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/symbols.c",0x31c,"symbol_append");
    }
    addme = (addme->sy_value).X_op_symbol;
  }
  if (target != (symbolS *)0x0) {
    if (((uint)target->sy_flags & 1) != 0) {
      if ((segT)target->bsym != reg_section) {
                    /* WARNING: Subroutine does not return */
        as_abort("../../gas/symbols.c",0x31e,"symbol_append");
      }
      target = (target->sy_value).X_op_symbol;
      if (target == (symbolS *)0x0) goto LAB_00126760;
    }
    psVar1 = target->sy_next;
    if (psVar1 == (symbol *)0x0) {
      if (*lastPP != target) {
                    /* WARNING: Subroutine does not return */
        as_abort("../../gas/symbols.c",0x331,"symbol_append");
      }
      *lastPP = addme;
      psVar1 = target->sy_next;
    }
    else {
      psVar1->sy_previous = addme;
    }
    addme->sy_next = psVar1;
    target->sy_next = addme;
    addme->sy_previous = target;
    return;
  }
LAB_00126760:
  if (*rootPP != (symbolS *)0x0) {
                    /* WARNING: Subroutine does not return */
    as_abort("../../gas/symbols.c",0x322,"symbol_append");
  }
  if (*lastPP == (symbolS *)0x0) {
    addme->sy_next = (symbol *)0x0;
    addme->sy_previous = (symbol *)0x0;
    *rootPP = addme;
    *lastPP = addme;
    return;
  }
                    /* WARNING: Subroutine does not return */
  as_abort("../../gas/symbols.c",0x323,"symbol_append");
}



void FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)

{
  long lVar1;
  
  if ((*param_1 & 1) != 0) {
    if (*(long *)(param_1 + 8) != DAT_00163898) {
                    /* WARNING: Subroutine does not return */
      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");
    }
    param_1 = *(byte **)(param_1 + 0x18);
  }
  if (param_2 != (byte *)0x0) {
    if ((*param_2 & 1) != 0) {
      if (*(long *)(param_2 + 8) != DAT_00163898) {
                    /* WARNING: Subroutine does not return */
        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");
      }
      param_2 = *(byte **)(param_2 + 0x18);
      if (param_2 == (byte *)0x0) goto LAB_00126760;
    }
    lVar1 = *(long *)(param_2 + 0x30);
    if (lVar1 == 0) {
      if ((byte *)*param_4 != param_2) {
                    /* WARNING: Subroutine does not return */
        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");
      }
      *param_4 = (long)param_1;
      lVar1 = *(long *)(param_2 + 0x30);
    }
    else {
      *(byte **)(lVar1 + 0x38) = param_1;
    }
    *(long *)(param_1 + 0x30) = lVar1;
    *(byte **)(param_2 + 0x30) = param_1;
    *(byte **)(param_1 + 0x38) = param_2;
    return;
  }
LAB_00126760:
  if (*param_3 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");
  }
  if (*param_4 == 0) {
    param_1[0x30] = 0;
    param_1[0x31] = 0;
    param_1[0x32] = 0;
    param_1[0x33] = 0;
    param_1[0x34] = 0;
    param_1[0x35] = 0;
    param_1[0x36] = 0;
    param_1[0x37] = 0;
    param_1[0x38] = 0;
    param_1[0x39] = 0;
    param_1[0x3a] = 0;
    param_1[0x3b] = 0;
    param_1[0x3c] = 0;
    param_1[0x3d] = 0;
    param_1[0x3e] = 0;
    param_1[0x3f] = 0;
    *param_3 = (long)param_1;
    *param_4 = (long)param_1;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");
}


SUB RSP,0x8
TEST byte ptr [RDI],0x1
JZ 0x001266f4
MOV RAX,qword ptr [0x00163898]
CMP qword ptr [RDI + 0x8],RAX
JZ 0x001266f0
LEA RDX,[0x141790]
MOV ESI,0x31c
LEA RDI,[0x140fa0]
CALL 0x0011c450
MOV RDI,qword ptr [RDI + 0x18]
TEST RSI,RSI
JZ 0x00126760
TEST byte ptr [RSI],0x1
JZ 0x00126731
MOV RAX,qword ptr [0x00163898]
CMP qword ptr [RSI + 0x8],RAX
JZ 0x00126728
LEA RDX,[0x141790]
MOV ESI,0x31e
LEA RDI,[0x140fa0]
CALL 0x0011c450
MOV RSI,qword ptr [RSI + 0x18]
TEST RSI,RSI
JZ 0x00126760
MOV RAX,qword ptr [RSI + 0x30]
TEST RAX,RAX
JZ 0x00126750
MOV qword ptr [RAX + 0x38],RDI
MOV qword ptr [RDI + 0x30],RAX
MOV qword ptr [RSI + 0x30],RDI
MOV qword ptr [RDI + 0x38],RSI
ADD RSP,0x8
RET
CMP qword ptr [RCX],RSI
JNZ 0x00126787
MOV qword ptr [RCX],RDI
MOV RAX,qword ptr [RSI + 0x30]
JMP 0x0012673e
CMP qword ptr [RDX],0x0
JNZ 0x0012679f
CMP qword ptr [RCX],0x0
JNZ 0x001267b7
MOV qword ptr [RDI + 0x30],0x0
MOV qword ptr [RDI + 0x38],0x0
MOV qword ptr [RDX],RDI
MOV qword ptr [RCX],RDI
ADD RSP,0x8
RET
LEA RDX,[0x141790]
MOV ESI,0x331
LEA RDI,[0x140fa0]
CALL 0x0011c450
LEA RDX,[0x141790]
MOV ESI,0x322
LEA RDI,[0x140fa0]
CALL 0x0011c450
LEA RDX,[0x141790]
MOV ESI,0x323
LEA RDI,[0x140fa0]
CALL 0x0011c450
(translation_unit "void FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}\n\n" (function_definition "void FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}" primitive_type (function_declarator "FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)" identifier (parameter_list "(byte *param_1,byte *param_2,long *param_3,long *param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }" if (parenthesized_expression "((*param_1 & 1) != 0)" ( (binary_expression "(*param_1 & 1) != 0" (parenthesized_expression "(*param_1 & 1)" ( (binary_expression "*param_1 & 1" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }" { (if_statement "if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }" if (parenthesized_expression "(*(long *)(param_1 + 8) != DAT_00163898)" ( (binary_expression "*(long *)(param_1 + 8) != DAT_00163898" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }" { comment (expression_statement "FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x31c,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "param_1 = *(byte **)(param_1 + 0x18);" (assignment_expression "param_1 = *(byte **)(param_1 + 0x18)" identifier = (pointer_expression "*(byte **)(param_1 + 0x18)" * (cast_expression "(byte **)(param_1 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) })) (if_statement "if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }" { (if_statement "if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }" if (parenthesized_expression "((*param_2 & 1) != 0)" ( (binary_expression "(*param_2 & 1) != 0" (parenthesized_expression "(*param_2 & 1)" ( (binary_expression "*param_2 & 1" (pointer_expression "*param_2" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }" { (if_statement "if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }" if (parenthesized_expression "(*(long *)(param_2 + 8) != DAT_00163898)" ( (binary_expression "*(long *)(param_2 + 8) != DAT_00163898" (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }" { comment (expression_statement "FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x31e,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "param_2 = *(byte **)(param_2 + 0x18);" (assignment_expression "param_2 = *(byte **)(param_2 + 0x18)" identifier = (pointer_expression "*(byte **)(param_2 + 0x18)" * (cast_expression "(byte **)(param_2 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == (byte *)0x0) goto LAB_00126760;" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00126760;" goto statement_identifier ;)) })) (expression_statement "lVar1 = *(long *)(param_2 + 0x30);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x30)" identifier = (pointer_expression "*(long *)(param_2 + 0x30)" * (cast_expression "(long *)(param_2 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }" { (if_statement "if ((byte *)*param_4 != param_2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }" if (parenthesized_expression "((byte *)*param_4 != param_2)" ( (binary_expression "(byte *)*param_4 != param_2" (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }" { comment (expression_statement "FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x331,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "*param_4 = (long)param_1;" (assignment_expression "*param_4 = (long)param_1" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar1 = *(long *)(param_2 + 0x30);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x30)" identifier = (pointer_expression "*(long *)(param_2 + 0x30)" * (cast_expression "(long *)(param_2 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" else (compound_statement "{\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" { (expression_statement "*(byte **)(lVar1 + 0x38) = param_1;" (assignment_expression "*(byte **)(lVar1 + 0x38) = param_1" (pointer_expression "*(byte **)(lVar1 + 0x38)" * (cast_expression "(byte **)(lVar1 + 0x38)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar1 + 0x38)" ( (binary_expression "lVar1 + 0x38" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(long *)(param_1 + 0x30) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x30) = lVar1" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(param_2 + 0x30) = param_1;" (assignment_expression "*(byte **)(param_2 + 0x30) = param_1" (pointer_expression "*(byte **)(param_2 + 0x30)" * (cast_expression "(byte **)(param_2 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(param_1 + 0x38) = param_2;" (assignment_expression "*(byte **)(param_1 + 0x38) = param_2" (pointer_expression "*(byte **)(param_1 + 0x38)" * (cast_expression "(byte **)(param_1 + 0x38)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_00126760:\n  if (*param_3 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" statement_identifier : (if_statement "if (*param_3 != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" if (parenthesized_expression "(*param_3 != 0)" ( (binary_expression "*param_3 != 0" (pointer_expression "*param_3" * identifier) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" { comment (expression_statement "FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x322,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) }))) (if_statement "if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }" if (parenthesized_expression "(*param_4 == 0)" ( (binary_expression "*param_4 == 0" (pointer_expression "*param_4" * identifier) == number_literal) )) (compound_statement "{\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }" { (expression_statement "param_1[0x30] = 0;" (assignment_expression "param_1[0x30] = 0" (subscript_expression "param_1[0x30]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x31] = 0;" (assignment_expression "param_1[0x31] = 0" (subscript_expression "param_1[0x31]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x32] = 0;" (assignment_expression "param_1[0x32] = 0" (subscript_expression "param_1[0x32]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x33] = 0;" (assignment_expression "param_1[0x33] = 0" (subscript_expression "param_1[0x33]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x34] = 0;" (assignment_expression "param_1[0x34] = 0" (subscript_expression "param_1[0x34]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x35] = 0;" (assignment_expression "param_1[0x35] = 0" (subscript_expression "param_1[0x35]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x36] = 0;" (assignment_expression "param_1[0x36] = 0" (subscript_expression "param_1[0x36]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x37] = 0;" (assignment_expression "param_1[0x37] = 0" (subscript_expression "param_1[0x37]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x38] = 0;" (assignment_expression "param_1[0x38] = 0" (subscript_expression "param_1[0x38]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x39] = 0;" (assignment_expression "param_1[0x39] = 0" (subscript_expression "param_1[0x39]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3a] = 0;" (assignment_expression "param_1[0x3a] = 0" (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3b] = 0;" (assignment_expression "param_1[0x3b] = 0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3c] = 0;" (assignment_expression "param_1[0x3c] = 0" (subscript_expression "param_1[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3d] = 0;" (assignment_expression "param_1[0x3d] = 0" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3e] = 0;" (assignment_expression "param_1[0x3e] = 0" (subscript_expression "param_1[0x3e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3f] = 0;" (assignment_expression "param_1[0x3f] = 0" (subscript_expression "param_1[0x3f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = (long)param_1;" (assignment_expression "*param_3 = (long)param_1" (pointer_expression "*param_3" * identifier) = (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*param_4 = (long)param_1;" (assignment_expression "*param_4 = (long)param_1" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (return_statement "return;" return ;) })) comment (expression_statement "FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x323,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })))
(translation_unit "void symbol_append(symbolS *addme,symbolS *target,symbolS **rootPP,symbolS **lastPP)\n\n{\n  symbol *psVar1;\n  \n  if (((uint)addme->sy_flags & 1) != 0) {\n    if ((segT)addme->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    addme = (addme->sy_value).X_op_symbol;\n  }\n  if (target != (symbolS *)0x0) {\n    if (((uint)target->sy_flags & 1) != 0) {\n      if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      target = (target->sy_value).X_op_symbol;\n      if (target == (symbolS *)0x0) goto LAB_00126760;\n    }\n    psVar1 = target->sy_next;\n    if (psVar1 == (symbol *)0x0) {\n      if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *lastPP = addme;\n      psVar1 = target->sy_next;\n    }\n    else {\n      psVar1->sy_previous = addme;\n    }\n    addme->sy_next = psVar1;\n    target->sy_next = addme;\n    addme->sy_previous = target;\n    return;\n  }\nLAB_00126760:\n  if (*rootPP != (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*lastPP == (symbolS *)0x0) {\n    addme->sy_next = (symbol *)0x0;\n    addme->sy_previous = (symbol *)0x0;\n    *rootPP = addme;\n    *lastPP = addme;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/symbols.c",0x323,"symbol_append");\n}\n\n" (function_definition "void symbol_append(symbolS *addme,symbolS *target,symbolS **rootPP,symbolS **lastPP)\n\n{\n  symbol *psVar1;\n  \n  if (((uint)addme->sy_flags & 1) != 0) {\n    if ((segT)addme->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    addme = (addme->sy_value).X_op_symbol;\n  }\n  if (target != (symbolS *)0x0) {\n    if (((uint)target->sy_flags & 1) != 0) {\n      if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      target = (target->sy_value).X_op_symbol;\n      if (target == (symbolS *)0x0) goto LAB_00126760;\n    }\n    psVar1 = target->sy_next;\n    if (psVar1 == (symbol *)0x0) {\n      if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *lastPP = addme;\n      psVar1 = target->sy_next;\n    }\n    else {\n      psVar1->sy_previous = addme;\n    }\n    addme->sy_next = psVar1;\n    target->sy_next = addme;\n    addme->sy_previous = target;\n    return;\n  }\nLAB_00126760:\n  if (*rootPP != (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*lastPP == (symbolS *)0x0) {\n    addme->sy_next = (symbol *)0x0;\n    addme->sy_previous = (symbol *)0x0;\n    *rootPP = addme;\n    *lastPP = addme;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/symbols.c",0x323,"symbol_append");\n}" primitive_type (function_declarator "symbol_append(symbolS *addme,symbolS *target,symbolS **rootPP,symbolS **lastPP)" identifier (parameter_list "(symbolS *addme,symbolS *target,symbolS **rootPP,symbolS **lastPP)" ( (parameter_declaration "symbolS *addme" type_identifier (pointer_declarator "*addme" * identifier)) , (parameter_declaration "symbolS *target" type_identifier (pointer_declarator "*target" * identifier)) , (parameter_declaration "symbolS **rootPP" type_identifier (pointer_declarator "**rootPP" * (pointer_declarator "*rootPP" * identifier))) , (parameter_declaration "symbolS **lastPP" type_identifier (pointer_declarator "**lastPP" * (pointer_declarator "*lastPP" * identifier))) ))) (compound_statement "{\n  symbol *psVar1;\n  \n  if (((uint)addme->sy_flags & 1) != 0) {\n    if ((segT)addme->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    addme = (addme->sy_value).X_op_symbol;\n  }\n  if (target != (symbolS *)0x0) {\n    if (((uint)target->sy_flags & 1) != 0) {\n      if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      target = (target->sy_value).X_op_symbol;\n      if (target == (symbolS *)0x0) goto LAB_00126760;\n    }\n    psVar1 = target->sy_next;\n    if (psVar1 == (symbol *)0x0) {\n      if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *lastPP = addme;\n      psVar1 = target->sy_next;\n    }\n    else {\n      psVar1->sy_previous = addme;\n    }\n    addme->sy_next = psVar1;\n    target->sy_next = addme;\n    addme->sy_previous = target;\n    return;\n  }\nLAB_00126760:\n  if (*rootPP != (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*lastPP == (symbolS *)0x0) {\n    addme->sy_next = (symbol *)0x0;\n    addme->sy_previous = (symbol *)0x0;\n    *rootPP = addme;\n    *lastPP = addme;\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  as_abort("../../gas/symbols.c",0x323,"symbol_append");\n}" { (declaration "symbol *psVar1;" type_identifier (pointer_declarator "*psVar1" * identifier) ;) (if_statement "if (((uint)addme->sy_flags & 1) != 0) {\n    if ((segT)addme->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    addme = (addme->sy_value).X_op_symbol;\n  }" if (parenthesized_expression "(((uint)addme->sy_flags & 1) != 0)" ( (binary_expression "((uint)addme->sy_flags & 1) != 0" (parenthesized_expression "((uint)addme->sy_flags & 1)" ( (binary_expression "(uint)addme->sy_flags & 1" (cast_expression "(uint)addme->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "addme->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((segT)addme->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    addme = (addme->sy_value).X_op_symbol;\n  }" { (if_statement "if ((segT)addme->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/symbols.c",0x31c,"symbol_append");\n    }" if (parenthesized_expression "((segT)addme->bsym != reg_section)" ( (binary_expression "(segT)addme->bsym != reg_section" (cast_expression "(segT)addme->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "addme->bsym" identifier -> field_identifier)) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/symbols.c",0x31c,"symbol_append");\n    }" { comment (expression_statement "as_abort("../../gas/symbols.c",0x31c,"symbol_append");" (call_expression "as_abort("../../gas/symbols.c",0x31c,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x31c,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "addme = (addme->sy_value).X_op_symbol;" (assignment_expression "addme = (addme->sy_value).X_op_symbol" identifier = (field_expression "(addme->sy_value).X_op_symbol" (parenthesized_expression "(addme->sy_value)" ( (field_expression "addme->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) })) (if_statement "if (target != (symbolS *)0x0) {\n    if (((uint)target->sy_flags & 1) != 0) {\n      if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      target = (target->sy_value).X_op_symbol;\n      if (target == (symbolS *)0x0) goto LAB_00126760;\n    }\n    psVar1 = target->sy_next;\n    if (psVar1 == (symbol *)0x0) {\n      if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *lastPP = addme;\n      psVar1 = target->sy_next;\n    }\n    else {\n      psVar1->sy_previous = addme;\n    }\n    addme->sy_next = psVar1;\n    target->sy_next = addme;\n    addme->sy_previous = target;\n    return;\n  }" if (parenthesized_expression "(target != (symbolS *)0x0)" ( (binary_expression "target != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((uint)target->sy_flags & 1) != 0) {\n      if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      target = (target->sy_value).X_op_symbol;\n      if (target == (symbolS *)0x0) goto LAB_00126760;\n    }\n    psVar1 = target->sy_next;\n    if (psVar1 == (symbol *)0x0) {\n      if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *lastPP = addme;\n      psVar1 = target->sy_next;\n    }\n    else {\n      psVar1->sy_previous = addme;\n    }\n    addme->sy_next = psVar1;\n    target->sy_next = addme;\n    addme->sy_previous = target;\n    return;\n  }" { (if_statement "if (((uint)target->sy_flags & 1) != 0) {\n      if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      target = (target->sy_value).X_op_symbol;\n      if (target == (symbolS *)0x0) goto LAB_00126760;\n    }" if (parenthesized_expression "(((uint)target->sy_flags & 1) != 0)" ( (binary_expression "((uint)target->sy_flags & 1) != 0" (parenthesized_expression "((uint)target->sy_flags & 1)" ( (binary_expression "(uint)target->sy_flags & 1" (cast_expression "(uint)target->sy_flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "target->sy_flags" identifier -> field_identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n      if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      target = (target->sy_value).X_op_symbol;\n      if (target == (symbolS *)0x0) goto LAB_00126760;\n    }" { (if_statement "if ((segT)target->bsym != reg_section) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }" if (parenthesized_expression "((segT)target->bsym != reg_section)" ( (binary_expression "(segT)target->bsym != reg_section" (cast_expression "(segT)target->bsym" ( (type_descriptor "segT" type_identifier) ) (field_expression "target->bsym" identifier -> field_identifier)) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x31e,"symbol_append");\n      }" { comment (expression_statement "as_abort("../../gas/symbols.c",0x31e,"symbol_append");" (call_expression "as_abort("../../gas/symbols.c",0x31e,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x31e,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "target = (target->sy_value).X_op_symbol;" (assignment_expression "target = (target->sy_value).X_op_symbol" identifier = (field_expression "(target->sy_value).X_op_symbol" (parenthesized_expression "(target->sy_value)" ( (field_expression "target->sy_value" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (target == (symbolS *)0x0) goto LAB_00126760;" if (parenthesized_expression "(target == (symbolS *)0x0)" ( (binary_expression "target == (symbolS *)0x0" identifier == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00126760;" goto statement_identifier ;)) })) (expression_statement "psVar1 = target->sy_next;" (assignment_expression "psVar1 = target->sy_next" identifier = (field_expression "target->sy_next" identifier -> field_identifier)) ;) (if_statement "if (psVar1 == (symbol *)0x0) {\n      if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *lastPP = addme;\n      psVar1 = target->sy_next;\n    }\n    else {\n      psVar1->sy_previous = addme;\n    }" if (parenthesized_expression "(psVar1 == (symbol *)0x0)" ( (binary_expression "psVar1 == (symbol *)0x0" identifier == (cast_expression "(symbol *)0x0" ( (type_descriptor "symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *lastPP = addme;\n      psVar1 = target->sy_next;\n    }" { (if_statement "if (*lastPP != target) {\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }" if (parenthesized_expression "(*lastPP != target)" ( (binary_expression "*lastPP != target" (pointer_expression "*lastPP" * identifier) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        as_abort("../../gas/symbols.c",0x331,"symbol_append");\n      }" { comment (expression_statement "as_abort("../../gas/symbols.c",0x331,"symbol_append");" (call_expression "as_abort("../../gas/symbols.c",0x331,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x331,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "*lastPP = addme;" (assignment_expression "*lastPP = addme" (pointer_expression "*lastPP" * identifier) = identifier) ;) (expression_statement "psVar1 = target->sy_next;" (assignment_expression "psVar1 = target->sy_next" identifier = (field_expression "target->sy_next" identifier -> field_identifier)) ;) }) (else_clause "else {\n      psVar1->sy_previous = addme;\n    }" else (compound_statement "{\n      psVar1->sy_previous = addme;\n    }" { (expression_statement "psVar1->sy_previous = addme;" (assignment_expression "psVar1->sy_previous = addme" (field_expression "psVar1->sy_previous" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "addme->sy_next = psVar1;" (assignment_expression "addme->sy_next = psVar1" (field_expression "addme->sy_next" identifier -> field_identifier) = identifier) ;) (expression_statement "target->sy_next = addme;" (assignment_expression "target->sy_next = addme" (field_expression "target->sy_next" identifier -> field_identifier) = identifier) ;) (expression_statement "addme->sy_previous = target;" (assignment_expression "addme->sy_previous = target" (field_expression "addme->sy_previous" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_00126760:\n  if (*rootPP != (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/symbols.c",0x322,"symbol_append");\n  }" statement_identifier : (if_statement "if (*rootPP != (symbolS *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/symbols.c",0x322,"symbol_append");\n  }" if (parenthesized_expression "(*rootPP != (symbolS *)0x0)" ( (binary_expression "*rootPP != (symbolS *)0x0" (pointer_expression "*rootPP" * identifier) != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    as_abort("../../gas/symbols.c",0x322,"symbol_append");\n  }" { comment (expression_statement "as_abort("../../gas/symbols.c",0x322,"symbol_append");" (call_expression "as_abort("../../gas/symbols.c",0x322,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x322,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) }))) (if_statement "if (*lastPP == (symbolS *)0x0) {\n    addme->sy_next = (symbol *)0x0;\n    addme->sy_previous = (symbol *)0x0;\n    *rootPP = addme;\n    *lastPP = addme;\n    return;\n  }" if (parenthesized_expression "(*lastPP == (symbolS *)0x0)" ( (binary_expression "*lastPP == (symbolS *)0x0" (pointer_expression "*lastPP" * identifier) == (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    addme->sy_next = (symbol *)0x0;\n    addme->sy_previous = (symbol *)0x0;\n    *rootPP = addme;\n    *lastPP = addme;\n    return;\n  }" { (expression_statement "addme->sy_next = (symbol *)0x0;" (assignment_expression "addme->sy_next = (symbol *)0x0" (field_expression "addme->sy_next" identifier -> field_identifier) = (cast_expression "(symbol *)0x0" ( (type_descriptor "symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "addme->sy_previous = (symbol *)0x0;" (assignment_expression "addme->sy_previous = (symbol *)0x0" (field_expression "addme->sy_previous" identifier -> field_identifier) = (cast_expression "(symbol *)0x0" ( (type_descriptor "symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*rootPP = addme;" (assignment_expression "*rootPP = addme" (pointer_expression "*rootPP" * identifier) = identifier) ;) (expression_statement "*lastPP = addme;" (assignment_expression "*lastPP = addme" (pointer_expression "*lastPP" * identifier) = identifier) ;) (return_statement "return;" return ;) })) comment (expression_statement "as_abort("../../gas/symbols.c",0x323,"symbol_append");" (call_expression "as_abort("../../gas/symbols.c",0x323,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x323,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })))
(translation_unit "void FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    \n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}\n\n" (function_definition "void FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    \n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}" primitive_type (function_declarator "FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)" identifier (parameter_list "(byte *param_1,byte *param_2,long *param_3,long *param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    \n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (if_statement "if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }" if (parenthesized_expression "((*param_1 & 1) != 0)" ( (binary_expression "(*param_1 & 1) != 0" (parenthesized_expression "(*param_1 & 1)" ( (binary_expression "*param_1 & 1" (pointer_expression "*param_1" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }" { (if_statement "if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }" if (parenthesized_expression "(*(long *)(param_1 + 8) != DAT_00163898)" ( (binary_expression "*(long *)(param_1 + 8) != DAT_00163898" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }" { (expression_statement "FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x31c,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "param_1 = *(byte **)(param_1 + 0x18);" (assignment_expression "param_1 = *(byte **)(param_1 + 0x18)" identifier = (pointer_expression "*(byte **)(param_1 + 0x18)" * (cast_expression "(byte **)(param_1 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) })) (if_statement "if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }" { (if_statement "if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }" if (parenthesized_expression "((*param_2 & 1) != 0)" ( (binary_expression "(*param_2 & 1) != 0" (parenthesized_expression "(*param_2 & 1)" ( (binary_expression "*param_2 & 1" (pointer_expression "*param_2" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }" { (if_statement "if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }" if (parenthesized_expression "(*(long *)(param_2 + 8) != DAT_00163898)" ( (binary_expression "*(long *)(param_2 + 8) != DAT_00163898" (pointer_expression "*(long *)(param_2 + 8)" * (cast_expression "(long *)(param_2 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }" { (expression_statement "FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x31e,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "param_2 = *(byte **)(param_2 + 0x18);" (assignment_expression "param_2 = *(byte **)(param_2 + 0x18)" identifier = (pointer_expression "*(byte **)(param_2 + 0x18)" * (cast_expression "(byte **)(param_2 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == (byte *)0x0) goto LAB_00126760;" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00126760;" goto statement_identifier ;)) })) (expression_statement "lVar1 = *(long *)(param_2 + 0x30);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x30)" identifier = (pointer_expression "*(long *)(param_2 + 0x30)" * (cast_expression "(long *)(param_2 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" if (parenthesized_expression "(lVar1 == 0)" ( (binary_expression "lVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }" { (if_statement "if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }" if (parenthesized_expression "((byte *)*param_4 != param_2)" ( (binary_expression "(byte *)*param_4 != param_2" (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) != identifier) )) (compound_statement "{\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }" { (expression_statement "FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x331,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })) (expression_statement "*param_4 = (long)param_1;" (assignment_expression "*param_4 = (long)param_1" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar1 = *(long *)(param_2 + 0x30);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x30)" identifier = (pointer_expression "*(long *)(param_2 + 0x30)" * (cast_expression "(long *)(param_2 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" else (compound_statement "{\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" { (expression_statement "*(byte **)(lVar1 + 0x38) = param_1;" (assignment_expression "*(byte **)(lVar1 + 0x38) = param_1" (pointer_expression "*(byte **)(lVar1 + 0x38)" * (cast_expression "(byte **)(lVar1 + 0x38)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar1 + 0x38)" ( (binary_expression "lVar1 + 0x38" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(long *)(param_1 + 0x30) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x30) = lVar1" (pointer_expression "*(long *)(param_1 + 0x30)" * (cast_expression "(long *)(param_1 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(param_2 + 0x30) = param_1;" (assignment_expression "*(byte **)(param_2 + 0x30) = param_1" (pointer_expression "*(byte **)(param_2 + 0x30)" * (cast_expression "(byte **)(param_2 + 0x30)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(param_1 + 0x38) = param_2;" (assignment_expression "*(byte **)(param_1 + 0x38) = param_2" (pointer_expression "*(byte **)(param_1 + 0x38)" * (cast_expression "(byte **)(param_1 + 0x38)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (labeled_statement "LAB_00126760:\n  if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" statement_identifier : (if_statement "if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" if (parenthesized_expression "(*param_3 != 0)" ( (binary_expression "*param_3 != 0" (pointer_expression "*param_3" * identifier) != number_literal) )) (compound_statement "{\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" { (expression_statement "FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x322,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) }))) (if_statement "if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }" if (parenthesized_expression "(*param_4 == 0)" ( (binary_expression "*param_4 == 0" (pointer_expression "*param_4" * identifier) == number_literal) )) (compound_statement "{\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }" { (expression_statement "param_1[0x30] = 0;" (assignment_expression "param_1[0x30] = 0" (subscript_expression "param_1[0x30]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x31] = 0;" (assignment_expression "param_1[0x31] = 0" (subscript_expression "param_1[0x31]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x32] = 0;" (assignment_expression "param_1[0x32] = 0" (subscript_expression "param_1[0x32]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x33] = 0;" (assignment_expression "param_1[0x33] = 0" (subscript_expression "param_1[0x33]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x34] = 0;" (assignment_expression "param_1[0x34] = 0" (subscript_expression "param_1[0x34]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x35] = 0;" (assignment_expression "param_1[0x35] = 0" (subscript_expression "param_1[0x35]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x36] = 0;" (assignment_expression "param_1[0x36] = 0" (subscript_expression "param_1[0x36]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x37] = 0;" (assignment_expression "param_1[0x37] = 0" (subscript_expression "param_1[0x37]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x38] = 0;" (assignment_expression "param_1[0x38] = 0" (subscript_expression "param_1[0x38]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x39] = 0;" (assignment_expression "param_1[0x39] = 0" (subscript_expression "param_1[0x39]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3a] = 0;" (assignment_expression "param_1[0x3a] = 0" (subscript_expression "param_1[0x3a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3b] = 0;" (assignment_expression "param_1[0x3b] = 0" (subscript_expression "param_1[0x3b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3c] = 0;" (assignment_expression "param_1[0x3c] = 0" (subscript_expression "param_1[0x3c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3d] = 0;" (assignment_expression "param_1[0x3d] = 0" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3e] = 0;" (assignment_expression "param_1[0x3e] = 0" (subscript_expression "param_1[0x3e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x3f] = 0;" (assignment_expression "param_1[0x3f] = 0" (subscript_expression "param_1[0x3f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*param_3 = (long)param_1;" (assignment_expression "*param_3 = (long)param_1" (pointer_expression "*param_3" * identifier) = (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*param_4 = (long)param_1;" (assignment_expression "*param_4 = (long)param_1" (pointer_expression "*param_4" * identifier) = (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append")" identifier (argument_list "("../../gas/symbols.c",0x323,"symbol_append")" ( (string_literal ""../../gas/symbols.c"" " string_content ") , number_literal , (string_literal ""symbol_append"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    \n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}" (primitive_type "void") (function_declarator "FUN_001266c0(byte *param_1,byte *param_2,long *param_3,long *param_4)" (identifier "FUN_001266c0") (parameter_list "(byte *param_1,byte *param_2,long *param_3,long *param_4)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long *param_4" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  long lVar1;\n  \n  if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }\n  if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }\nLAB_00126760:\n  if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }\n  if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }\n                    \n  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (if_statement "if ((*param_1 & 1) != 0) {\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }" (if "if") (parenthesized_expression "((*param_1 & 1) != 0)" (( "(") (binary_expression "(*param_1 & 1) != 0" (parenthesized_expression "(*param_1 & 1)" (( "(") (binary_expression "*param_1 & 1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }\n    param_1 = *(byte **)(param_1 + 0x18);\n  }" ({ "{") (if_statement "if (*(long *)(param_1 + 8) != DAT_00163898) {\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }" (if "if") (parenthesized_expression "(*(long *)(param_1 + 8) != DAT_00163898)" (( "(") (binary_expression "*(long *)(param_1 + 8) != DAT_00163898" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (identifier "DAT_00163898")) () ")")) (compound_statement "{\n                    \n      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");\n    }" ({ "{") (expression_statement "FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append")" (identifier "FUN_0011c450") (argument_list "("../../gas/symbols.c",0x31c,"symbol_append")" (( "(") (string_literal ""../../gas/symbols.c"" (" """) (string_content "../../gas/symbols.c") (" """)) (, ",") (number_literal "0x31c") (, ",") (string_literal ""symbol_append"" (" """) (string_content "symbol_append") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "param_1 = *(byte **)(param_1 + 0x18);" (assignment_expression "param_1 = *(byte **)(param_1 + 0x18)" (identifier "param_1") (= "=") (pointer_expression "*(byte **)(param_1 + 0x18)" (* "*") (cast_expression "(byte **)(param_1 + 0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (param_2 != (byte *)0x0) {\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }" (if "if") (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }\n    lVar1 = *(long *)(param_2 + 0x30);\n    if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }\n    *(long *)(param_1 + 0x30) = lVar1;\n    *(byte **)(param_2 + 0x30) = param_1;\n    *(byte **)(param_1 + 0x38) = param_2;\n    return;\n  }" ({ "{") (if_statement "if ((*param_2 & 1) != 0) {\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }" (if "if") (parenthesized_expression "((*param_2 & 1) != 0)" (( "(") (binary_expression "(*param_2 & 1) != 0" (parenthesized_expression "(*param_2 & 1)" (( "(") (binary_expression "*param_2 & 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }\n      param_2 = *(byte **)(param_2 + 0x18);\n      if (param_2 == (byte *)0x0) goto LAB_00126760;\n    }" ({ "{") (if_statement "if (*(long *)(param_2 + 8) != DAT_00163898) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }" (if "if") (parenthesized_expression "(*(long *)(param_2 + 8) != DAT_00163898)" (( "(") (binary_expression "*(long *)(param_2 + 8) != DAT_00163898" (pointer_expression "*(long *)(param_2 + 8)" (* "*") (cast_expression "(long *)(param_2 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (identifier "DAT_00163898")) () ")")) (compound_statement "{\n                    \n        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");\n      }" ({ "{") (expression_statement "FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append")" (identifier "FUN_0011c450") (argument_list "("../../gas/symbols.c",0x31e,"symbol_append")" (( "(") (string_literal ""../../gas/symbols.c"" (" """) (string_content "../../gas/symbols.c") (" """)) (, ",") (number_literal "0x31e") (, ",") (string_literal ""symbol_append"" (" """) (string_content "symbol_append") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "param_2 = *(byte **)(param_2 + 0x18);" (assignment_expression "param_2 = *(byte **)(param_2 + 0x18)" (identifier "param_2") (= "=") (pointer_expression "*(byte **)(param_2 + 0x18)" (* "*") (cast_expression "(byte **)(param_2 + 0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (param_2 == (byte *)0x0) goto LAB_00126760;" (if "if") (parenthesized_expression "(param_2 == (byte *)0x0)" (( "(") (binary_expression "param_2 == (byte *)0x0" (identifier "param_2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00126760;" (goto "goto") (statement_identifier "LAB_00126760") (; ";"))) (} "}"))) (expression_statement "lVar1 = *(long *)(param_2 + 0x30);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x30)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_2 + 0x30)" (* "*") (cast_expression "(long *)(param_2 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (lVar1 == 0) {\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }\n    else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" (if "if") (parenthesized_expression "(lVar1 == 0)" (( "(") (binary_expression "lVar1 == 0" (identifier "lVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }\n      *param_4 = (long)param_1;\n      lVar1 = *(long *)(param_2 + 0x30);\n    }" ({ "{") (if_statement "if ((byte *)*param_4 != param_2) {\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }" (if "if") (parenthesized_expression "((byte *)*param_4 != param_2)" (( "(") (binary_expression "(byte *)*param_4 != param_2" (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (!= "!=") (identifier "param_2")) () ")")) (compound_statement "{\n                    \n        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");\n      }" ({ "{") (expression_statement "FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append")" (identifier "FUN_0011c450") (argument_list "("../../gas/symbols.c",0x331,"symbol_append")" (( "(") (string_literal ""../../gas/symbols.c"" (" """) (string_content "../../gas/symbols.c") (" """)) (, ",") (number_literal "0x331") (, ",") (string_literal ""symbol_append"" (" """) (string_content "symbol_append") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "*param_4 = (long)param_1;" (assignment_expression "*param_4 = (long)param_1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1"))) (; ";")) (expression_statement "lVar1 = *(long *)(param_2 + 0x30);" (assignment_expression "lVar1 = *(long *)(param_2 + 0x30)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_2 + 0x30)" (* "*") (cast_expression "(long *)(param_2 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" (else "else") (compound_statement "{\n      *(byte **)(lVar1 + 0x38) = param_1;\n    }" ({ "{") (expression_statement "*(byte **)(lVar1 + 0x38) = param_1;" (assignment_expression "*(byte **)(lVar1 + 0x38) = param_1" (pointer_expression "*(byte **)(lVar1 + 0x38)" (* "*") (cast_expression "(byte **)(lVar1 + 0x38)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar1 + 0x38)" (( "(") (binary_expression "lVar1 + 0x38" (identifier "lVar1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (} "}")))) (expression_statement "*(long *)(param_1 + 0x30) = lVar1;" (assignment_expression "*(long *)(param_1 + 0x30) = lVar1" (pointer_expression "*(long *)(param_1 + 0x30)" (* "*") (cast_expression "(long *)(param_1 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "lVar1")) (; ";")) (expression_statement "*(byte **)(param_2 + 0x30) = param_1;" (assignment_expression "*(byte **)(param_2 + 0x30) = param_1" (pointer_expression "*(byte **)(param_2 + 0x30)" (* "*") (cast_expression "(byte **)(param_2 + 0x30)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(byte **)(param_1 + 0x38) = param_2;" (assignment_expression "*(byte **)(param_1 + 0x38) = param_2" (pointer_expression "*(byte **)(param_1 + 0x38)" (* "*") (cast_expression "(byte **)(param_1 + 0x38)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_00126760:\n  if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" (statement_identifier "LAB_00126760") (: ":") (if_statement "if (*param_3 != 0) {\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" (if "if") (parenthesized_expression "(*param_3 != 0)" (( "(") (binary_expression "*param_3 != 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");\n  }" ({ "{") (expression_statement "FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append")" (identifier "FUN_0011c450") (argument_list "("../../gas/symbols.c",0x322,"symbol_append")" (( "(") (string_literal ""../../gas/symbols.c"" (" """) (string_content "../../gas/symbols.c") (" """)) (, ",") (number_literal "0x322") (, ",") (string_literal ""symbol_append"" (" """) (string_content "symbol_append") (" """)) () ")"))) (; ";")) (} "}")))) (if_statement "if (*param_4 == 0) {\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }" (if "if") (parenthesized_expression "(*param_4 == 0)" (( "(") (binary_expression "*param_4 == 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[0x30] = 0;\n    param_1[0x31] = 0;\n    param_1[0x32] = 0;\n    param_1[0x33] = 0;\n    param_1[0x34] = 0;\n    param_1[0x35] = 0;\n    param_1[0x36] = 0;\n    param_1[0x37] = 0;\n    param_1[0x38] = 0;\n    param_1[0x39] = 0;\n    param_1[0x3a] = 0;\n    param_1[0x3b] = 0;\n    param_1[0x3c] = 0;\n    param_1[0x3d] = 0;\n    param_1[0x3e] = 0;\n    param_1[0x3f] = 0;\n    *param_3 = (long)param_1;\n    *param_4 = (long)param_1;\n    return;\n  }" ({ "{") (expression_statement "param_1[0x30] = 0;" (assignment_expression "param_1[0x30] = 0" (subscript_expression "param_1[0x30]" (identifier "param_1") ([ "[") (number_literal "0x30") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x31] = 0;" (assignment_expression "param_1[0x31] = 0" (subscript_expression "param_1[0x31]" (identifier "param_1") ([ "[") (number_literal "0x31") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x32] = 0;" (assignment_expression "param_1[0x32] = 0" (subscript_expression "param_1[0x32]" (identifier "param_1") ([ "[") (number_literal "0x32") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x33] = 0;" (assignment_expression "param_1[0x33] = 0" (subscript_expression "param_1[0x33]" (identifier "param_1") ([ "[") (number_literal "0x33") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x34] = 0;" (assignment_expression "param_1[0x34] = 0" (subscript_expression "param_1[0x34]" (identifier "param_1") ([ "[") (number_literal "0x34") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x35] = 0;" (assignment_expression "param_1[0x35] = 0" (subscript_expression "param_1[0x35]" (identifier "param_1") ([ "[") (number_literal "0x35") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x36] = 0;" (assignment_expression "param_1[0x36] = 0" (subscript_expression "param_1[0x36]" (identifier "param_1") ([ "[") (number_literal "0x36") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x37] = 0;" (assignment_expression "param_1[0x37] = 0" (subscript_expression "param_1[0x37]" (identifier "param_1") ([ "[") (number_literal "0x37") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x38] = 0;" (assignment_expression "param_1[0x38] = 0" (subscript_expression "param_1[0x38]" (identifier "param_1") ([ "[") (number_literal "0x38") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x39] = 0;" (assignment_expression "param_1[0x39] = 0" (subscript_expression "param_1[0x39]" (identifier "param_1") ([ "[") (number_literal "0x39") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x3a] = 0;" (assignment_expression "param_1[0x3a] = 0" (subscript_expression "param_1[0x3a]" (identifier "param_1") ([ "[") (number_literal "0x3a") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x3b] = 0;" (assignment_expression "param_1[0x3b] = 0" (subscript_expression "param_1[0x3b]" (identifier "param_1") ([ "[") (number_literal "0x3b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x3c] = 0;" (assignment_expression "param_1[0x3c] = 0" (subscript_expression "param_1[0x3c]" (identifier "param_1") ([ "[") (number_literal "0x3c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x3d] = 0;" (assignment_expression "param_1[0x3d] = 0" (subscript_expression "param_1[0x3d]" (identifier "param_1") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x3e] = 0;" (assignment_expression "param_1[0x3e] = 0" (subscript_expression "param_1[0x3e]" (identifier "param_1") ([ "[") (number_literal "0x3e") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x3f] = 0;" (assignment_expression "param_1[0x3f] = 0" (subscript_expression "param_1[0x3f]" (identifier "param_1") ([ "[") (number_literal "0x3f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_3 = (long)param_1;" (assignment_expression "*param_3 = (long)param_1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1"))) (; ";")) (expression_statement "*param_4 = (long)param_1;" (assignment_expression "*param_4 = (long)param_1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");" (call_expression "FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append")" (identifier "FUN_0011c450") (argument_list "("../../gas/symbols.c",0x323,"symbol_append")" (( "(") (string_literal ""../../gas/symbols.c"" (" """) (string_content "../../gas/symbols.c") (" """)) (, ",") (number_literal "0x323") (, ",") (string_literal ""symbol_append"" (" """) (string_content "symbol_append") (" """)) () ")"))) (; ";")) (} "}")))

void function_1(type_1 *addme,type_1 *var_3,type_1 **rootPP,type_1 **lastPP)

{
  type_2 *var_4;
  
  if (((type_3)addme->sy_flags & 1) != 0) {
    if ((type_4)addme->bsym != var_1) {
                    /* WARNING: Subroutine does not return */
      var_2("../../gas/symbols.c",0x31c,"symbol_append");
    }
    addme = (addme->sy_value).X_op_symbol;
  }
  if (var_3 != (type_1 *)0x0) {
    if (((type_3)var_3->sy_flags & 1) != 0) {
      if ((type_4)var_3->bsym != var_1) {
                    /* WARNING: Subroutine does not return */
        var_2("../../gas/symbols.c",0x31e,"symbol_append");
      }
      var_3 = (var_3->sy_value).X_op_symbol;
      if (var_3 == (type_1 *)0x0) goto LAB_00126760;
    }
    var_4 = var_3->sy_next;
    if (var_4 == (type_2 *)0x0) {
      if (*lastPP != var_3) {
                    /* WARNING: Subroutine does not return */
        var_2("../../gas/symbols.c",0x331,"symbol_append");
      }
      *lastPP = addme;
      var_4 = var_3->sy_next;
    }
    else {
      var_4->sy_previous = addme;
    }
    addme->sy_next = var_4;
    var_3->sy_next = addme;
    addme->sy_previous = var_3;
    return;
  }
LAB_00126760:
  if (*rootPP != (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gas/symbols.c",0x322,"symbol_append");
  }
  if (*lastPP == (type_1 *)0x0) {
    addme->sy_next = (type_2 *)0x0;
    addme->sy_previous = (type_2 *)0x0;
    *rootPP = addme;
    *lastPP = addme;
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_2("../../gas/symbols.c",0x323,"symbol_append");
}


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

void MASKED(byte *param_1,byte *param_2,long *param_3,long *param_4)

{
  long lVar1;
  
  if ((*param_1 & 1) != 0) {
    if (*(long *)(param_1 + 8) != DAT_00163898) {
                    /* WARNING: Subroutine does not return */
      FUN_0011c450("../../gas/symbols.c",0x31c,"symbol_append");
    }
    param_1 = *(byte **)(param_1 + 0x18);
  }
  if (param_2 != (byte *)0x0) {
    if ((*param_2 & 1) != 0) {
      if (*(long *)(param_2 + 8) != DAT_00163898) {
                    /* WARNING: Subroutine does not return */
        FUN_0011c450("../../gas/symbols.c",0x31e,"symbol_append");
      }
      param_2 = *(byte **)(param_2 + 0x18);
      if (param_2 == (byte *)0x0) goto LAB_00126760;
    }
    lVar1 = *(long *)(param_2 + 0x30);
    if (lVar1 == 0) {
      if ((byte *)*param_4 != param_2) {
                    /* WARNING: Subroutine does not return */
        FUN_0011c450("../../gas/symbols.c",0x331,"symbol_append");
      }
      *param_4 = (long)param_1;
      lVar1 = *(long *)(param_2 + 0x30);
    }
    else {
      *(byte **)(lVar1 + 0x38) = param_1;
    }
    *(long *)(param_1 + 0x30) = lVar1;
    *(byte **)(param_2 + 0x30) = param_1;
    *(byte **)(param_1 + 0x38) = param_2;
    return;
  }
LAB_00126760:
  if (*param_3 != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0011c450("../../gas/symbols.c",0x322,"symbol_append");
  }
  if (*param_4 == 0) {
    param_1[0x30] = 0;
    param_1[0x31] = 0;
    param_1[0x32] = 0;
    param_1[0x33] = 0;
    param_1[0x34] = 0;
    param_1[0x35] = 0;
    param_1[0x36] = 0;
    param_1[0x37] = 0;
    param_1[0x38] = 0;
    param_1[0x39] = 0;
    param_1[0x3a] = 0;
    param_1[0x3b] = 0;
    param_1[0x3c] = 0;
    param_1[0x3d] = 0;
    param_1[0x3e] = 0;
    param_1[0x3f] = 0;
    *param_3 = (long)param_1;
    *param_4 = (long)param_1;
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0011c450("../../gas/symbols.c",0x323,"symbol_append");
}

