
Valtype gold::read_from_pointer<16>(uchar **source)

{
  undefined1 uVar1;
  byte bVar2;
  Valtype VVar3;
  uint uVar4;
  undefined4 uVar5;
  Valtype VVar6;
  Valtype *pVVar7;
  uint *puVar8;
  undefined4 *puVar9;
  _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>
  *this;
  undefined4 *puVar10;
  int iVar11;
  undefined4 in_a3;
  int iVar12;
  undefined *puVar13;
  code *pcVar14;
  code *pcVar15;
  
  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) != 0) {
    pVVar7 = (Valtype *)*source;
    uVar1 = *(undefined1 *)pVVar7;
    VVar3 = *pVVar7;
    VVar6 = *pVVar7;
    if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0') {
      *source = (uchar *)(pVVar7 + 1);
      return VVar6;
    }
    *source = (uchar *)(pVVar7 + 1);
    return CONCAT11((char)VVar3,uVar1);
  }
  puVar9 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);
  puVar13 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (puVar9,0x69,PTR_s_in_a_linker_script_004c191c + -0x1058);
  if (*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) != 0) {
    puVar8 = (uint *)*puVar9;
    uVar4 = *puVar8;
    if (*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0') {
      *puVar9 = puVar8 + 1;
      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);
    }
    *puVar9 = puVar8 + 1;
    return (Valtype)uVar4;
  }
  pcVar14 = *(code **)(puVar13 + 0x246240);
  puVar9 = (undefined4 *)(*(int *)(puVar13 + 0x245a8c) + -0x9b8);
  (*pcVar14)(puVar9,0x69,*(int *)(puVar13 + 0x24612c) + -0x1058,in_a3,puVar13 + 0x24da50);
  if (*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) != 0) {
    puVar10 = (undefined4 *)*puVar9;
    uVar4 = puVar10[1];
    uVar5 = *puVar10;
    if (*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0') {
      *puVar9 = puVar10 + 2;
      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);
    }
    *puVar9 = puVar10 + 2;
    return (Valtype)uVar5;
  }
  pcVar15 = *(code **)(pcVar14 + 0x2461b4);
  puVar9 = (undefined4 *)(*(int *)(pcVar14 + 0x245a00) + -0x9b8);
  (*pcVar15)(puVar9,0x69,*(int *)(pcVar14 + 0x2460a0) + -0x1058,in_a3,pcVar14 + 0x24d9c4);
  if (*(int *)(**(int **)(pcVar15 + 0x246098) + 0xc) == 0) {
    iVar11 = 0x69;
    pcVar14 = *(code **)(pcVar15 + 0x246114);
    this = (_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>
            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8);
    VVar6 = (*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924);
    if (iVar11 == 0) {
      return VVar6;
    }
    do {
      std::
      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>
      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));
      iVar12 = *(int *)(iVar11 + 8);
      VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);
      iVar11 = iVar12;
    } while (iVar12 != 0);
    return VVar6;
  }
  bVar2 = *(byte *)*puVar9;
  *puVar9 = (byte *)*puVar9 + 1;
  return (Valtype)bVar2;
}



/* elfcpp::Valtype_base<16>::Valtype gold::read_from_pointer<16>(unsigned char**) */

uint gold::read_from_pointer<16>(uchar **param_1)

{
  undefined1 uVar1;
  ushort uVar2;
  ushort uVar3;
  uint uVar4;
  ushort *puVar5;
  
  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {
    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,
                       PTR_s_in_a_linker_script_004c191c + -0x1058);
    return uVar4;
  }
  puVar5 = (ushort *)*param_1;
  uVar1 = *(undefined1 *)puVar5;
  uVar3 = *puVar5;
  uVar2 = *puVar5;
  if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {
    *param_1 = (uchar *)(puVar5 + 1);
    return (uint)CONCAT11((char)uVar3,uVar1);
  }
  *param_1 = (uchar *)(puVar5 + 1);
  return (uint)uVar2;
}


