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

void exp_print_tree(etree_type *tree)

{
  undefined *puVar1;
  asection *paVar2;
  etree_union *tree_00;
  
  puVar1 = PTR_stderr_001c1fa8;
LAB_00032eb2:
  if (config.map_file == (FILE *)0x0) {
    config.map_file = *(FILE **)puVar1;
  }
  if (tree == (etree_type *)0x0) {
    minfo("NULL TREE\n");
    return;
  }
  switch((tree->type).node_class) {
  case etree_binary:
    goto _L488;
  case etree_trinary:
    exp_print_tree((tree->binary).lhs);
    fputc(0x3f,(FILE *)config.map_file);
    exp_print_tree((tree->binary).rhs);
    fputc(0x3a,(FILE *)config.map_file);
    tree = (tree->trinary).rhs;
    goto LAB_00032eb2;
  case etree_unary:
    exp_print_token((tree->type).node_code,0);
    if ((tree->binary).lhs != (etree_union *)0x0) {
      fwrite(" (",1,2,(FILE *)config.map_file);
      goto LAB_00032ff8;
    }
    break;
  case etree_name:
    if ((tree->type).node_code == 0x103) {
      fputs((tree->assign).dst,(FILE *)config.map_file);
    }
    else {
      exp_print_token((tree->type).node_code,0);
      if ((tree->binary).lhs != (etree_union *)0x0) {
        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);
      }
    }
    break;
  case etree_assign:
    goto _L484;
  case etree_provide:
  case etree_provided:
    fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);
    tree_00 = (tree->binary).rhs;
    goto LAB_00032ffb;
  case etree_value:
    minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);
    return;
  case etree_assert:
    fwrite("ASSERT (",1,8,(FILE *)config.map_file);
    exp_print_tree((tree->binary).lhs);
    fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);
    break;
  case etree_rel:
    paVar2 = (tree->rel).section;
    if (paVar2->owner != (bfd *)0x0) {
      minfo("%pB:",paVar2->owner);
      paVar2 = (tree->rel).section;
    }
    minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);
    return;
  default:
    info_assert("../../ld/ldexp.c",0x5e1);
    return;
  }
  return;
_L484:
  fputs((tree->assign).dst,(FILE *)config.map_file);
  exp_print_token((tree->type).node_code,1);
  tree = (tree->binary).rhs;
  goto LAB_00032eb2;
_L488:
  switch((tree->type).node_code) {
  case 0x117:
  case 0x124:
  case 0x125:
  case 0x145:
  case 0x146:
    exp_print_token((tree->type).node_code,0);
    fputc(0x20,(FILE *)config.map_file);
    fputc(0x28,(FILE *)config.map_file);
    exp_print_tree((tree->binary).lhs);
    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);
    break;
  default:
    fputc(0x28,(FILE *)config.map_file);
    exp_print_tree((tree->binary).lhs);
    exp_print_token((tree->type).node_code,1);
    break;
  case 0x131:
    exp_print_token(0x131,0);
    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);
    exp_print_tree((tree->binary).rhs);
    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);
LAB_00032ff8:
    tree_00 = (tree->binary).lhs;
    goto LAB_00032ffb;
  }
  tree_00 = (tree->binary).rhs;
LAB_00032ffb:
  exp_print_tree(tree_00);
  fputc(0x29,(FILE *)config.map_file);
  return;
}



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

void FUN_00032e90(int *param_1)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  
  puVar1 = PTR_stderr_001c1fa8;
code_r0x00032eb2:
  if (DAT_001c4730 == (FILE *)0x0) {
    DAT_001c4730 = *(FILE **)puVar1;
  }
  if (param_1 == (int *)0x0) {
    FUN_00034e50("NULL TREE\n");
    return;
  }
  switch(param_1[3]) {
  case 0:
    goto code_r0x00032f78;
  case 1:
    FUN_00032e90(param_1[4]);
    fputc(0x3f,DAT_001c4730);
    FUN_00032e90(param_1[5]);
    fputc(0x3a,DAT_001c4730);
    param_1 = (int *)param_1[6];
    goto code_r0x00032eb2;
  case 2:
    FUN_00030a00();
    if (param_1[4] != 0) {
      fwrite(" (",1,2,DAT_001c4730);
      goto code_r0x00032ff8;
    }
    break;
  case 3:
    if (*param_1 == 0x103) {
      fputs((char *)param_1[4],DAT_001c4730);
    }
    else {
      FUN_00030a00();
      if (param_1[4] != 0) {
        fprintf(DAT_001c4730," (%s)",param_1[4]);
      }
    }
    break;
  case 4:
    goto code_r0x00033060;
  case 5:
  case 6:
    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);
    iVar3 = param_1[5];
    goto code_r0x00032ffb;
  case 7:
    FUN_00034e50("0x%v",param_1[4],param_1[5]);
    return;
  case 8:
    fwrite("ASSERT (",1,8,DAT_001c4730);
    FUN_00032e90(param_1[4]);
    fprintf(DAT_001c4730,", %s)",param_1[5]);
    break;
  case 9:
    puVar2 = (undefined4 *)param_1[4];
    if (puVar2[0x2b] != 0) {
      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);
      puVar2 = (undefined4 *)param_1[4];
    }
    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);
    return;
  default:
    FUN_00034e10("../../ld/ldexp.c",0x5e1);
    return;
  }
  return;
code_r0x00033060:
  fputs((char *)param_1[4],DAT_001c4730);
  FUN_00030a00();
  param_1 = (int *)param_1[5];
  goto code_r0x00032eb2;
code_r0x00032f78:
  switch(*param_1) {
  case 0x117:
  case 0x124:
  case 0x125:
  case 0x145:
  case 0x146:
    FUN_00030a00();
    fputc(0x20,DAT_001c4730);
    fputc(0x28,DAT_001c4730);
    FUN_00032e90(param_1[4]);
    fwrite(&UNK_000812da,1,2,DAT_001c4730);
    break;
  default:
    fputc(0x28,DAT_001c4730);
    FUN_00032e90(param_1[4]);
    FUN_00030a00();
    break;
  case 0x131:
    FUN_00030a00();
    fwrite(&UNK_000812d5,1,3,DAT_001c4730);
    FUN_00032e90(param_1[5]);
    fwrite(&UNK_000812d9,1,3,DAT_001c4730);
code_r0x00032ff8:
    iVar3 = param_1[4];
    goto code_r0x00032ffb;
  }
  iVar3 = param_1[5];
code_r0x00032ffb:
  FUN_00032e90(iVar3);
  fputc(0x29,DAT_001c4730);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017c50
ADD EBX,0x18f167
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x20]
LEA EDI,[EBX + 0x26e0]
MOV EBP,dword ptr [EBX + 0xffffffa8]
MOV EAX,dword ptr [EDI + 0x50]
TEST EAX,EAX
JZ 0x00032ee0
TEST ESI,ESI
JZ 0x000331d0
CMP dword ptr [ESI + 0xc],0x9
JA 0x000330d0
MOV EAX,dword ptr [ESI + 0xc]
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xffebf358]
ADD ECX,EBX
JMP ECX
MOV EAX,dword ptr [EBP]
MOV dword ptr [EDI + 0x50],EAX
JMP 0x00032eb9
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
LEA EAX,[EBX + 0xffebf259]
PUSH 0x5e1
PUSH EAX
CALL 0x00034e10
ADD ESP,0x10
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EAX,[EBX + 0xffebf2ae]
PUSH EAX
CALL 0x00034e50
ADD ESP,0x10
JMP 0x00032f24
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00032e90(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}\n\n" comment (function_definition "void FUN_00032e90(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}" primitive_type (function_declarator "FUN_00032e90(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_stderr_001c1fa8;" (assignment_expression "puVar1 = PTR_stderr_001c1fa8" identifier = identifier) ;) (labeled_statement "code_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" statement_identifier : (if_statement "if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" if (parenthesized_expression "(DAT_001c4730 == (FILE *)0x0)" ( (binary_expression "DAT_001c4730 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" { (expression_statement "DAT_001c4730 = *(FILE **)puVar1;" (assignment_expression "DAT_001c4730 = *(FILE **)puVar1" identifier = (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) (if_statement "if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }" { (expression_statement "FUN_00034e50("NULL TREE\n");" (call_expression "FUN_00034e50("NULL TREE\n")" identifier (argument_list "("NULL TREE\n")" ( (string_literal ""NULL TREE\n"" " string_content escape_sequence ") ))) ;) (return_statement "return;" return ;) })) (switch_statement "switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }" switch (parenthesized_expression "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) )) (compound_statement "{\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }" { (case_statement "case 0:\n    goto code_r0x00032f78;" case number_literal : (goto_statement "goto code_r0x00032f78;" goto statement_identifier ;)) (case_statement "case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;" case number_literal : (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "fputc(0x3f,DAT_001c4730);" (call_expression "fputc(0x3f,DAT_001c4730)" identifier (argument_list "(0x3f,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[5]);" (call_expression "FUN_00032e90(param_1[5])" identifier (argument_list "(param_1[5])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (expression_statement "fputc(0x3a,DAT_001c4730);" (call_expression "fputc(0x3a,DAT_001c4730)" identifier (argument_list "(0x3a,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "param_1 = (int *)param_1[6];" (assignment_expression "param_1 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x00032eb2;" goto statement_identifier ;)) (case_statement "case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;" case number_literal : (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }" if (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }" { (expression_statement "fwrite(" (",1,2,DAT_001c4730);" (call_expression "fwrite(" (",1,2,DAT_001c4730)" identifier (argument_list "(" (",1,2,DAT_001c4730)" ( (string_literal "" ("" " string_content ") , number_literal , number_literal , identifier ))) ;) (goto_statement "goto code_r0x00032ff8;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;" case number_literal : (if_statement "if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" if (parenthesized_expression "(*param_1 == 0x103)" ( (binary_expression "*param_1 == 0x103" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      fputs((char *)param_1[4],DAT_001c4730);\n    }" { (expression_statement "fputs((char *)param_1[4],DAT_001c4730);" (call_expression "fputs((char *)param_1[4],DAT_001c4730)" identifier (argument_list "((char *)param_1[4],DAT_001c4730)" ( (cast_expression "(char *)param_1[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) , identifier ))) ;) }) (else_clause "else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" else (compound_statement "{\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" { (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }" if (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }" { (expression_statement "fprintf(DAT_001c4730," (%s)",param_1[4]);" (call_expression "fprintf(DAT_001c4730," (%s)",param_1[4])" identifier (argument_list "(DAT_001c4730," (%s)",param_1[4])" ( identifier , (string_literal "" (%s)"" " string_content ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case 4:\n    goto code_r0x00033060;" case number_literal : (goto_statement "goto code_r0x00033060;" goto statement_identifier ;)) (case_statement "case 5:" case number_literal :) (case_statement "case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;" case number_literal : (expression_statement "fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);" (call_expression "fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4])" identifier (argument_list "(DAT_001c4730,"PROVIDE (%s = ",param_1[4])" ( identifier , (string_literal ""PROVIDE (%s = "" " string_content ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (goto_statement "goto code_r0x00032ffb;" goto statement_identifier ;)) (case_statement "case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;" case number_literal : (expression_statement "FUN_00034e50("0x%v",param_1[4],param_1[5]);" (call_expression "FUN_00034e50("0x%v",param_1[4],param_1[5])" identifier (argument_list "("0x%v",param_1[4],param_1[5])" ( (string_literal ""0x%v"" " string_content ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) , (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (return_statement "return;" return ;)) (case_statement "case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;" case number_literal : (expression_statement "fwrite("ASSERT (",1,8,DAT_001c4730);" (call_expression "fwrite("ASSERT (",1,8,DAT_001c4730)" identifier (argument_list "("ASSERT (",1,8,DAT_001c4730)" ( (string_literal ""ASSERT ("" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "fprintf(DAT_001c4730,", %s)",param_1[5]);" (call_expression "fprintf(DAT_001c4730,", %s)",param_1[5])" identifier (argument_list "(DAT_001c4730,", %s)",param_1[5])" ( identifier , (string_literal "", %s)"" " string_content ") , (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;" case number_literal : (expression_statement "puVar2 = (undefined4 *)param_1[4];" (assignment_expression "puVar2 = (undefined4 *)param_1[4]" identifier = (cast_expression "(undefined4 *)param_1[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }" if (parenthesized_expression "(puVar2[0x2b] != 0)" ( (binary_expression "puVar2[0x2b] != 0" (subscript_expression "puVar2[0x2b]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }" { (expression_statement "FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);" (call_expression "FUN_00034e50(&UNK_000812b9,puVar2[0x2b])" identifier (argument_list "(&UNK_000812b9,puVar2[0x2b])" ( (pointer_expression "&UNK_000812b9" & identifier) , (subscript_expression "puVar2[0x2b]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar2 = (undefined4 *)param_1[4];" (assignment_expression "puVar2 = (undefined4 *)param_1[4]" identifier = (cast_expression "(undefined4 *)param_1[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);" (call_expression "FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6])" identifier (argument_list "(&UNK_000812be,*puVar2,param_1[5],param_1[6])" ( (pointer_expression "&UNK_000812be" & identifier) , (pointer_expression "*puVar2" * identifier) , (subscript_expression "param_1[5]" identifier [ number_literal ]) , (subscript_expression "param_1[6]" identifier [ number_literal ]) ))) ;) (return_statement "return;" return ;)) (case_statement "default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;" default : (expression_statement "FUN_00034e10("../../ld/ldexp.c",0x5e1);" (call_expression "FUN_00034e10("../../ld/ldexp.c",0x5e1)" identifier (argument_list "("../../ld/ldexp.c",0x5e1)" ( (string_literal ""../../ld/ldexp.c"" " string_content ") , number_literal ))) ;) (return_statement "return;" return ;)) })) (return_statement "return;" return ;) (labeled_statement "code_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);" statement_identifier : (expression_statement "fputs((char *)param_1[4],DAT_001c4730);" (call_expression "fputs((char *)param_1[4],DAT_001c4730)" identifier (argument_list "((char *)param_1[4],DAT_001c4730)" ( (cast_expression "(char *)param_1[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) , identifier ))) ;)) (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)param_1[5];" (assignment_expression "param_1 = (int *)param_1[5]" identifier = (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x00032eb2;" goto statement_identifier ;) (labeled_statement "code_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" statement_identifier : (switch_statement "switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" switch (parenthesized_expression "(*param_1)" ( (pointer_expression "*param_1" * identifier) )) (compound_statement "{\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" { (case_statement "case 0x117:" case number_literal :) (case_statement "case 0x124:" case number_literal :) (case_statement "case 0x125:" case number_literal :) (case_statement "case 0x145:" case number_literal :) (case_statement "case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;" case number_literal : (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "fputc(0x20,DAT_001c4730);" (call_expression "fputc(0x20,DAT_001c4730)" identifier (argument_list "(0x20,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "fputc(0x28,DAT_001c4730);" (call_expression "fputc(0x28,DAT_001c4730)" identifier (argument_list "(0x28,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "fwrite(&UNK_000812da,1,2,DAT_001c4730);" (call_expression "fwrite(&UNK_000812da,1,2,DAT_001c4730)" identifier (argument_list "(&UNK_000812da,1,2,DAT_001c4730)" ( (pointer_expression "&UNK_000812da" & identifier) , number_literal , number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;" default : (expression_statement "fputc(0x28,DAT_001c4730);" (call_expression "fputc(0x28,DAT_001c4730)" identifier (argument_list "(0x28,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;" case number_literal : (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "fwrite(&UNK_000812d5,1,3,DAT_001c4730);" (call_expression "fwrite(&UNK_000812d5,1,3,DAT_001c4730)" identifier (argument_list "(&UNK_000812d5,1,3,DAT_001c4730)" ( (pointer_expression "&UNK_000812d5" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[5]);" (call_expression "FUN_00032e90(param_1[5])" identifier (argument_list "(param_1[5])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (expression_statement "fwrite(&UNK_000812d9,1,3,DAT_001c4730);" (call_expression "fwrite(&UNK_000812d9,1,3,DAT_001c4730)" identifier (argument_list "(&UNK_000812d9,1,3,DAT_001c4730)" ( (pointer_expression "&UNK_000812d9" & identifier) , number_literal , number_literal , identifier ))) ;) (labeled_statement "code_r0x00032ff8:\n    iVar3 = param_1[4];" statement_identifier : (expression_statement "iVar3 = param_1[4];" (assignment_expression "iVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;)) (goto_statement "goto code_r0x00032ffb;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (labeled_statement "code_r0x00032ffb:\n  FUN_00032e90(iVar3);" statement_identifier : (expression_statement "FUN_00032e90(iVar3);" (call_expression "FUN_00032e90(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;)) (expression_statement "fputc(0x29,DAT_001c4730);" (call_expression "fputc(0x29,DAT_001c4730)" identifier (argument_list "(0x29,DAT_001c4730)" ( number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid exp_print_tree(etree_type *tree)\n\n{\n  undefined *puVar1;\n  asection *paVar2;\n  etree_union *tree_00;\n  \n  puVar1 = PTR_stderr_001c1fa8;\nLAB_00032eb2:\n  if (config.map_file == (FILE *)0x0) {\n    config.map_file = *(FILE **)puVar1;\n  }\n  if (tree == (etree_type *)0x0) {\n    minfo("NULL TREE\n");\n    return;\n  }\n  switch((tree->type).node_class) {\n  case etree_binary:\n    goto _L488;\n  case etree_trinary:\n    exp_print_tree((tree->binary).lhs);\n    fputc(0x3f,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fputc(0x3a,(FILE *)config.map_file);\n    tree = (tree->trinary).rhs;\n    goto LAB_00032eb2;\n  case etree_unary:\n    exp_print_token((tree->type).node_code,0);\n    if ((tree->binary).lhs != (etree_union *)0x0) {\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }\n    break;\n  case etree_name:\n    if ((tree->type).node_code == 0x103) {\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }\n    else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }\n    break;\n  case etree_assign:\n    goto _L484;\n  case etree_provide:\n  case etree_provided:\n    fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);\n    tree_00 = (tree->binary).rhs;\n    goto LAB_00032ffb;\n  case etree_value:\n    minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);\n    return;\n  case etree_assert:\n    fwrite("ASSERT (",1,8,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);\n    break;\n  case etree_rel:\n    paVar2 = (tree->rel).section;\n    if (paVar2->owner != (bfd *)0x0) {\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }\n    minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);\n    return;\n  default:\n    info_assert("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\n_L484:\n  fputs((tree->assign).dst,(FILE *)config.map_file);\n  exp_print_token((tree->type).node_code,1);\n  tree = (tree->binary).rhs;\n  goto LAB_00032eb2;\n_L488:\n  switch((tree->type).node_code) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    exp_print_token((tree->type).node_code,0);\n    fputc(0x20,(FILE *)config.map_file);\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);\n    break;\n  default:\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    exp_print_token((tree->type).node_code,1);\n    break;\n  case 0x131:\n    exp_print_token(0x131,0);\n    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);\nLAB_00032ff8:\n    tree_00 = (tree->binary).lhs;\n    goto LAB_00032ffb;\n  }\n  tree_00 = (tree->binary).rhs;\nLAB_00032ffb:\n  exp_print_tree(tree_00);\n  fputc(0x29,(FILE *)config.map_file);\n  return;\n}\n\n" comment comment (function_definition "void exp_print_tree(etree_type *tree)\n\n{\n  undefined *puVar1;\n  asection *paVar2;\n  etree_union *tree_00;\n  \n  puVar1 = PTR_stderr_001c1fa8;\nLAB_00032eb2:\n  if (config.map_file == (FILE *)0x0) {\n    config.map_file = *(FILE **)puVar1;\n  }\n  if (tree == (etree_type *)0x0) {\n    minfo("NULL TREE\n");\n    return;\n  }\n  switch((tree->type).node_class) {\n  case etree_binary:\n    goto _L488;\n  case etree_trinary:\n    exp_print_tree((tree->binary).lhs);\n    fputc(0x3f,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fputc(0x3a,(FILE *)config.map_file);\n    tree = (tree->trinary).rhs;\n    goto LAB_00032eb2;\n  case etree_unary:\n    exp_print_token((tree->type).node_code,0);\n    if ((tree->binary).lhs != (etree_union *)0x0) {\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }\n    break;\n  case etree_name:\n    if ((tree->type).node_code == 0x103) {\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }\n    else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }\n    break;\n  case etree_assign:\n    goto _L484;\n  case etree_provide:\n  case etree_provided:\n    fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);\n    tree_00 = (tree->binary).rhs;\n    goto LAB_00032ffb;\n  case etree_value:\n    minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);\n    return;\n  case etree_assert:\n    fwrite("ASSERT (",1,8,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);\n    break;\n  case etree_rel:\n    paVar2 = (tree->rel).section;\n    if (paVar2->owner != (bfd *)0x0) {\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }\n    minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);\n    return;\n  default:\n    info_assert("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\n_L484:\n  fputs((tree->assign).dst,(FILE *)config.map_file);\n  exp_print_token((tree->type).node_code,1);\n  tree = (tree->binary).rhs;\n  goto LAB_00032eb2;\n_L488:\n  switch((tree->type).node_code) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    exp_print_token((tree->type).node_code,0);\n    fputc(0x20,(FILE *)config.map_file);\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);\n    break;\n  default:\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    exp_print_token((tree->type).node_code,1);\n    break;\n  case 0x131:\n    exp_print_token(0x131,0);\n    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);\nLAB_00032ff8:\n    tree_00 = (tree->binary).lhs;\n    goto LAB_00032ffb;\n  }\n  tree_00 = (tree->binary).rhs;\nLAB_00032ffb:\n  exp_print_tree(tree_00);\n  fputc(0x29,(FILE *)config.map_file);\n  return;\n}" primitive_type (function_declarator "exp_print_tree(etree_type *tree)" identifier (parameter_list "(etree_type *tree)" ( (parameter_declaration "etree_type *tree" type_identifier (pointer_declarator "*tree" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  asection *paVar2;\n  etree_union *tree_00;\n  \n  puVar1 = PTR_stderr_001c1fa8;\nLAB_00032eb2:\n  if (config.map_file == (FILE *)0x0) {\n    config.map_file = *(FILE **)puVar1;\n  }\n  if (tree == (etree_type *)0x0) {\n    minfo("NULL TREE\n");\n    return;\n  }\n  switch((tree->type).node_class) {\n  case etree_binary:\n    goto _L488;\n  case etree_trinary:\n    exp_print_tree((tree->binary).lhs);\n    fputc(0x3f,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fputc(0x3a,(FILE *)config.map_file);\n    tree = (tree->trinary).rhs;\n    goto LAB_00032eb2;\n  case etree_unary:\n    exp_print_token((tree->type).node_code,0);\n    if ((tree->binary).lhs != (etree_union *)0x0) {\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }\n    break;\n  case etree_name:\n    if ((tree->type).node_code == 0x103) {\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }\n    else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }\n    break;\n  case etree_assign:\n    goto _L484;\n  case etree_provide:\n  case etree_provided:\n    fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);\n    tree_00 = (tree->binary).rhs;\n    goto LAB_00032ffb;\n  case etree_value:\n    minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);\n    return;\n  case etree_assert:\n    fwrite("ASSERT (",1,8,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);\n    break;\n  case etree_rel:\n    paVar2 = (tree->rel).section;\n    if (paVar2->owner != (bfd *)0x0) {\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }\n    minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);\n    return;\n  default:\n    info_assert("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\n_L484:\n  fputs((tree->assign).dst,(FILE *)config.map_file);\n  exp_print_token((tree->type).node_code,1);\n  tree = (tree->binary).rhs;\n  goto LAB_00032eb2;\n_L488:\n  switch((tree->type).node_code) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    exp_print_token((tree->type).node_code,0);\n    fputc(0x20,(FILE *)config.map_file);\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);\n    break;\n  default:\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    exp_print_token((tree->type).node_code,1);\n    break;\n  case 0x131:\n    exp_print_token(0x131,0);\n    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);\nLAB_00032ff8:\n    tree_00 = (tree->binary).lhs;\n    goto LAB_00032ffb;\n  }\n  tree_00 = (tree->binary).rhs;\nLAB_00032ffb:\n  exp_print_tree(tree_00);\n  fputc(0x29,(FILE *)config.map_file);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "asection *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "etree_union *tree_00;" type_identifier (pointer_declarator "*tree_00" * identifier) ;) (expression_statement "puVar1 = PTR_stderr_001c1fa8;" (assignment_expression "puVar1 = PTR_stderr_001c1fa8" identifier = identifier) ;) (labeled_statement "LAB_00032eb2:\n  if (config.map_file == (FILE *)0x0) {\n    config.map_file = *(FILE **)puVar1;\n  }" statement_identifier : (if_statement "if (config.map_file == (FILE *)0x0) {\n    config.map_file = *(FILE **)puVar1;\n  }" if (parenthesized_expression "(config.map_file == (FILE *)0x0)" ( (binary_expression "config.map_file == (FILE *)0x0" (field_expression "config.map_file" identifier . field_identifier) == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    config.map_file = *(FILE **)puVar1;\n  }" { (expression_statement "config.map_file = *(FILE **)puVar1;" (assignment_expression "config.map_file = *(FILE **)puVar1" (field_expression "config.map_file" identifier . field_identifier) = (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) (if_statement "if (tree == (etree_type *)0x0) {\n    minfo("NULL TREE\n");\n    return;\n  }" if (parenthesized_expression "(tree == (etree_type *)0x0)" ( (binary_expression "tree == (etree_type *)0x0" identifier == (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    minfo("NULL TREE\n");\n    return;\n  }" { (expression_statement "minfo("NULL TREE\n");" (call_expression "minfo("NULL TREE\n")" identifier (argument_list "("NULL TREE\n")" ( (string_literal ""NULL TREE\n"" " string_content escape_sequence ") ))) ;) (return_statement "return;" return ;) })) (switch_statement "switch((tree->type).node_class) {\n  case etree_binary:\n    goto _L488;\n  case etree_trinary:\n    exp_print_tree((tree->binary).lhs);\n    fputc(0x3f,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fputc(0x3a,(FILE *)config.map_file);\n    tree = (tree->trinary).rhs;\n    goto LAB_00032eb2;\n  case etree_unary:\n    exp_print_token((tree->type).node_code,0);\n    if ((tree->binary).lhs != (etree_union *)0x0) {\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }\n    break;\n  case etree_name:\n    if ((tree->type).node_code == 0x103) {\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }\n    else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }\n    break;\n  case etree_assign:\n    goto _L484;\n  case etree_provide:\n  case etree_provided:\n    fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);\n    tree_00 = (tree->binary).rhs;\n    goto LAB_00032ffb;\n  case etree_value:\n    minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);\n    return;\n  case etree_assert:\n    fwrite("ASSERT (",1,8,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);\n    break;\n  case etree_rel:\n    paVar2 = (tree->rel).section;\n    if (paVar2->owner != (bfd *)0x0) {\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }\n    minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);\n    return;\n  default:\n    info_assert("../../ld/ldexp.c",0x5e1);\n    return;\n  }" switch (parenthesized_expression "((tree->type).node_class)" ( (field_expression "(tree->type).node_class" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n  case etree_binary:\n    goto _L488;\n  case etree_trinary:\n    exp_print_tree((tree->binary).lhs);\n    fputc(0x3f,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fputc(0x3a,(FILE *)config.map_file);\n    tree = (tree->trinary).rhs;\n    goto LAB_00032eb2;\n  case etree_unary:\n    exp_print_token((tree->type).node_code,0);\n    if ((tree->binary).lhs != (etree_union *)0x0) {\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }\n    break;\n  case etree_name:\n    if ((tree->type).node_code == 0x103) {\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }\n    else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }\n    break;\n  case etree_assign:\n    goto _L484;\n  case etree_provide:\n  case etree_provided:\n    fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);\n    tree_00 = (tree->binary).rhs;\n    goto LAB_00032ffb;\n  case etree_value:\n    minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);\n    return;\n  case etree_assert:\n    fwrite("ASSERT (",1,8,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);\n    break;\n  case etree_rel:\n    paVar2 = (tree->rel).section;\n    if (paVar2->owner != (bfd *)0x0) {\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }\n    minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);\n    return;\n  default:\n    info_assert("../../ld/ldexp.c",0x5e1);\n    return;\n  }" { (case_statement "case etree_binary:\n    goto _L488;" case identifier : (goto_statement "goto _L488;" goto statement_identifier ;)) (case_statement "case etree_trinary:\n    exp_print_tree((tree->binary).lhs);\n    fputc(0x3f,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fputc(0x3a,(FILE *)config.map_file);\n    tree = (tree->trinary).rhs;\n    goto LAB_00032eb2;" case identifier : (expression_statement "exp_print_tree((tree->binary).lhs);" (call_expression "exp_print_tree((tree->binary).lhs)" identifier (argument_list "((tree->binary).lhs)" ( (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "fputc(0x3f,(FILE *)config.map_file);" (call_expression "fputc(0x3f,(FILE *)config.map_file)" identifier (argument_list "(0x3f,(FILE *)config.map_file)" ( number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "exp_print_tree((tree->binary).rhs);" (call_expression "exp_print_tree((tree->binary).rhs)" identifier (argument_list "((tree->binary).rhs)" ( (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "fputc(0x3a,(FILE *)config.map_file);" (call_expression "fputc(0x3a,(FILE *)config.map_file)" identifier (argument_list "(0x3a,(FILE *)config.map_file)" ( number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "tree = (tree->trinary).rhs;" (assignment_expression "tree = (tree->trinary).rhs" identifier = (field_expression "(tree->trinary).rhs" (parenthesized_expression "(tree->trinary)" ( (field_expression "tree->trinary" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_00032eb2;" goto statement_identifier ;)) (case_statement "case etree_unary:\n    exp_print_token((tree->type).node_code,0);\n    if ((tree->binary).lhs != (etree_union *)0x0) {\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }\n    break;" case identifier : (expression_statement "exp_print_token((tree->type).node_code,0);" (call_expression "exp_print_token((tree->type).node_code,0)" identifier (argument_list "((tree->type).node_code,0)" ( (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (if_statement "if ((tree->binary).lhs != (etree_union *)0x0) {\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }" if (parenthesized_expression "((tree->binary).lhs != (etree_union *)0x0)" ( (binary_expression "(tree->binary).lhs != (etree_union *)0x0" (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      fwrite(" (",1,2,(FILE *)config.map_file);\n      goto LAB_00032ff8;\n    }" { (expression_statement "fwrite(" (",1,2,(FILE *)config.map_file);" (call_expression "fwrite(" (",1,2,(FILE *)config.map_file)" identifier (argument_list "(" (",1,2,(FILE *)config.map_file)" ( (string_literal "" ("" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (goto_statement "goto LAB_00032ff8;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case etree_name:\n    if ((tree->type).node_code == 0x103) {\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }\n    else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }\n    break;" case identifier : (if_statement "if ((tree->type).node_code == 0x103) {\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }\n    else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }" if (parenthesized_expression "((tree->type).node_code == 0x103)" ( (binary_expression "(tree->type).node_code == 0x103" (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n      fputs((tree->assign).dst,(FILE *)config.map_file);\n    }" { (expression_statement "fputs((tree->assign).dst,(FILE *)config.map_file);" (call_expression "fputs((tree->assign).dst,(FILE *)config.map_file)" identifier (argument_list "((tree->assign).dst,(FILE *)config.map_file)" ( (field_expression "(tree->assign).dst" (parenthesized_expression "(tree->assign)" ( (field_expression "tree->assign" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) }) (else_clause "else {\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }" else (compound_statement "{\n      exp_print_token((tree->type).node_code,0);\n      if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }\n    }" { (expression_statement "exp_print_token((tree->type).node_code,0);" (call_expression "exp_print_token((tree->type).node_code,0)" identifier (argument_list "((tree->type).node_code,0)" ( (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (if_statement "if ((tree->binary).lhs != (etree_union *)0x0) {\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }" if (parenthesized_expression "((tree->binary).lhs != (etree_union *)0x0)" ( (binary_expression "(tree->binary).lhs != (etree_union *)0x0" (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);\n      }" { (expression_statement "fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs);" (call_expression "fprintf((FILE *)config.map_file," (%s)",(tree->binary).lhs)" identifier (argument_list "((FILE *)config.map_file," (%s)",(tree->binary).lhs)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , (string_literal "" (%s)"" " string_content ") , (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case etree_assign:\n    goto _L484;" case identifier : (goto_statement "goto _L484;" goto statement_identifier ;)) (case_statement "case etree_provide:" case identifier :) (case_statement "case etree_provided:\n    fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);\n    tree_00 = (tree->binary).rhs;\n    goto LAB_00032ffb;" case identifier : (expression_statement "fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs);" (call_expression "fprintf((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs)" identifier (argument_list "((FILE *)config.map_file,"PROVIDE (%s = ",(tree->binary).lhs)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , (string_literal ""PROVIDE (%s = "" " string_content ") , (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "tree_00 = (tree->binary).rhs;" (assignment_expression "tree_00 = (tree->binary).rhs" identifier = (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_00032ffb;" goto statement_identifier ;)) (case_statement "case etree_value:\n    minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);\n    return;" case identifier : (expression_statement "minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs);" (call_expression "minfo("0x%v",(tree->binary).lhs,(tree->binary).rhs)" identifier (argument_list "("0x%v",(tree->binary).lhs,(tree->binary).rhs)" ( (string_literal ""0x%v"" " string_content ") , (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) , (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (return_statement "return;" return ;)) (case_statement "case etree_assert:\n    fwrite("ASSERT (",1,8,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);\n    break;" case identifier : (expression_statement "fwrite("ASSERT (",1,8,(FILE *)config.map_file);" (call_expression "fwrite("ASSERT (",1,8,(FILE *)config.map_file)" identifier (argument_list "("ASSERT (",1,8,(FILE *)config.map_file)" ( (string_literal ""ASSERT ("" " string_content ") , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "exp_print_tree((tree->binary).lhs);" (call_expression "exp_print_tree((tree->binary).lhs)" identifier (argument_list "((tree->binary).lhs)" ( (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs);" (call_expression "fprintf((FILE *)config.map_file,", %s)",(tree->binary).rhs)" identifier (argument_list "((FILE *)config.map_file,", %s)",(tree->binary).rhs)" ( (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) , (string_literal "", %s)"" " string_content ") , (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case etree_rel:\n    paVar2 = (tree->rel).section;\n    if (paVar2->owner != (bfd *)0x0) {\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }\n    minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);\n    return;" case identifier : (expression_statement "paVar2 = (tree->rel).section;" (assignment_expression "paVar2 = (tree->rel).section" identifier = (field_expression "(tree->rel).section" (parenthesized_expression "(tree->rel)" ( (field_expression "tree->rel" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar2->owner != (bfd *)0x0) {\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }" if (parenthesized_expression "(paVar2->owner != (bfd *)0x0)" ( (binary_expression "paVar2->owner != (bfd *)0x0" (field_expression "paVar2->owner" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      minfo("%pB:",paVar2->owner);\n      paVar2 = (tree->rel).section;\n    }" { (expression_statement "minfo("%pB:",paVar2->owner);" (call_expression "minfo("%pB:",paVar2->owner)" identifier (argument_list "("%pB:",paVar2->owner)" ( (string_literal ""%pB:"" " string_content ") , (field_expression "paVar2->owner" identifier -> field_identifier) ))) ;) (expression_statement "paVar2 = (tree->rel).section;" (assignment_expression "paVar2 = (tree->rel).section" identifier = (field_expression "(tree->rel).section" (parenthesized_expression "(tree->rel)" ( (field_expression "tree->rel" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs);" (call_expression "minfo("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs)" identifier (argument_list "("%s+0x%v",paVar2->name,(tree->binary).rhs,(tree->trinary).rhs)" ( (string_literal ""%s+0x%v"" " string_content ") , (field_expression "paVar2->name" identifier -> field_identifier) , (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) , (field_expression "(tree->trinary).rhs" (parenthesized_expression "(tree->trinary)" ( (field_expression "tree->trinary" identifier -> field_identifier) )) . field_identifier) ))) ;) (return_statement "return;" return ;)) (case_statement "default:\n    info_assert("../../ld/ldexp.c",0x5e1);\n    return;" default : (expression_statement "info_assert("../../ld/ldexp.c",0x5e1);" (call_expression "info_assert("../../ld/ldexp.c",0x5e1)" identifier (argument_list "("../../ld/ldexp.c",0x5e1)" ( (string_literal ""../../ld/ldexp.c"" " string_content ") , number_literal ))) ;) (return_statement "return;" return ;)) })) (return_statement "return;" return ;) (labeled_statement "_L484:\n  fputs((tree->assign).dst,(FILE *)config.map_file);" statement_identifier : (expression_statement "fputs((tree->assign).dst,(FILE *)config.map_file);" (call_expression "fputs((tree->assign).dst,(FILE *)config.map_file)" identifier (argument_list "((tree->assign).dst,(FILE *)config.map_file)" ( (field_expression "(tree->assign).dst" (parenthesized_expression "(tree->assign)" ( (field_expression "tree->assign" identifier -> field_identifier) )) . field_identifier) , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;)) (expression_statement "exp_print_token((tree->type).node_code,1);" (call_expression "exp_print_token((tree->type).node_code,1)" identifier (argument_list "((tree->type).node_code,1)" ( (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (expression_statement "tree = (tree->binary).rhs;" (assignment_expression "tree = (tree->binary).rhs" identifier = (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier)) ;) (goto_statement "goto LAB_00032eb2;" goto statement_identifier ;) (labeled_statement "_L488:\n  switch((tree->type).node_code) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    exp_print_token((tree->type).node_code,0);\n    fputc(0x20,(FILE *)config.map_file);\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);\n    break;\n  default:\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    exp_print_token((tree->type).node_code,1);\n    break;\n  case 0x131:\n    exp_print_token(0x131,0);\n    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);\nLAB_00032ff8:\n    tree_00 = (tree->binary).lhs;\n    goto LAB_00032ffb;\n  }" statement_identifier : (switch_statement "switch((tree->type).node_code) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    exp_print_token((tree->type).node_code,0);\n    fputc(0x20,(FILE *)config.map_file);\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);\n    break;\n  default:\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    exp_print_token((tree->type).node_code,1);\n    break;\n  case 0x131:\n    exp_print_token(0x131,0);\n    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);\nLAB_00032ff8:\n    tree_00 = (tree->binary).lhs;\n    goto LAB_00032ffb;\n  }" switch (parenthesized_expression "((tree->type).node_code)" ( (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    exp_print_token((tree->type).node_code,0);\n    fputc(0x20,(FILE *)config.map_file);\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);\n    break;\n  default:\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    exp_print_token((tree->type).node_code,1);\n    break;\n  case 0x131:\n    exp_print_token(0x131,0);\n    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);\nLAB_00032ff8:\n    tree_00 = (tree->binary).lhs;\n    goto LAB_00032ffb;\n  }" { (case_statement "case 0x117:" case number_literal :) (case_statement "case 0x124:" case number_literal :) (case_statement "case 0x125:" case number_literal :) (case_statement "case 0x145:" case number_literal :) (case_statement "case 0x146:\n    exp_print_token((tree->type).node_code,0);\n    fputc(0x20,(FILE *)config.map_file);\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);\n    break;" case number_literal : (expression_statement "exp_print_token((tree->type).node_code,0);" (call_expression "exp_print_token((tree->type).node_code,0)" identifier (argument_list "((tree->type).node_code,0)" ( (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (expression_statement "fputc(0x20,(FILE *)config.map_file);" (call_expression "fputc(0x20,(FILE *)config.map_file)" identifier (argument_list "(0x20,(FILE *)config.map_file)" ( number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "fputc(0x28,(FILE *)config.map_file);" (call_expression "fputc(0x28,(FILE *)config.map_file)" identifier (argument_list "(0x28,(FILE *)config.map_file)" ( number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "exp_print_tree((tree->binary).lhs);" (call_expression "exp_print_tree((tree->binary).lhs)" identifier (argument_list "((tree->binary).lhs)" ( (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "fwrite(&DAT_000812da,1,2,(FILE *)config.map_file);" (call_expression "fwrite(&DAT_000812da,1,2,(FILE *)config.map_file)" identifier (argument_list "(&DAT_000812da,1,2,(FILE *)config.map_file)" ( (pointer_expression "&DAT_000812da" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    fputc(0x28,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).lhs);\n    exp_print_token((tree->type).node_code,1);\n    break;" default : (expression_statement "fputc(0x28,(FILE *)config.map_file);" (call_expression "fputc(0x28,(FILE *)config.map_file)" identifier (argument_list "(0x28,(FILE *)config.map_file)" ( number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "exp_print_tree((tree->binary).lhs);" (call_expression "exp_print_tree((tree->binary).lhs)" identifier (argument_list "((tree->binary).lhs)" ( (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "exp_print_token((tree->type).node_code,1);" (call_expression "exp_print_token((tree->type).node_code,1)" identifier (argument_list "((tree->type).node_code,1)" ( (field_expression "(tree->type).node_code" (parenthesized_expression "(tree->type)" ( (field_expression "tree->type" identifier -> field_identifier) )) . field_identifier) , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x131:\n    exp_print_token(0x131,0);\n    fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);\n    exp_print_tree((tree->binary).rhs);\n    fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);\nLAB_00032ff8:\n    tree_00 = (tree->binary).lhs;\n    goto LAB_00032ffb;" case number_literal : (expression_statement "exp_print_token(0x131,0);" (call_expression "exp_print_token(0x131,0)" identifier (argument_list "(0x131,0)" ( number_literal , number_literal ))) ;) (expression_statement "fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file);" (call_expression "fwrite(&DAT_000812d5,1,3,(FILE *)config.map_file)" identifier (argument_list "(&DAT_000812d5,1,3,(FILE *)config.map_file)" ( (pointer_expression "&DAT_000812d5" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (expression_statement "exp_print_tree((tree->binary).rhs);" (call_expression "exp_print_tree((tree->binary).rhs)" identifier (argument_list "((tree->binary).rhs)" ( (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file);" (call_expression "fwrite(&DAT_000812d9,1,3,(FILE *)config.map_file)" identifier (argument_list "(&DAT_000812d9,1,3,(FILE *)config.map_file)" ( (pointer_expression "&DAT_000812d9" & identifier) , number_literal , number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (labeled_statement "LAB_00032ff8:\n    tree_00 = (tree->binary).lhs;" statement_identifier : (expression_statement "tree_00 = (tree->binary).lhs;" (assignment_expression "tree_00 = (tree->binary).lhs" identifier = (field_expression "(tree->binary).lhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier)) ;)) (goto_statement "goto LAB_00032ffb;" goto statement_identifier ;)) }))) (expression_statement "tree_00 = (tree->binary).rhs;" (assignment_expression "tree_00 = (tree->binary).rhs" identifier = (field_expression "(tree->binary).rhs" (parenthesized_expression "(tree->binary)" ( (field_expression "tree->binary" identifier -> field_identifier) )) . field_identifier)) ;) (labeled_statement "LAB_00032ffb:\n  exp_print_tree(tree_00);" statement_identifier : (expression_statement "exp_print_tree(tree_00);" (call_expression "exp_print_tree(tree_00)" identifier (argument_list "(tree_00)" ( identifier ))) ;)) (expression_statement "fputc(0x29,(FILE *)config.map_file);" (call_expression "fputc(0x29,(FILE *)config.map_file)" identifier (argument_list "(0x29,(FILE *)config.map_file)" ( number_literal , (cast_expression "(FILE *)config.map_file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "config.map_file" identifier . field_identifier)) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00032e90(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}\n\n" (function_definition "void FUN_00032e90(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}" primitive_type (function_declarator "FUN_00032e90(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "puVar1 = PTR_stderr_001c1fa8;" (assignment_expression "puVar1 = PTR_stderr_001c1fa8" identifier = identifier) ;) (labeled_statement "code_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" statement_identifier : (if_statement "if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" if (parenthesized_expression "(DAT_001c4730 == (FILE *)0x0)" ( (binary_expression "DAT_001c4730 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" { (expression_statement "DAT_001c4730 = *(FILE **)puVar1;" (assignment_expression "DAT_001c4730 = *(FILE **)puVar1" identifier = (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) }))) (if_statement "if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }" { (expression_statement "FUN_00034e50("NULL TREE\n");" (call_expression "FUN_00034e50("NULL TREE\n")" identifier (argument_list "("NULL TREE\n")" ( (string_literal ""NULL TREE\n"" " string_content escape_sequence ") ))) ;) (return_statement "return;" return ;) })) (switch_statement "switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }" switch (parenthesized_expression "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) )) (compound_statement "{\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }" { (case_statement "case 0:\n    goto code_r0x00032f78;" case number_literal : (goto_statement "goto code_r0x00032f78;" goto statement_identifier ;)) (case_statement "case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;" case number_literal : (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "fputc(0x3f,DAT_001c4730);" (call_expression "fputc(0x3f,DAT_001c4730)" identifier (argument_list "(0x3f,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[5]);" (call_expression "FUN_00032e90(param_1[5])" identifier (argument_list "(param_1[5])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (expression_statement "fputc(0x3a,DAT_001c4730);" (call_expression "fputc(0x3a,DAT_001c4730)" identifier (argument_list "(0x3a,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "param_1 = (int *)param_1[6];" (assignment_expression "param_1 = (int *)param_1[6]" identifier = (cast_expression "(int *)param_1[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[6]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x00032eb2;" goto statement_identifier ;)) (case_statement "case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;" case number_literal : (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }" if (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }" { (expression_statement "fwrite(" (",1,2,DAT_001c4730);" (call_expression "fwrite(" (",1,2,DAT_001c4730)" identifier (argument_list "(" (",1,2,DAT_001c4730)" ( (string_literal "" ("" " string_content ") , number_literal , number_literal , identifier ))) ;) (goto_statement "goto code_r0x00032ff8;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;" case number_literal : (if_statement "if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" if (parenthesized_expression "(*param_1 == 0x103)" ( (binary_expression "*param_1 == 0x103" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\n      fputs((char *)param_1[4],DAT_001c4730);\n    }" { (expression_statement "fputs((char *)param_1[4],DAT_001c4730);" (call_expression "fputs((char *)param_1[4],DAT_001c4730)" identifier (argument_list "((char *)param_1[4],DAT_001c4730)" ( (cast_expression "(char *)param_1[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) , identifier ))) ;) }) (else_clause "else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" else (compound_statement "{\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" { (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (if_statement "if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }" if (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }" { (expression_statement "fprintf(DAT_001c4730," (%s)",param_1[4]);" (call_expression "fprintf(DAT_001c4730," (%s)",param_1[4])" identifier (argument_list "(DAT_001c4730," (%s)",param_1[4])" ( identifier , (string_literal "" (%s)"" " string_content ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case 4:\n    goto code_r0x00033060;" case number_literal : (goto_statement "goto code_r0x00033060;" goto statement_identifier ;)) (case_statement "case 5:" case number_literal :) (case_statement "case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;" case number_literal : (expression_statement "fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);" (call_expression "fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4])" identifier (argument_list "(DAT_001c4730,"PROVIDE (%s = ",param_1[4])" ( identifier , (string_literal ""PROVIDE (%s = "" " string_content ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (goto_statement "goto code_r0x00032ffb;" goto statement_identifier ;)) (case_statement "case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;" case number_literal : (expression_statement "FUN_00034e50("0x%v",param_1[4],param_1[5]);" (call_expression "FUN_00034e50("0x%v",param_1[4],param_1[5])" identifier (argument_list "("0x%v",param_1[4],param_1[5])" ( (string_literal ""0x%v"" " string_content ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) , (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (return_statement "return;" return ;)) (case_statement "case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;" case number_literal : (expression_statement "fwrite("ASSERT (",1,8,DAT_001c4730);" (call_expression "fwrite("ASSERT (",1,8,DAT_001c4730)" identifier (argument_list "("ASSERT (",1,8,DAT_001c4730)" ( (string_literal ""ASSERT ("" " string_content ") , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "fprintf(DAT_001c4730,", %s)",param_1[5]);" (call_expression "fprintf(DAT_001c4730,", %s)",param_1[5])" identifier (argument_list "(DAT_001c4730,", %s)",param_1[5])" ( identifier , (string_literal "", %s)"" " string_content ") , (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;" case number_literal : (expression_statement "puVar2 = (undefined4 *)param_1[4];" (assignment_expression "puVar2 = (undefined4 *)param_1[4]" identifier = (cast_expression "(undefined4 *)param_1[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) (if_statement "if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }" if (parenthesized_expression "(puVar2[0x2b] != 0)" ( (binary_expression "puVar2[0x2b] != 0" (subscript_expression "puVar2[0x2b]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }" { (expression_statement "FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);" (call_expression "FUN_00034e50(&UNK_000812b9,puVar2[0x2b])" identifier (argument_list "(&UNK_000812b9,puVar2[0x2b])" ( (pointer_expression "&UNK_000812b9" & identifier) , (subscript_expression "puVar2[0x2b]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar2 = (undefined4 *)param_1[4];" (assignment_expression "puVar2 = (undefined4 *)param_1[4]" identifier = (cast_expression "(undefined4 *)param_1[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);" (call_expression "FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6])" identifier (argument_list "(&UNK_000812be,*puVar2,param_1[5],param_1[6])" ( (pointer_expression "&UNK_000812be" & identifier) , (pointer_expression "*puVar2" * identifier) , (subscript_expression "param_1[5]" identifier [ number_literal ]) , (subscript_expression "param_1[6]" identifier [ number_literal ]) ))) ;) (return_statement "return;" return ;)) (case_statement "default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;" default : (expression_statement "FUN_00034e10("../../ld/ldexp.c",0x5e1);" (call_expression "FUN_00034e10("../../ld/ldexp.c",0x5e1)" identifier (argument_list "("../../ld/ldexp.c",0x5e1)" ( (string_literal ""../../ld/ldexp.c"" " string_content ") , number_literal ))) ;) (return_statement "return;" return ;)) })) (return_statement "return;" return ;) (labeled_statement "code_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);" statement_identifier : (expression_statement "fputs((char *)param_1[4],DAT_001c4730);" (call_expression "fputs((char *)param_1[4],DAT_001c4730)" identifier (argument_list "((char *)param_1[4],DAT_001c4730)" ( (cast_expression "(char *)param_1[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) , identifier ))) ;)) (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)param_1[5];" (assignment_expression "param_1 = (int *)param_1[5]" identifier = (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) ;) (goto_statement "goto code_r0x00032eb2;" goto statement_identifier ;) (labeled_statement "code_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" statement_identifier : (switch_statement "switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" switch (parenthesized_expression "(*param_1)" ( (pointer_expression "*param_1" * identifier) )) (compound_statement "{\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" { (case_statement "case 0x117:" case number_literal :) (case_statement "case 0x124:" case number_literal :) (case_statement "case 0x125:" case number_literal :) (case_statement "case 0x145:" case number_literal :) (case_statement "case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;" case number_literal : (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "fputc(0x20,DAT_001c4730);" (call_expression "fputc(0x20,DAT_001c4730)" identifier (argument_list "(0x20,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "fputc(0x28,DAT_001c4730);" (call_expression "fputc(0x28,DAT_001c4730)" identifier (argument_list "(0x28,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "fwrite(&UNK_000812da,1,2,DAT_001c4730);" (call_expression "fwrite(&UNK_000812da,1,2,DAT_001c4730)" identifier (argument_list "(&UNK_000812da,1,2,DAT_001c4730)" ( (pointer_expression "&UNK_000812da" & identifier) , number_literal , number_literal , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;" default : (expression_statement "fputc(0x28,DAT_001c4730);" (call_expression "fputc(0x28,DAT_001c4730)" identifier (argument_list "(0x28,DAT_001c4730)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;" case number_literal : (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" identifier (argument_list "()" ( ))) ;) (expression_statement "fwrite(&UNK_000812d5,1,3,DAT_001c4730);" (call_expression "fwrite(&UNK_000812d5,1,3,DAT_001c4730)" identifier (argument_list "(&UNK_000812d5,1,3,DAT_001c4730)" ( (pointer_expression "&UNK_000812d5" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_00032e90(param_1[5]);" (call_expression "FUN_00032e90(param_1[5])" identifier (argument_list "(param_1[5])" ( (subscript_expression "param_1[5]" identifier [ number_literal ]) ))) ;) (expression_statement "fwrite(&UNK_000812d9,1,3,DAT_001c4730);" (call_expression "fwrite(&UNK_000812d9,1,3,DAT_001c4730)" identifier (argument_list "(&UNK_000812d9,1,3,DAT_001c4730)" ( (pointer_expression "&UNK_000812d9" & identifier) , number_literal , number_literal , identifier ))) ;) (labeled_statement "code_r0x00032ff8:\n    iVar3 = param_1[4];" statement_identifier : (expression_statement "iVar3 = param_1[4];" (assignment_expression "iVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;)) (goto_statement "goto code_r0x00032ffb;" goto statement_identifier ;)) }))) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (labeled_statement "code_r0x00032ffb:\n  FUN_00032e90(iVar3);" statement_identifier : (expression_statement "FUN_00032e90(iVar3);" (call_expression "FUN_00032e90(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;)) (expression_statement "fputc(0x29,DAT_001c4730);" (call_expression "fputc(0x29,DAT_001c4730)" identifier (argument_list "(0x29,DAT_001c4730)" ( number_literal , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (return_statement return ;) })) (switch_statement switch (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (compound_statement { (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) })) }))) (break_statement break ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (return_statement return ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) (return_statement return ;)) })) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00032e90(int *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00032e90(int *param_1)" (identifier "FUN_00032e90") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  \n  puVar1 = PTR_stderr_001c1fa8;\ncode_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }\n  if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }\n  switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }\n  return;\ncode_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);\n  FUN_00030a00();\n  param_1 = (int *)param_1[5];\n  goto code_r0x00032eb2;\ncode_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }\n  iVar3 = param_1[5];\ncode_r0x00032ffb:\n  FUN_00032e90(iVar3);\n  fputc(0x29,DAT_001c4730);\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "puVar1 = PTR_stderr_001c1fa8;" (assignment_expression "puVar1 = PTR_stderr_001c1fa8" (identifier "puVar1") (= "=") (identifier "PTR_stderr_001c1fa8")) (; ";")) (labeled_statement "code_r0x00032eb2:\n  if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" (statement_identifier "code_r0x00032eb2") (: ":") (if_statement "if (DAT_001c4730 == (FILE *)0x0) {\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" (if "if") (parenthesized_expression "(DAT_001c4730 == (FILE *)0x0)" (( "(") (binary_expression "DAT_001c4730 == (FILE *)0x0" (identifier "DAT_001c4730") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_001c4730 = *(FILE **)puVar1;\n  }" ({ "{") (expression_statement "DAT_001c4730 = *(FILE **)puVar1;" (assignment_expression "DAT_001c4730 = *(FILE **)puVar1" (identifier "DAT_001c4730") (= "=") (pointer_expression "*(FILE **)puVar1" (* "*") (cast_expression "(FILE **)puVar1" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1")))) (; ";")) (} "}")))) (if_statement "if (param_1 == (int *)0x0) {\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00034e50("NULL TREE\n");\n    return;\n  }" ({ "{") (expression_statement "FUN_00034e50("NULL TREE\n");" (call_expression "FUN_00034e50("NULL TREE\n")" (identifier "FUN_00034e50") (argument_list "("NULL TREE\n")" (( "(") (string_literal ""NULL TREE\n"" (" """) (string_content "NULL TREE") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (switch_statement "switch(param_1[3]) {\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }" (switch "switch") (parenthesized_expression "(param_1[3])" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) () ")")) (compound_statement "{\n  case 0:\n    goto code_r0x00032f78;\n  case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;\n  case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;\n  case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;\n  case 4:\n    goto code_r0x00033060;\n  case 5:\n  case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;\n  case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;\n  case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;\n  case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;\n  default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;\n  }" ({ "{") (case_statement "case 0:\n    goto code_r0x00032f78;" (case "case") (number_literal "0") (: ":") (goto_statement "goto code_r0x00032f78;" (goto "goto") (statement_identifier "code_r0x00032f78") (; ";"))) (case_statement "case 1:\n    FUN_00032e90(param_1[4]);\n    fputc(0x3f,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fputc(0x3a,DAT_001c4730);\n    param_1 = (int *)param_1[6];\n    goto code_r0x00032eb2;" (case "case") (number_literal "1") (: ":") (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" (identifier "FUN_00032e90") (argument_list "(param_1[4])" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "fputc(0x3f,DAT_001c4730);" (call_expression "fputc(0x3f,DAT_001c4730)" (identifier "fputc") (argument_list "(0x3f,DAT_001c4730)" (( "(") (number_literal "0x3f") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (expression_statement "FUN_00032e90(param_1[5]);" (call_expression "FUN_00032e90(param_1[5])" (identifier "FUN_00032e90") (argument_list "(param_1[5])" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) () ")"))) (; ";")) (expression_statement "fputc(0x3a,DAT_001c4730);" (call_expression "fputc(0x3a,DAT_001c4730)" (identifier "fputc") (argument_list "(0x3a,DAT_001c4730)" (( "(") (number_literal "0x3a") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (expression_statement "param_1 = (int *)param_1[6];" (assignment_expression "param_1 = (int *)param_1[6]" (identifier "param_1") (= "=") (cast_expression "(int *)param_1[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")))) (; ";")) (goto_statement "goto code_r0x00032eb2;" (goto "goto") (statement_identifier "code_r0x00032eb2") (; ";"))) (case_statement "case 2:\n    FUN_00030a00();\n    if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }\n    break;" (case "case") (number_literal "2") (: ":") (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" (identifier "FUN_00030a00") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_1[4] != 0) {\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }" (if "if") (parenthesized_expression "(param_1[4] != 0)" (( "(") (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" (",1,2,DAT_001c4730);\n      goto code_r0x00032ff8;\n    }" ({ "{") (expression_statement "fwrite(" (",1,2,DAT_001c4730);" (call_expression "fwrite(" (",1,2,DAT_001c4730)" (identifier "fwrite") (argument_list "(" (",1,2,DAT_001c4730)" (( "(") (string_literal "" ("" (" """) (string_content " (") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (goto_statement "goto code_r0x00032ff8;" (goto "goto") (statement_identifier "code_r0x00032ff8") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n    if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }\n    break;" (case "case") (number_literal "3") (: ":") (if_statement "if (*param_1 == 0x103) {\n      fputs((char *)param_1[4],DAT_001c4730);\n    }\n    else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" (if "if") (parenthesized_expression "(*param_1 == 0x103)" (( "(") (binary_expression "*param_1 == 0x103" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "0x103")) () ")")) (compound_statement "{\n      fputs((char *)param_1[4],DAT_001c4730);\n    }" ({ "{") (expression_statement "fputs((char *)param_1[4],DAT_001c4730);" (call_expression "fputs((char *)param_1[4],DAT_001c4730)" (identifier "fputs") (argument_list "((char *)param_1[4],DAT_001c4730)" (( "(") (cast_expression "(char *)param_1[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" (else "else") (compound_statement "{\n      FUN_00030a00();\n      if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }\n    }" ({ "{") (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" (identifier "FUN_00030a00") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (param_1[4] != 0) {\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }" (if "if") (parenthesized_expression "(param_1[4] != 0)" (( "(") (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        fprintf(DAT_001c4730," (%s)",param_1[4]);\n      }" ({ "{") (expression_statement "fprintf(DAT_001c4730," (%s)",param_1[4]);" (call_expression "fprintf(DAT_001c4730," (%s)",param_1[4])" (identifier "fprintf") (argument_list "(DAT_001c4730," (%s)",param_1[4])" (( "(") (identifier "DAT_001c4730") (, ",") (string_literal "" (%s)"" (" """) (string_content " (%s)") (" """)) (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    goto code_r0x00033060;" (case "case") (number_literal "4") (: ":") (goto_statement "goto code_r0x00033060;" (goto "goto") (statement_identifier "code_r0x00033060") (; ";"))) (case_statement "case 5:" (case "case") (number_literal "5") (: ":")) (case_statement "case 6:\n    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);\n    iVar3 = param_1[5];\n    goto code_r0x00032ffb;" (case "case") (number_literal "6") (: ":") (expression_statement "fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);" (call_expression "fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4])" (identifier "fprintf") (argument_list "(DAT_001c4730,"PROVIDE (%s = ",param_1[4])" (( "(") (identifier "DAT_001c4730") (, ",") (string_literal ""PROVIDE (%s = "" (" """) (string_content "PROVIDE (%s = ") (" """)) (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" (identifier "iVar3") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (goto_statement "goto code_r0x00032ffb;" (goto "goto") (statement_identifier "code_r0x00032ffb") (; ";"))) (case_statement "case 7:\n    FUN_00034e50("0x%v",param_1[4],param_1[5]);\n    return;" (case "case") (number_literal "7") (: ":") (expression_statement "FUN_00034e50("0x%v",param_1[4],param_1[5]);" (call_expression "FUN_00034e50("0x%v",param_1[4],param_1[5])" (identifier "FUN_00034e50") (argument_list "("0x%v",param_1[4],param_1[5])" (( "(") (string_literal ""0x%v"" (" """) (string_content "0x%v") (" """)) (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 8:\n    fwrite("ASSERT (",1,8,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fprintf(DAT_001c4730,", %s)",param_1[5]);\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "fwrite("ASSERT (",1,8,DAT_001c4730);" (call_expression "fwrite("ASSERT (",1,8,DAT_001c4730)" (identifier "fwrite") (argument_list "("ASSERT (",1,8,DAT_001c4730)" (( "(") (string_literal ""ASSERT ("" (" """) (string_content "ASSERT (") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" (identifier "FUN_00032e90") (argument_list "(param_1[4])" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "fprintf(DAT_001c4730,", %s)",param_1[5]);" (call_expression "fprintf(DAT_001c4730,", %s)",param_1[5])" (identifier "fprintf") (argument_list "(DAT_001c4730,", %s)",param_1[5])" (( "(") (identifier "DAT_001c4730") (, ",") (string_literal "", %s)"" (" """) (string_content ", %s)") (" """)) (, ",") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    puVar2 = (undefined4 *)param_1[4];\n    if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }\n    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);\n    return;" (case "case") (number_literal "9") (: ":") (expression_statement "puVar2 = (undefined4 *)param_1[4];" (assignment_expression "puVar2 = (undefined4 *)param_1[4]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)param_1[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (puVar2[0x2b] != 0) {\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }" (if "if") (parenthesized_expression "(puVar2[0x2b] != 0)" (( "(") (binary_expression "puVar2[0x2b] != 0" (subscript_expression "puVar2[0x2b]" (identifier "puVar2") ([ "[") (number_literal "0x2b") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);\n      puVar2 = (undefined4 *)param_1[4];\n    }" ({ "{") (expression_statement "FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);" (call_expression "FUN_00034e50(&UNK_000812b9,puVar2[0x2b])" (identifier "FUN_00034e50") (argument_list "(&UNK_000812b9,puVar2[0x2b])" (( "(") (pointer_expression "&UNK_000812b9" (& "&") (identifier "UNK_000812b9")) (, ",") (subscript_expression "puVar2[0x2b]" (identifier "puVar2") ([ "[") (number_literal "0x2b") (] "]")) () ")"))) (; ";")) (expression_statement "puVar2 = (undefined4 *)param_1[4];" (assignment_expression "puVar2 = (undefined4 *)param_1[4]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)param_1[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")))) (; ";")) (} "}"))) (expression_statement "FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);" (call_expression "FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6])" (identifier "FUN_00034e50") (argument_list "(&UNK_000812be,*puVar2,param_1[5],param_1[6])" (( "(") (pointer_expression "&UNK_000812be" (& "&") (identifier "UNK_000812be")) (, ",") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (, ",") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (, ",") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "default:\n    FUN_00034e10("../../ld/ldexp.c",0x5e1);\n    return;" (default "default") (: ":") (expression_statement "FUN_00034e10("../../ld/ldexp.c",0x5e1);" (call_expression "FUN_00034e10("../../ld/ldexp.c",0x5e1)" (identifier "FUN_00034e10") (argument_list "("../../ld/ldexp.c",0x5e1)" (( "(") (string_literal ""../../ld/ldexp.c"" (" """) (string_content "../../ld/ldexp.c") (" """)) (, ",") (number_literal "0x5e1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (labeled_statement "code_r0x00033060:\n  fputs((char *)param_1[4],DAT_001c4730);" (statement_identifier "code_r0x00033060") (: ":") (expression_statement "fputs((char *)param_1[4],DAT_001c4730);" (call_expression "fputs((char *)param_1[4],DAT_001c4730)" (identifier "fputs") (argument_list "((char *)param_1[4],DAT_001c4730)" (( "(") (cast_expression "(char *)param_1[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (, ",") (identifier "DAT_001c4730") () ")"))) (; ";"))) (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" (identifier "FUN_00030a00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1 = (int *)param_1[5];" (assignment_expression "param_1 = (int *)param_1[5]" (identifier "param_1") (= "=") (cast_expression "(int *)param_1[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")))) (; ";")) (goto_statement "goto code_r0x00032eb2;" (goto "goto") (statement_identifier "code_r0x00032eb2") (; ";")) (labeled_statement "code_r0x00032f78:\n  switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" (statement_identifier "code_r0x00032f78") (: ":") (switch_statement "switch(*param_1) {\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" (switch "switch") (parenthesized_expression "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")) (compound_statement "{\n  case 0x117:\n  case 0x124:\n  case 0x125:\n  case 0x145:\n  case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;\n  default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;\n  case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;\n  }" ({ "{") (case_statement "case 0x117:" (case "case") (number_literal "0x117") (: ":")) (case_statement "case 0x124:" (case "case") (number_literal "0x124") (: ":")) (case_statement "case 0x125:" (case "case") (number_literal "0x125") (: ":")) (case_statement "case 0x145:" (case "case") (number_literal "0x145") (: ":")) (case_statement "case 0x146:\n    FUN_00030a00();\n    fputc(0x20,DAT_001c4730);\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    fwrite(&UNK_000812da,1,2,DAT_001c4730);\n    break;" (case "case") (number_literal "0x146") (: ":") (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" (identifier "FUN_00030a00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "fputc(0x20,DAT_001c4730);" (call_expression "fputc(0x20,DAT_001c4730)" (identifier "fputc") (argument_list "(0x20,DAT_001c4730)" (( "(") (number_literal "0x20") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (expression_statement "fputc(0x28,DAT_001c4730);" (call_expression "fputc(0x28,DAT_001c4730)" (identifier "fputc") (argument_list "(0x28,DAT_001c4730)" (( "(") (number_literal "0x28") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" (identifier "FUN_00032e90") (argument_list "(param_1[4])" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "fwrite(&UNK_000812da,1,2,DAT_001c4730);" (call_expression "fwrite(&UNK_000812da,1,2,DAT_001c4730)" (identifier "fwrite") (argument_list "(&UNK_000812da,1,2,DAT_001c4730)" (( "(") (pointer_expression "&UNK_000812da" (& "&") (identifier "UNK_000812da")) (, ",") (number_literal "1") (, ",") (number_literal "2") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    fputc(0x28,DAT_001c4730);\n    FUN_00032e90(param_1[4]);\n    FUN_00030a00();\n    break;" (default "default") (: ":") (expression_statement "fputc(0x28,DAT_001c4730);" (call_expression "fputc(0x28,DAT_001c4730)" (identifier "fputc") (argument_list "(0x28,DAT_001c4730)" (( "(") (number_literal "0x28") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (expression_statement "FUN_00032e90(param_1[4]);" (call_expression "FUN_00032e90(param_1[4])" (identifier "FUN_00032e90") (argument_list "(param_1[4])" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" (identifier "FUN_00030a00") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x131:\n    FUN_00030a00();\n    fwrite(&UNK_000812d5,1,3,DAT_001c4730);\n    FUN_00032e90(param_1[5]);\n    fwrite(&UNK_000812d9,1,3,DAT_001c4730);\ncode_r0x00032ff8:\n    iVar3 = param_1[4];\n    goto code_r0x00032ffb;" (case "case") (number_literal "0x131") (: ":") (expression_statement "FUN_00030a00();" (call_expression "FUN_00030a00()" (identifier "FUN_00030a00") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "fwrite(&UNK_000812d5,1,3,DAT_001c4730);" (call_expression "fwrite(&UNK_000812d5,1,3,DAT_001c4730)" (identifier "fwrite") (argument_list "(&UNK_000812d5,1,3,DAT_001c4730)" (( "(") (pointer_expression "&UNK_000812d5" (& "&") (identifier "UNK_000812d5")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (expression_statement "FUN_00032e90(param_1[5]);" (call_expression "FUN_00032e90(param_1[5])" (identifier "FUN_00032e90") (argument_list "(param_1[5])" (( "(") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) () ")"))) (; ";")) (expression_statement "fwrite(&UNK_000812d9,1,3,DAT_001c4730);" (call_expression "fwrite(&UNK_000812d9,1,3,DAT_001c4730)" (identifier "fwrite") (argument_list "(&UNK_000812d9,1,3,DAT_001c4730)" (( "(") (pointer_expression "&UNK_000812d9" (& "&") (identifier "UNK_000812d9")) (, ",") (number_literal "1") (, ",") (number_literal "3") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (labeled_statement "code_r0x00032ff8:\n    iVar3 = param_1[4];" (statement_identifier "code_r0x00032ff8") (: ":") (expression_statement "iVar3 = param_1[4];" (assignment_expression "iVar3 = param_1[4]" (identifier "iVar3") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";"))) (goto_statement "goto code_r0x00032ffb;" (goto "goto") (statement_identifier "code_r0x00032ffb") (; ";"))) (} "}")))) (expression_statement "iVar3 = param_1[5];" (assignment_expression "iVar3 = param_1[5]" (identifier "iVar3") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (labeled_statement "code_r0x00032ffb:\n  FUN_00032e90(iVar3);" (statement_identifier "code_r0x00032ffb") (: ":") (expression_statement "FUN_00032e90(iVar3);" (call_expression "FUN_00032e90(iVar3)" (identifier "FUN_00032e90") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";"))) (expression_statement "fputc(0x29,DAT_001c4730);" (call_expression "fputc(0x29,DAT_001c4730)" (identifier "fputc") (argument_list "(0x29,DAT_001c4730)" (( "(") (number_literal "0x29") (, ",") (identifier "DAT_001c4730") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *var_1)

{
  type_2 *puVar1;
  type_3 *paVar2;
  type_4 *tree_00;
  
  puVar1 = PTR_stderr_001c1fa8;
LAB_00032eb2:
  if (config.map_file == (type_5 *)0x0) {
    config.map_file = *(type_5 **)puVar1;
  }
  if (var_1 == (type_1 *)0x0) {
    var_2("NULL TREE\n");
    return;
  }
  switch((var_1->type).node_class) {
  case etree_binary:
    goto _L488;
  case etree_trinary:
    function_1((var_1->binary).lhs);
    var_3(0x3f,(type_5 *)config.map_file);
    function_1((var_1->binary).rhs);
    var_3(0x3a,(type_5 *)config.map_file);
    var_1 = (var_1->trinary).rhs;
    goto LAB_00032eb2;
  case etree_unary:
    var_4((var_1->type).node_code,0);
    if ((var_1->binary).lhs != (type_4 *)0x0) {
      var_5(" (",1,2,(type_5 *)config.map_file);
      goto LAB_00032ff8;
    }
    break;
  case etree_name:
    if ((var_1->type).node_code == 0x103) {
      var_6((var_1->assign).dst,(type_5 *)config.map_file);
    }
    else {
      var_4((var_1->type).node_code,0);
      if ((var_1->binary).lhs != (type_4 *)0x0) {
        var_7((type_5 *)config.map_file," (%s)",(var_1->binary).lhs);
      }
    }
    break;
  case etree_assign:
    goto _L484;
  case etree_provide:
  case etree_provided:
    var_7((type_5 *)config.map_file,"PROVIDE (%s = ",(var_1->binary).lhs);
    tree_00 = (var_1->binary).rhs;
    goto LAB_00032ffb;
  case etree_value:
    var_2("0x%v",(var_1->binary).lhs,(var_1->binary).rhs);
    return;
  case etree_assert:
    var_5("ASSERT (",1,8,(type_5 *)config.map_file);
    function_1((var_1->binary).lhs);
    var_7((type_5 *)config.map_file,", %s)",(var_1->binary).rhs);
    break;
  case etree_rel:
    paVar2 = (var_1->rel).section;
    if (paVar2->owner != (type_6 *)0x0) {
      var_2("%pB:",paVar2->owner);
      paVar2 = (var_1->rel).section;
    }
    var_2("%s+0x%v",paVar2->name,(var_1->binary).rhs,(var_1->trinary).rhs);
    return;
  default:
    var_8("../../ld/ldexp.c",0x5e1);
    return;
  }
  return;
_L484:
  var_6((var_1->assign).dst,(type_5 *)config.map_file);
  var_4((var_1->type).node_code,1);
  var_1 = (var_1->binary).rhs;
  goto LAB_00032eb2;
_L488:
  switch((var_1->type).node_code) {
  case 0x117:
  case 0x124:
  case 0x125:
  case 0x145:
  case 0x146:
    var_4((var_1->type).node_code,0);
    var_3(0x20,(type_5 *)config.map_file);
    var_3(0x28,(type_5 *)config.map_file);
    function_1((var_1->binary).lhs);
    var_5(&DAT_000812da,1,2,(type_5 *)config.map_file);
    break;
  default:
    var_3(0x28,(type_5 *)config.map_file);
    function_1((var_1->binary).lhs);
    var_4((var_1->type).node_code,1);
    break;
  case 0x131:
    var_4(0x131,0);
    var_5(&DAT_000812d5,1,3,(type_5 *)config.map_file);
    function_1((var_1->binary).rhs);
    var_5(&DAT_000812d9,1,3,(type_5 *)config.map_file);
LAB_00032ff8:
    tree_00 = (var_1->binary).lhs;
    goto LAB_00032ffb;
  }
  tree_00 = (var_1->binary).rhs;
LAB_00032ffb:
  function_1(tree_00);
  var_3(0x29,(type_5 *)config.map_file);
  return;
}


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

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

void MASKED(int *param_1)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  
  puVar1 = PTR_stderr_001c1fa8;
code_r0x00032eb2:
  if (DAT_001c4730 == (FILE *)0x0) {
    DAT_001c4730 = *(FILE **)puVar1;
  }
  if (param_1 == (int *)0x0) {
    FUN_00034e50("NULL TREE\n");
    return;
  }
  switch(param_1[3]) {
  case 0:
    goto code_r0x00032f78;
  case 1:
    MASKED(param_1[4]);
    fputc(0x3f,DAT_001c4730);
    MASKED(param_1[5]);
    fputc(0x3a,DAT_001c4730);
    param_1 = (int *)param_1[6];
    goto code_r0x00032eb2;
  case 2:
    FUN_00030a00();
    if (param_1[4] != 0) {
      fwrite(" (",1,2,DAT_001c4730);
      goto code_r0x00032ff8;
    }
    break;
  case 3:
    if (*param_1 == 0x103) {
      fputs((char *)param_1[4],DAT_001c4730);
    }
    else {
      FUN_00030a00();
      if (param_1[4] != 0) {
        fprintf(DAT_001c4730," (%s)",param_1[4]);
      }
    }
    break;
  case 4:
    goto code_r0x00033060;
  case 5:
  case 6:
    fprintf(DAT_001c4730,"PROVIDE (%s = ",param_1[4]);
    iVar3 = param_1[5];
    goto code_r0x00032ffb;
  case 7:
    FUN_00034e50("0x%v",param_1[4],param_1[5]);
    return;
  case 8:
    fwrite("ASSERT (",1,8,DAT_001c4730);
    MASKED(param_1[4]);
    fprintf(DAT_001c4730,", %s)",param_1[5]);
    break;
  case 9:
    puVar2 = (undefined4 *)param_1[4];
    if (puVar2[0x2b] != 0) {
      FUN_00034e50(&UNK_000812b9,puVar2[0x2b]);
      puVar2 = (undefined4 *)param_1[4];
    }
    FUN_00034e50(&UNK_000812be,*puVar2,param_1[5],param_1[6]);
    return;
  default:
    FUN_00034e10("../../ld/ldexp.c",0x5e1);
    return;
  }
  return;
code_r0x00033060:
  fputs((char *)param_1[4],DAT_001c4730);
  FUN_00030a00();
  param_1 = (int *)param_1[5];
  goto code_r0x00032eb2;
code_r0x00032f78:
  switch(*param_1) {
  case 0x117:
  case 0x124:
  case 0x125:
  case 0x145:
  case 0x146:
    FUN_00030a00();
    fputc(0x20,DAT_001c4730);
    fputc(0x28,DAT_001c4730);
    MASKED(param_1[4]);
    fwrite(&UNK_000812da,1,2,DAT_001c4730);
    break;
  default:
    fputc(0x28,DAT_001c4730);
    MASKED(param_1[4]);
    FUN_00030a00();
    break;
  case 0x131:
    FUN_00030a00();
    fwrite(&UNK_000812d5,1,3,DAT_001c4730);
    MASKED(param_1[5]);
    fwrite(&UNK_000812d9,1,3,DAT_001c4730);
code_r0x00032ff8:
    iVar3 = param_1[4];
    goto code_r0x00032ffb;
  }
  iVar3 = param_1[5];
code_r0x00032ffb:
  MASKED(iVar3);
  fputc(0x29,DAT_001c4730);
  return;
}