lui gp,0x25
addiu gp,gp,-0x251c
addu gp,gp,t9
lw v0,-0x788c(gp)
addiu sp,sp,-0x20
sw gp,0x10(sp)
lw v0,0x0(v0)
sw ra,0x1c(sp)
lw v0,0xc(v0)
beq v0,zero,0x0027b7d8
_lw a2,-0x7924(gp)
lw v0,0x4(v0)
lw v1,0x0(a0)
lbu a2,0x4(v0)
lbu a1,0x0(v1)
bne a2,zero,0x0027b7bc
_lbu v0,0x1(v1)
lw ra,0x1c(sp)
addiu v1,v1,0x2
sll v0,v0,0x8
sw v1,0x0(a0)
addiu sp,sp,0x20
jr ra
_or v0,v0,a1
lw ra,0x1c(sp)
sll a1,a1,0x8
addiu v1,v1,0x2
or v0,a1,v0
sw v1,0x0(a0)
jr ra
_addiu sp,sp,0x20
li a1,0x69
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x1058
jalr t9
_addiu a0,a0,-0x9b8
(translation_unit "/* elfcpp::Valtype_base<16>::Valtype gold::read_from_pointer<16>(unsigned char**) */\n\nuint gold::read_from_pointer<16>(uchar **param_1)\n\n{\n  undefined1 uVar1;\n  ushort uVar2;\n  ushort uVar3;\n  uint uVar4;\n  ushort *puVar5;\n  \n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }\n  puVar5 = (ushort *)*param_1;\n  uVar1 = *(undefined1 *)puVar5;\n  uVar3 = *puVar5;\n  uVar2 = *puVar5;\n  if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }\n  *param_1 = (uchar *)(puVar5 + 1);\n  return (uint)uVar2;\n}\n\n" comment (ERROR "uint gold::read_from_pointer<16>(uchar **param_1)" type_identifier (ERROR "gold::" identifier : :) identifier < (binary_expression "16>(uchar **param_1)" number_literal > (parenthesized_expression "(uchar **param_1)" ( (binary_expression "uchar **param_1" identifier * (pointer_expression "*param_1" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  ushort uVar2;\n  ushort uVar3;\n  uint uVar4;\n  ushort *puVar5;\n  \n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }\n  puVar5 = (ushort *)*param_1;\n  uVar1 = *(undefined1 *)puVar5;\n  uVar3 = *puVar5;\n  uVar2 = *puVar5;\n  if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }\n  *param_1 = (uchar *)(puVar5 + 1);\n  return (uint)uVar2;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ushort *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x1058" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "puVar5 = (ushort *)*param_1;" (assignment_expression "puVar5 = (ushort *)*param_1" identifier = (cast_expression "(ushort *)*param_1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar1 = *(undefined1 *)puVar5;" (assignment_expression "uVar1 = *(undefined1 *)puVar5" identifier = (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar3 = *puVar5;" (assignment_expression "uVar3 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (if_statement "if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }" { (expression_statement "*param_1 = (uchar *)(puVar5 + 1);" (assignment_expression "*param_1 = (uchar *)(puVar5 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(uchar *)(puVar5 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) ;) (return_statement "return (uint)CONCAT11((char)uVar3,uVar1);" return (cast_expression "(uint)CONCAT11((char)uVar3,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11((char)uVar3,uVar1)" identifier (argument_list "((char)uVar3,uVar1)" ( (cast_expression "(char)uVar3" ( (type_descriptor "char" primitive_type) ) identifier) , identifier )))) ;) })) (expression_statement "*param_1 = (uchar *)(puVar5 + 1);" (assignment_expression "*param_1 = (uchar *)(puVar5 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(uchar *)(puVar5 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) ;) (return_statement "return (uint)uVar2;" return (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ;) }))
(translation_unit "Valtype gold::read_from_pointer<16>(uchar **source)\n\n{\n  undefined1 uVar1;\n  byte bVar2;\n  Valtype VVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  Valtype VVar6;\n  Valtype *pVVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n  *this;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 in_a3;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  \n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) != 0) {\n    pVVar7 = (Valtype *)*source;\n    uVar1 = *(undefined1 *)pVVar7;\n    VVar3 = *pVVar7;\n    VVar6 = *pVVar7;\n    if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0') {\n      *source = (uchar *)(pVVar7 + 1);\n      return VVar6;\n    }\n    *source = (uchar *)(pVVar7 + 1);\n    return CONCAT11((char)VVar3,uVar1);\n  }\n  puVar9 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x69,PTR_s_in_a_linker_script_004c191c + -0x1058);\n  if (*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) != 0) {\n    puVar8 = (uint *)*puVar9;\n    uVar4 = *puVar8;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar8 + 1;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar8 + 1;\n    return (Valtype)uVar4;\n  }\n  pcVar14 = *(code **)(puVar13 + 0x246240);\n  puVar9 = (undefined4 *)(*(int *)(puVar13 + 0x245a8c) + -0x9b8);\n  (*pcVar14)(puVar9,0x69,*(int *)(puVar13 + 0x24612c) + -0x1058,in_a3,puVar13 + 0x24da50);\n  if (*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) != 0) {\n    puVar10 = (undefined4 *)*puVar9;\n    uVar4 = puVar10[1];\n    uVar5 = *puVar10;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar10 + 2;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar10 + 2;\n    return (Valtype)uVar5;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x2461b4);\n  puVar9 = (undefined4 *)(*(int *)(pcVar14 + 0x245a00) + -0x9b8);\n  (*pcVar15)(puVar9,0x69,*(int *)(pcVar14 + 0x2460a0) + -0x1058,in_a3,pcVar14 + 0x24d9c4);\n  if (*(int *)(**(int **)(pcVar15 + 0x246098) + 0xc) == 0) {\n    iVar11 = 0x69;\n    pcVar14 = *(code **)(pcVar15 + 0x246114);\n    this = (_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8);\n    VVar6 = (*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924);\n    if (iVar11 == 0) {\n      return VVar6;\n    }\n    do {\n      std::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));\n      iVar12 = *(int *)(iVar11 + 8);\n      VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);\n      iVar11 = iVar12;\n    } while (iVar12 != 0);\n    return VVar6;\n  }\n  bVar2 = *(byte *)*puVar9;\n  *puVar9 = (byte *)*puVar9 + 1;\n  return (Valtype)bVar2;\n}\n\n" (ERROR "Valtype gold::read_from_pointer<16>(uchar **source)" type_identifier (ERROR "gold::" identifier : :) identifier < (binary_expression "16>(uchar **source)" number_literal > (parenthesized_expression "(uchar **source)" ( (binary_expression "uchar **source" identifier * (pointer_expression "*source" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  byte bVar2;\n  Valtype VVar3;\n  uint uVar4;\n  undefined4 uVar5;\n  Valtype VVar6;\n  Valtype *pVVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n  *this;\n  undefined4 *puVar10;\n  int iVar11;\n  undefined4 in_a3;\n  int iVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  code *pcVar15;\n  \n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) != 0) {\n    pVVar7 = (Valtype *)*source;\n    uVar1 = *(undefined1 *)pVVar7;\n    VVar3 = *pVVar7;\n    VVar6 = *pVVar7;\n    if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0') {\n      *source = (uchar *)(pVVar7 + 1);\n      return VVar6;\n    }\n    *source = (uchar *)(pVVar7 + 1);\n    return CONCAT11((char)VVar3,uVar1);\n  }\n  puVar9 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);\n  puVar13 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x69,PTR_s_in_a_linker_script_004c191c + -0x1058);\n  if (*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) != 0) {\n    puVar8 = (uint *)*puVar9;\n    uVar4 = *puVar8;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar8 + 1;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar8 + 1;\n    return (Valtype)uVar4;\n  }\n  pcVar14 = *(code **)(puVar13 + 0x246240);\n  puVar9 = (undefined4 *)(*(int *)(puVar13 + 0x245a8c) + -0x9b8);\n  (*pcVar14)(puVar9,0x69,*(int *)(puVar13 + 0x24612c) + -0x1058,in_a3,puVar13 + 0x24da50);\n  if (*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) != 0) {\n    puVar10 = (undefined4 *)*puVar9;\n    uVar4 = puVar10[1];\n    uVar5 = *puVar10;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar10 + 2;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar10 + 2;\n    return (Valtype)uVar5;\n  }\n  pcVar15 = *(code **)(pcVar14 + 0x2461b4);\n  puVar9 = (undefined4 *)(*(int *)(pcVar14 + 0x245a00) + -0x9b8);\n  (*pcVar15)(puVar9,0x69,*(int *)(pcVar14 + 0x2460a0) + -0x1058,in_a3,pcVar14 + 0x24d9c4);\n  if (*(int *)(**(int **)(pcVar15 + 0x246098) + 0xc) == 0) {\n    iVar11 = 0x69;\n    pcVar14 = *(code **)(pcVar15 + 0x246114);\n    this = (_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8);\n    VVar6 = (*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924);\n    if (iVar11 == 0) {\n      return VVar6;\n    }\n    do {\n      std::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));\n      iVar12 = *(int *)(iVar11 + 8);\n      VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);\n      iVar11 = iVar12;\n    } while (iVar12 != 0);\n    return VVar6;\n  }\n  bVar2 = *(byte *)*puVar9;\n  *puVar9 = (byte *)*puVar9 + 1;\n  return (Valtype)bVar2;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "Valtype VVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "Valtype VVar6;" type_identifier identifier ;) (declaration "Valtype *pVVar7;" type_identifier (pointer_declarator "*pVVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (ERROR "_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::" (comma_expression "_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<long_long_unsigned_int" (binary_expression "_Rb_tree<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>,_std" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>_>,_std" (binary_expression "_long_long_unsigned_int>_>_" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>,_std" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : :) (expression_statement "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n  *this;" (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n  *this" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>_>_>\n  *this" (binary_expression "_long_long_unsigned_int>_>_>_" (binary_expression "_long_long_unsigned_int>_>_" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (pointer_expression "*this" * identifier))) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) != 0) {\n    pVVar7 = (Valtype *)*source;\n    uVar1 = *(undefined1 *)pVVar7;\n    VVar3 = *pVVar7;\n    VVar6 = *pVVar7;\n    if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0') {\n      *source = (uchar *)(pVVar7 + 1);\n      return VVar6;\n    }\n    *source = (uchar *)(pVVar7 + 1);\n    return CONCAT11((char)VVar3,uVar1);\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) != 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) != 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != number_literal) )) (compound_statement "{\n    pVVar7 = (Valtype *)*source;\n    uVar1 = *(undefined1 *)pVVar7;\n    VVar3 = *pVVar7;\n    VVar6 = *pVVar7;\n    if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0') {\n      *source = (uchar *)(pVVar7 + 1);\n      return VVar6;\n    }\n    *source = (uchar *)(pVVar7 + 1);\n    return CONCAT11((char)VVar3,uVar1);\n  }" { (expression_statement "pVVar7 = (Valtype *)*source;" (assignment_expression "pVVar7 = (Valtype *)*source" identifier = (cast_expression "(Valtype *)*source" ( (type_descriptor "Valtype *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*source" * identifier))) ;) (expression_statement "uVar1 = *(undefined1 *)pVVar7;" (assignment_expression "uVar1 = *(undefined1 *)pVVar7" identifier = (pointer_expression "*(undefined1 *)pVVar7" * (cast_expression "(undefined1 *)pVVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "VVar3 = *pVVar7;" (assignment_expression "VVar3 = *pVVar7" identifier = (pointer_expression "*pVVar7" * identifier)) ;) (expression_statement "VVar6 = *pVVar7;" (assignment_expression "VVar6 = *pVVar7" identifier = (pointer_expression "*pVVar7" * identifier)) ;) (if_statement "if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0') {\n      *source = (uchar *)(pVVar7 + 1);\n      return VVar6;\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) != '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *source = (uchar *)(pVVar7 + 1);\n      return VVar6;\n    }" { (expression_statement "*source = (uchar *)(pVVar7 + 1);" (assignment_expression "*source = (uchar *)(pVVar7 + 1)" (pointer_expression "*source" * identifier) = (cast_expression "(uchar *)(pVVar7 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVVar7 + 1)" ( (binary_expression "pVVar7 + 1" identifier + number_literal) )))) ;) (return_statement "return VVar6;" return identifier ;) })) (expression_statement "*source = (uchar *)(pVVar7 + 1);" (assignment_expression "*source = (uchar *)(pVVar7 + 1)" (pointer_expression "*source" * identifier) = (cast_expression "(uchar *)(pVVar7 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVVar7 + 1)" ( (binary_expression "pVVar7 + 1" identifier + number_literal) )))) ;) (return_statement "return CONCAT11((char)VVar3,uVar1);" return (call_expression "CONCAT11((char)VVar3,uVar1)" identifier (argument_list "((char)VVar3,uVar1)" ( (cast_expression "(char)VVar3" ( (type_descriptor "char" primitive_type) ) identifier) , identifier ))) ;) })) (expression_statement "puVar9 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8);" (assignment_expression "puVar9 = (undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" identifier = (cast_expression "(undefined4 *)(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) )))) ;) (expression_statement "puVar13 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar13 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x69,PTR_s_in_a_linker_script_004c191c + -0x1058);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (puVar9,0x69,PTR_s_in_a_linker_script_004c191c + -0x1058)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,0x69,PTR_s_in_a_linker_script_004c191c + -0x1058)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x1058" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) != 0) {\n    puVar8 = (uint *)*puVar9;\n    uVar4 = *puVar8;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar8 + 1;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar8 + 1;\n    return (Valtype)uVar4;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) != 0)" ( (binary_expression "*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) != 0" (pointer_expression "*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc)" * (cast_expression "(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar13 + 0x2461c4) + 0xc)" ( (binary_expression "**(int **)(puVar13 + 0x2461c4) + 0xc" (pointer_expression "**(int **)(puVar13 + 0x2461c4)" * (pointer_expression "*(int **)(puVar13 + 0x2461c4)" * (cast_expression "(int **)(puVar13 + 0x2461c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x2461c4)" ( (binary_expression "puVar13 + 0x2461c4" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar8 = (uint *)*puVar9;\n    uVar4 = *puVar8;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar8 + 1;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar8 + 1;\n    return (Valtype)uVar4;\n  }" { (expression_statement "puVar8 = (uint *)*puVar9;" (assignment_expression "puVar8 = (uint *)*puVar9" identifier = (cast_expression "(uint *)*puVar9" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "uVar4 = *puVar8;" (assignment_expression "uVar4 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (if_statement "if (*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar8 + 1;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc)" * (cast_expression "(int *)(**(int **)(puVar13 + 0x2461c4) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar13 + 0x2461c4) + 0xc)" ( (binary_expression "**(int **)(puVar13 + 0x2461c4) + 0xc" (pointer_expression "**(int **)(puVar13 + 0x2461c4)" * (pointer_expression "*(int **)(puVar13 + 0x2461c4)" * (cast_expression "(int **)(puVar13 + 0x2461c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x2461c4)" ( (binary_expression "puVar13 + 0x2461c4" identifier + number_literal) ))))) + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *puVar9 = puVar8 + 1;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }" { (expression_statement "*puVar9 = puVar8 + 1;" (assignment_expression "*puVar9 = puVar8 + 1" (pointer_expression "*puVar9" * identifier) = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (return_statement "return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);" return (binary_expression "(ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18)" (call_expression "(ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(((uVar4 >> 0x10) << 0x18) >> 0x10)" ( (binary_expression "((uVar4 >> 0x10) << 0x18) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18)" ( (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" ( (binary_expression "uVar4 >> 0x10" identifier >> number_literal) )) << number_literal) )) >> number_literal) ))) | (call_expression "(ushort)(byte)(uVar4 >> 0x18)" (call_expression "(ushort)(byte)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) )))) ;) })) (expression_statement "*puVar9 = puVar8 + 1;" (assignment_expression "*puVar9 = puVar8 + 1" (pointer_expression "*puVar9" * identifier) = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (return_statement "return (Valtype)uVar4;" return (cast_expression "(Valtype)uVar4" ( (type_descriptor "Valtype" type_identifier) ) identifier) ;) })) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x246240);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x246240)" identifier = (pointer_expression "*(code **)(puVar13 + 0x246240)" * (cast_expression "(code **)(puVar13 + 0x246240)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x246240)" ( (binary_expression "puVar13 + 0x246240" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = (undefined4 *)(*(int *)(puVar13 + 0x245a8c) + -0x9b8);" (assignment_expression "puVar9 = (undefined4 *)(*(int *)(puVar13 + 0x245a8c) + -0x9b8)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar13 + 0x245a8c) + -0x9b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0x245a8c) + -0x9b8)" ( (binary_expression "*(int *)(puVar13 + 0x245a8c) + -0x9b8" (pointer_expression "*(int *)(puVar13 + 0x245a8c)" * (cast_expression "(int *)(puVar13 + 0x245a8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x245a8c)" ( (binary_expression "puVar13 + 0x245a8c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar14)(puVar9,0x69,*(int *)(puVar13 + 0x24612c) + -0x1058,in_a3,puVar13 + 0x24da50);" (call_expression "(*pcVar14)(puVar9,0x69,*(int *)(puVar13 + 0x24612c) + -0x1058,in_a3,puVar13 + 0x24da50)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(puVar9,0x69,*(int *)(puVar13 + 0x24612c) + -0x1058,in_a3,puVar13 + 0x24da50)" ( identifier , number_literal , (binary_expression "*(int *)(puVar13 + 0x24612c) + -0x1058" (pointer_expression "*(int *)(puVar13 + 0x24612c)" * (cast_expression "(int *)(puVar13 + 0x24612c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x24612c)" ( (binary_expression "puVar13 + 0x24612c" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "puVar13 + 0x24da50" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) != 0) {\n    puVar10 = (undefined4 *)*puVar9;\n    uVar4 = puVar10[1];\n    uVar5 = *puVar10;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar10 + 2;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar10 + 2;\n    return (Valtype)uVar5;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) != 0)" ( (binary_expression "*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) != 0" (pointer_expression "*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar14 + 0x246138) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar14 + 0x246138) + 0xc)" ( (binary_expression "**(int **)(pcVar14 + 0x246138) + 0xc" (pointer_expression "**(int **)(pcVar14 + 0x246138)" * (pointer_expression "*(int **)(pcVar14 + 0x246138)" * (cast_expression "(int **)(pcVar14 + 0x246138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x246138)" ( (binary_expression "pcVar14 + 0x246138" identifier + number_literal) ))))) + number_literal) )))) != number_literal) )) (compound_statement "{\n    puVar10 = (undefined4 *)*puVar9;\n    uVar4 = puVar10[1];\n    uVar5 = *puVar10;\n    if (*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar10 + 2;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }\n    *puVar9 = puVar10 + 2;\n    return (Valtype)uVar5;\n  }" { (expression_statement "puVar10 = (undefined4 *)*puVar9;" (assignment_expression "puVar10 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "uVar4 = puVar10[1];" (assignment_expression "uVar4 = puVar10[1]" identifier = (subscript_expression "puVar10[1]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = *puVar10;" (assignment_expression "uVar5 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (if_statement "if (*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0') {\n      *puVar9 = puVar10 + 2;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(pcVar14 + 0x246138) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar14 + 0x246138) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar14 + 0x246138) + 0xc)" ( (binary_expression "**(int **)(pcVar14 + 0x246138) + 0xc" (pointer_expression "**(int **)(pcVar14 + 0x246138)" * (pointer_expression "*(int **)(pcVar14 + 0x246138)" * (cast_expression "(int **)(pcVar14 + 0x246138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x246138)" ( (binary_expression "pcVar14 + 0x246138" identifier + number_literal) ))))) + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *puVar9 = puVar10 + 2;\n      return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);\n    }" { (expression_statement "*puVar9 = puVar10 + 2;" (assignment_expression "*puVar9 = puVar10 + 2" (pointer_expression "*puVar9" * identifier) = (binary_expression "puVar10 + 2" identifier + number_literal)) ;) (return_statement "return (ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18);" return (binary_expression "(ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10) | (ushort)(byte)(uVar4 >> 0x18)" (call_expression "(ushort)(((uVar4 >> 0x10) << 0x18) >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(((uVar4 >> 0x10) << 0x18) >> 0x10)" ( (binary_expression "((uVar4 >> 0x10) << 0x18) >> 0x10" (parenthesized_expression "((uVar4 >> 0x10) << 0x18)" ( (binary_expression "(uVar4 >> 0x10) << 0x18" (parenthesized_expression "(uVar4 >> 0x10)" ( (binary_expression "uVar4 >> 0x10" identifier >> number_literal) )) << number_literal) )) >> number_literal) ))) | (call_expression "(ushort)(byte)(uVar4 >> 0x18)" (call_expression "(ushort)(byte)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "(uVar4 >> 0x18)" ( (binary_expression "uVar4 >> 0x18" identifier >> number_literal) )))) ;) })) (expression_statement "*puVar9 = puVar10 + 2;" (assignment_expression "*puVar9 = puVar10 + 2" (pointer_expression "*puVar9" * identifier) = (binary_expression "puVar10 + 2" identifier + number_literal)) ;) (return_statement "return (Valtype)uVar5;" return (cast_expression "(Valtype)uVar5" ( (type_descriptor "Valtype" type_identifier) ) identifier) ;) })) (expression_statement "pcVar15 = *(code **)(pcVar14 + 0x2461b4);" (assignment_expression "pcVar15 = *(code **)(pcVar14 + 0x2461b4)" identifier = (pointer_expression "*(code **)(pcVar14 + 0x2461b4)" * (cast_expression "(code **)(pcVar14 + 0x2461b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x2461b4)" ( (binary_expression "pcVar14 + 0x2461b4" identifier + number_literal) ))))) ;) (expression_statement "puVar9 = (undefined4 *)(*(int *)(pcVar14 + 0x245a00) + -0x9b8);" (assignment_expression "puVar9 = (undefined4 *)(*(int *)(pcVar14 + 0x245a00) + -0x9b8)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar14 + 0x245a00) + -0x9b8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar14 + 0x245a00) + -0x9b8)" ( (binary_expression "*(int *)(pcVar14 + 0x245a00) + -0x9b8" (pointer_expression "*(int *)(pcVar14 + 0x245a00)" * (cast_expression "(int *)(pcVar14 + 0x245a00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x245a00)" ( (binary_expression "pcVar14 + 0x245a00" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar15)(puVar9,0x69,*(int *)(pcVar14 + 0x2460a0) + -0x1058,in_a3,pcVar14 + 0x24d9c4);" (call_expression "(*pcVar15)(puVar9,0x69,*(int *)(pcVar14 + 0x2460a0) + -0x1058,in_a3,pcVar14 + 0x24d9c4)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(puVar9,0x69,*(int *)(pcVar14 + 0x2460a0) + -0x1058,in_a3,pcVar14 + 0x24d9c4)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar14 + 0x2460a0) + -0x1058" (pointer_expression "*(int *)(pcVar14 + 0x2460a0)" * (cast_expression "(int *)(pcVar14 + 0x2460a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + 0x2460a0)" ( (binary_expression "pcVar14 + 0x2460a0" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar14 + 0x24d9c4" identifier + number_literal) ))) ;) (if_statement "if (*(int *)(**(int **)(pcVar15 + 0x246098) + 0xc) == 0) {\n    iVar11 = 0x69;\n    pcVar14 = *(code **)(pcVar15 + 0x246114);\n    this = (_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8);\n    VVar6 = (*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924);\n    if (iVar11 == 0) {\n      return VVar6;\n    }\n    do {\n      std::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));\n      iVar12 = *(int *)(iVar11 + 8);\n      VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);\n      iVar11 = iVar12;\n    } while (iVar12 != 0);\n    return VVar6;\n  }" if (parenthesized_expression "(*(int *)(**(int **)(pcVar15 + 0x246098) + 0xc) == 0)" ( (binary_expression "*(int *)(**(int **)(pcVar15 + 0x246098) + 0xc) == 0" (pointer_expression "*(int *)(**(int **)(pcVar15 + 0x246098) + 0xc)" * (cast_expression "(int *)(**(int **)(pcVar15 + 0x246098) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(pcVar15 + 0x246098) + 0xc)" ( (binary_expression "**(int **)(pcVar15 + 0x246098) + 0xc" (pointer_expression "**(int **)(pcVar15 + 0x246098)" * (pointer_expression "*(int **)(pcVar15 + 0x246098)" * (cast_expression "(int **)(pcVar15 + 0x246098)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x246098)" ( (binary_expression "pcVar15 + 0x246098" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar11 = 0x69;\n    pcVar14 = *(code **)(pcVar15 + 0x246114);\n    this = (_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8);\n    VVar6 = (*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924);\n    if (iVar11 == 0) {\n      return VVar6;\n    }\n    do {\n      std::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));\n      iVar12 = *(int *)(iVar11 + 8);\n      VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);\n      iVar11 = iVar12;\n    } while (iVar12 != 0);\n    return VVar6;\n  }" { (expression_statement "iVar11 = 0x69;" (assignment_expression "iVar11 = 0x69" identifier = number_literal) ;) (expression_statement "pcVar14 = *(code **)(pcVar15 + 0x246114);" (assignment_expression "pcVar14 = *(code **)(pcVar15 + 0x246114)" identifier = (pointer_expression "*(code **)(pcVar15 + 0x246114)" * (cast_expression "(code **)(pcVar15 + 0x246114)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x246114)" ( (binary_expression "pcVar15 + 0x246114" identifier + number_literal) ))))) ;) (expression_statement "this = (_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8);" (assignment_expression "this = (_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8)" identifier = (call_expression "(_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)(*(int *)(pcVar15 + 0x245960) + -0x9b8)" (parenthesized_expression "(_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *)" ( (ERROR "_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::" (comma_expression "_Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "_Rb_tree<std::pair<long_long_unsigned_int" (binary_expression "_Rb_tree<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>,_std" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>_>,_std" (binary_expression "_long_long_unsigned_int>_>_" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>,_std" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : :) (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n            *" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>_>_>\n            *" (binary_expression "_long_long_unsigned_int>_>_>_" (binary_expression "_long_long_unsigned_int>_>_" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (pointer_expression "*" * identifier))) )) (argument_list "(*(int *)(pcVar15 + 0x245960) + -0x9b8)" ( (binary_expression "*(int *)(pcVar15 + 0x245960) + -0x9b8" (pointer_expression "*(int *)(pcVar15 + 0x245960)" * (cast_expression "(int *)(pcVar15 + 0x245960)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x245960)" ( (binary_expression "pcVar15 + 0x245960" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "VVar6 = (*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924);" (assignment_expression "VVar6 = (*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924)" identifier = (call_expression "(*pcVar14)(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(this,0x69,*(int *)(pcVar15 + 0x246000) + -0x1058,in_a3,pcVar15 + 0x24d924)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar15 + 0x246000) + -0x1058" (pointer_expression "*(int *)(pcVar15 + 0x246000)" * (cast_expression "(int *)(pcVar15 + 0x246000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x246000)" ( (binary_expression "pcVar15 + 0x246000" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "pcVar15 + 0x24d924" identifier + number_literal) )))) ;) (if_statement "if (iVar11 == 0) {\n      return VVar6;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      return VVar6;\n    }" { (return_statement "return VVar6;" return identifier ;) })) (do_statement "do {\n      std::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));\n      iVar12 = *(int *)(iVar11 + 8);\n      VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);\n      iVar11 = iVar12;\n    } while (iVar12 != 0);" do (compound_statement "{\n      std::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));\n      iVar12 = *(int *)(iVar11 + 8);\n      VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);\n      iVar11 = iVar12;\n    }" { (labeled_statement "std::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));" statement_identifier (ERROR "::\n      _Rb_tree<std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::_Select1st<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std::less<std::pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std::allocator<std::pair<const_std::pair<long_long_unsigned_int,_long_long_unsigned_int>,_std:" : : (binary_expression "_Rb_tree<std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>,_std" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "_Select1st<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>_>,_std" (binary_expression "_long_long_unsigned_int>_>_" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "less<std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>,_std" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>,_std" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) :) : (expression_statement "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc));" (comma_expression "pair<long_long_unsigned_int,_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc))" (binary_expression "pair<long_long_unsigned_int" identifier < identifier) , (binary_expression "_long_long_unsigned_int>_>_>_>\n      ::_M_erase(this,*(_Link_type *)(iVar11 + 0xc))" (binary_expression "_long_long_unsigned_int>_>_>_" (binary_expression "_long_long_unsigned_int>_>_" (binary_expression "_long_long_unsigned_int>_" identifier > identifier) > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_erase(this,*(_Link_type *)(iVar11 + 0xc))" identifier (argument_list "(this,*(_Link_type *)(iVar11 + 0xc))" ( identifier , (pointer_expression "*(_Link_type *)(iVar11 + 0xc)" * (cast_expression "(_Link_type *)(iVar11 + 0xc)" ( (type_descriptor "_Link_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) ))))) ;)) (expression_statement "iVar12 = *(int *)(iVar11 + 8);" (assignment_expression "iVar12 = *(int *)(iVar11 + 8)" identifier = (pointer_expression "*(int *)(iVar11 + 8)" * (cast_expression "(int *)(iVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11);" (assignment_expression "VVar6 = (**(code **)(pcVar14 + 0x245980))(iVar11)" identifier = (call_expression "(**(code **)(pcVar14 + 0x245980))(iVar11)" (parenthesized_expression "(**(code **)(pcVar14 + 0x245980))" ( (pointer_expression "**(code **)(pcVar14 + 0x245980)" * (pointer_expression "*(code **)(pcVar14 + 0x245980)" * (cast_expression "(code **)(pcVar14 + 0x245980)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar14 + 0x245980)" ( (binary_expression "pcVar14 + 0x245980" identifier + number_literal) ))))) )) (argument_list "(iVar11)" ( identifier )))) ;) (expression_statement "iVar11 = iVar12;" (assignment_expression "iVar11 = iVar12" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) ;) (return_statement "return VVar6;" return identifier ;) })) (expression_statement "bVar2 = *(byte *)*puVar9;" (assignment_expression "bVar2 = *(byte *)*puVar9" identifier = (pointer_expression "*(byte *)*puVar9" * (cast_expression "(byte *)*puVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)))) ;) (expression_statement "*puVar9 = (byte *)*puVar9 + 1;" (assignment_expression "*puVar9 = (byte *)*puVar9 + 1" (pointer_expression "*puVar9" * identifier) = (binary_expression "(byte *)*puVar9 + 1" (cast_expression "(byte *)*puVar9" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) + number_literal)) ;) (return_statement "return (Valtype)bVar2;" return (cast_expression "(Valtype)bVar2" ( (type_descriptor "Valtype" type_identifier) ) identifier) ;) }))
(translation_unit "uint gold::read_from_pointer<16>(uchar **param_1)\n\n{\n  undefined1 uVar1;\n  ushort uVar2;\n  ushort uVar3;\n  uint uVar4;\n  ushort *puVar5;\n  \n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }\n  puVar5 = (ushort *)*param_1;\n  uVar1 = *(undefined1 *)puVar5;\n  uVar3 = *puVar5;\n  uVar2 = *puVar5;\n  if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }\n  *param_1 = (uchar *)(puVar5 + 1);\n  return (uint)uVar2;\n}\n\n" (ERROR "uint gold::read_from_pointer<16>(uchar **param_1)" type_identifier (ERROR "gold::" identifier : :) identifier < (binary_expression "16>(uchar **param_1)" number_literal > (parenthesized_expression "(uchar **param_1)" ( (binary_expression "uchar **param_1" identifier * (pointer_expression "*param_1" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  ushort uVar2;\n  ushort uVar3;\n  uint uVar4;\n  ushort *puVar5;\n  \n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }\n  puVar5 = (ushort *)*param_1;\n  uVar1 = *(undefined1 *)puVar5;\n  uVar3 = *puVar5;\n  uVar2 = *puVar5;\n  if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }\n  *param_1 = (uchar *)(puVar5 + 1);\n  return (uint)uVar2;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "ushort uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "ushort *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }" if (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }" { (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" identifier = (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x1058" identifier + number_literal) )))) ;) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "puVar5 = (ushort *)*param_1;" (assignment_expression "puVar5 = (ushort *)*param_1" identifier = (cast_expression "(ushort *)*param_1" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar1 = *(undefined1 *)puVar5;" (assignment_expression "uVar1 = *(undefined1 *)puVar5" identifier = (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar3 = *puVar5;" (assignment_expression "uVar3 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (if_statement "if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }" if (parenthesized_expression "(*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0')" ( (binary_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" * (cast_expression "(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" ( (binary_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" ( (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" * (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" ( (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" * (cast_expression "(int *)PTR_parameters_004c19b4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }" { (expression_statement "*param_1 = (uchar *)(puVar5 + 1);" (assignment_expression "*param_1 = (uchar *)(puVar5 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(uchar *)(puVar5 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) ;) (return_statement "return (uint)CONCAT11((char)uVar3,uVar1);" return (cast_expression "(uint)CONCAT11((char)uVar3,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CONCAT11((char)uVar3,uVar1)" identifier (argument_list "((char)uVar3,uVar1)" ( (cast_expression "(char)uVar3" ( (type_descriptor "char" primitive_type) ) identifier) , identifier )))) ;) })) (expression_statement "*param_1 = (uchar *)(puVar5 + 1);" (assignment_expression "*param_1 = (uchar *)(puVar5 + 1)" (pointer_expression "*param_1" * identifier) = (cast_expression "(uchar *)(puVar5 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 1)" ( (binary_expression "puVar5 + 1" identifier + number_literal) )))) ;) (return_statement "return (uint)uVar2;" return (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ;) }))
(translation_unit (ERROR TYPE (ERROR IDENT : :) IDENT < (binary_expression LIT > (parenthesized_expression ( (binary_expression IDENT * (pointer_expression * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) }))
(ERROR "uint gold::read_from_pointer<16>(uchar **param_1)" (type_identifier "uint") (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "read_from_pointer") (< "<") (binary_expression "16>(uchar **param_1)" (number_literal "16") (> ">") (parenthesized_expression "(uchar **param_1)" (( "(") (binary_expression "uchar **param_1" (identifier "uchar") (* "*") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  undefined1 uVar1;\n  ushort uVar2;\n  ushort uVar3;\n  uint uVar4;\n  ushort *puVar5;\n  \n  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }\n  puVar5 = (ushort *)*param_1;\n  uVar1 = *(undefined1 *)puVar5;\n  uVar3 = *puVar5;\n  uVar2 = *puVar5;\n  if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }\n  *param_1 = (uchar *)(puVar5 + 1);\n  return (uint)uVar2;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "ushort uVar3;" (type_identifier "ushort") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "ushort *puVar5;" (type_identifier "ushort") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (if_statement "if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" (( "(") (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" (* "*") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);\n    return uVar4;\n  }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058);" (assignment_expression "uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,\n                       PTR_s_in_a_linker_script_004c191c + -0x1058)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x9b8")) (, ",") (number_literal "0x69") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x1058" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x1058")) () ")")))) (; ";")) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "puVar5 = (ushort *)*param_1;" (assignment_expression "puVar5 = (ushort *)*param_1" (identifier "puVar5") (= "=") (cast_expression "(ushort *)*param_1" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)puVar5;" (assignment_expression "uVar1 = *(undefined1 *)puVar5" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)puVar5" (* "*") (cast_expression "(undefined1 *)puVar5" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) (; ";")) (expression_statement "uVar3 = *puVar5;" (assignment_expression "uVar3 = *puVar5" (identifier "uVar3") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "uVar2 = *puVar5;" (assignment_expression "uVar2 = *puVar5" (identifier "uVar2") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (if_statement "if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }" (if "if") (parenthesized_expression "(*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0'" (pointer_expression "*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" (* "*") (cast_expression "(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4)" (( "(") (binary_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4" (pointer_expression "*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4" (pointer_expression "*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)PTR_parameters_004c19b4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)PTR_parameters_004c19b4 + 0xc)" (( "(") (binary_expression "*(int *)PTR_parameters_004c19b4 + 0xc" (pointer_expression "*(int *)PTR_parameters_004c19b4" (* "*") (cast_expression "(int *)PTR_parameters_004c19b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parameters_004c19b4"))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    *param_1 = (uchar *)(puVar5 + 1);\n    return (uint)CONCAT11((char)uVar3,uVar1);\n  }" ({ "{") (expression_statement "*param_1 = (uchar *)(puVar5 + 1);" (assignment_expression "*param_1 = (uchar *)(puVar5 + 1)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(uchar *)(puVar5 + 1)" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 1)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (return_statement "return (uint)CONCAT11((char)uVar3,uVar1);" (return "return") (cast_expression "(uint)CONCAT11((char)uVar3,uVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CONCAT11((char)uVar3,uVar1)" (identifier "CONCAT11") (argument_list "((char)uVar3,uVar1)" (( "(") (cast_expression "(char)uVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar3")) (, ",") (identifier "uVar1") () ")")))) (; ";")) (} "}"))) (expression_statement "*param_1 = (uchar *)(puVar5 + 1);" (assignment_expression "*param_1 = (uchar *)(puVar5 + 1)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(uchar *)(puVar5 + 1)" (( "(") (type_descriptor "uchar *" (type_identifier "uchar") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 1)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) () ")")))) (; ";")) (return_statement "return (uint)uVar2;" (return "return") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2")) (; ";")) (} "}"))
(translation_unit (ERROR type: (type_identifier) (ERROR (identifier)) (identifier) (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))))) (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))

/* elfcpp::Valtype_base<16>::Valtype gold::MASKED(unsigned char**) */

uint gold::MASKED(uchar **param_1)

{
  undefined1 uVar1;
  ushort uVar2;
  ushort uVar3;
  uint uVar4;
  ushort *puVar5;
  
  if (*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) == 0) {
    uVar4 = (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x9b8,0x69,
                       PTR_s_in_a_linker_script_004c191c + -0x1058);
    return uVar4;
  }
  puVar5 = (ushort *)*param_1;
  uVar1 = *(undefined1 *)puVar5;
  uVar3 = *puVar5;
  uVar2 = *puVar5;
  if (*(char *)(*(int *)(*(int *)(*(int *)PTR_parameters_004c19b4 + 0xc) + 4) + 4) == '\0') {
    *param_1 = (uchar *)(puVar5 + 1);
    return (uint)CONCAT11((char)uVar3,uVar1);
  }
  *param_1 = (uchar *)(puVar5 + 1);
  return (uint)uVar2;
}

