
/* WARNING: Enum "STT": Some values do not have unique names */

bool gold::Symbol_table::should_override_with_special(Symbol *to,STT fromtype,Defined defined)

{
  uint uVar1;
  bool bVar3;
  uint uVar2;
  int iVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint extraout_v1;
  int *piVar8;
  int *piVar9;
  int iVar10;
  undefined *puVar11;
  bool adjust_dyn_def;
  bool adjust_common_sizes;
  
  bVar3 = should_override(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,
                          false);
  if ((adjust_common_sizes == false) && (adjust_dyn_def == false)) {
    return bVar3;
  }
  piVar9 = (int *)&DAT_000003fd;
  piVar8 = (int *)(PTR_s__0043226c + 0x3688);
  puVar11 = PTR_do_gold_unreachable_004323c4;
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar8,0x3fd,PTR_s__0043226c + 0x3bdc);
  iVar10 = *piVar9;
  uVar2 = piVar8[10];
  if ((*piVar8 != iVar10) && (-1 < (int)(uVar2 << 0x15))) {
    piVar9 = (int *)0x407;
    goto LAB_00292578;
  }
  if ((uVar2 & 0xe000) == 0) {
    if ((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)) {
      iVar4 = piVar8[0xb];
      goto joined_r0x00292518;
    }
  }
  else if ((uVar2 & 0xe000) == 0x8000) {
    iVar4 = piVar8[0xb];
joined_r0x00292518:
    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {
      *(byte *)(piVar8 + 0xb) =
           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;
      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;
      uVar2 = piVar9[10];
      goto joined_r0x00292564;
    }
  }
  piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;
  uVar2 = piVar9[10];
joined_r0x00292564:
  uVar7 = (uVar2 << 0x10) >> 0x1d;
  if (uVar7 < 3) {
    iVar4 = piVar9[3];
    piVar8[2] = piVar9[2];
    piVar8[3] = iVar4;
  }
  else if (4 < uVar7) {
    piVar9 = (int *)0x41a;
    goto LAB_00292578;
  }
  if (*piVar8 == iVar10) {
    piVar8[1] = piVar9[1];
  }
  uVar5 = piVar8[10];
  uVar2 = uVar2 & 0xf0000000;
  piVar8[10] = uVar5 & 0xfffffff | uVar2;
  uVar1 = ((uint)(piVar9[10] << 4) >> 0x1c) << 0x18;
  uVar6 = uVar5 & 0xffffff | uVar2 | uVar1;
  piVar8[10] = uVar6;
  iVar10 = piVar9[10];
  uVar7 = (uint)(iVar10 << 8) >> 0x1e;
  if (uVar7 != 0) {
    if ((uVar5 & 0xc00000) == 0) goto LAB_00292590;
    uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16;
    if (uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;
  }
  do {
    uVar7 = piVar8[10];
    uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10;
    piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100;
    iVar10 = piVar9[10];
    if (iVar10 << 0x16 < 0) {
      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;
      iVar10 = piVar9[10];
    }
    if (iVar10 << 0x19 < 0) {
      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;
    }
    *(byte *)(piVar8 + 0xb) =
         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5);
    iVar10 = piVar9[10];
    if (iVar10 << 0x14 < 0) {
      piVar9 = (int *)0x439;
    }
    else {
      piVar8 = piVar9 + 6;
      piVar9 = (int *)0x43a;
      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&
         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {
        piVar9 = (int *)0x43d;
        if (-1 < iVar10 << 0x1c) {
          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);
        }
      }
    }
LAB_00292578:
    uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;
    piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688);
    (**(code **)(puVar11 + 0x1a0058))();
    uVar6 = extraout_v1;
LAB_00292590:
    uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;
LAB_00292594:
    piVar8[10] = uVar2;
    iVar10 = piVar9[10];
  } while( true );
}



/* gold::Symbol_table::should_override_with_special(gold::Symbol const*, elfcpp::STT,
   gold::Symbol_table::Defined) */

void gold::Symbol_table::should_override_with_special
               (undefined4 param_1,undefined4 param_2,undefined4 param_3)

{
  char local_10;
  char local_f [11];
  
  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);
  if ((local_f[0] == '\0') && (local_10 == '\0')) {
    return;
  }
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);
  return;
}


lui gp,0x1a
addiu gp,gp,0x7ee4
addu gp,gp,t9
addiu sp,sp,-0x38
lw t9,-0x45f0(gp)
or a3,a2,zero
addiu v0,sp,0x28
or a2,a1,zero
sw gp,0x20(sp)
sw v0,0x18(sp)
addiu v0,sp,0x29
or a1,zero,zero
sw ra,0x34(sp)
sw zero,0x1c(sp)
sw v0,0x14(sp)
bal 0x00291be4
_sw zero,0x10(sp)
lbu v1,0x29(sp)
bne v1,zero,0x00292350
_lw gp,0x20(sp)
lbu v1,0x28(sp)
bne v1,zero,0x00292350
_lw ra,0x34(sp)
jr ra
_addiu sp,sp,0x38
lw a2,-0x7f64(gp)
li a1,0x3fd
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x3bdc
jalr t9
_addiu a0,a0,0x3688
(translation_unit "/* gold::Symbol_table::should_override_with_special(gold::Symbol const*, elfcpp::STT,\n   gold::Symbol_table::Defined) */\n\nvoid gold::Symbol_table::should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}\n\n" comment (function_definition "void gold::Symbol_table::should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}" primitive_type (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}" { (declaration "char local_10;" primitive_type identifier ;) (declaration "char local_f [11];" primitive_type (array_declarator "local_f [11]" identifier [ number_literal ]) ;) (expression_statement "should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);" (call_expression "should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0)" identifier (argument_list "(param_1,0,param_2,param_3,0,local_f,&local_10,0)" ( identifier , number_literal , identifier , identifier , number_literal , identifier , (pointer_expression "&local_10" & identifier) , number_literal ))) ;) (if_statement "if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }" if (parenthesized_expression "((local_f[0] == '\0') && (local_10 == '\0'))" ( (binary_expression "(local_f[0] == '\0') && (local_10 == '\0')" (parenthesized_expression "(local_f[0] == '\0')" ( (binary_expression "local_f[0] == '\0'" (subscript_expression "local_f[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_10 == '\0')" ( (binary_expression "local_10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc)" ( (binary_expression "PTR_DAT_0043226c + 0x3688" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3bdc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "STT": Some values do not have unique names */\n\nbool gold::Symbol_table::should_override_with_special(Symbol *to,STT fromtype,Defined defined)\n\n{\n  uint uVar1;\n  bool bVar3;\n  uint uVar2;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint extraout_v1;\n  int *piVar8;\n  int *piVar9;\n  int iVar10;\n  undefined *puVar11;\n  bool adjust_dyn_def;\n  bool adjust_common_sizes;\n  \n  bVar3 = should_override(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,\n                          false);\n  if ((adjust_common_sizes == false) && (adjust_dyn_def == false)) {\n    return bVar3;\n  }\n  piVar9 = (int *)&DAT_000003fd;\n  piVar8 = (int *)(PTR_s__0043226c + 0x3688);\n  puVar11 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar8,0x3fd,PTR_s__0043226c + 0x3bdc);\n  iVar10 = *piVar9;\n  uVar2 = piVar8[10];\n  if ((*piVar8 != iVar10) && (-1 < (int)(uVar2 << 0x15))) {\n    piVar9 = (int *)0x407;\n    goto LAB_00292578;\n  }\n  if ((uVar2 & 0xe000) == 0) {\n    if ((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)) {\n      iVar4 = piVar8[0xb];\n      goto joined_r0x00292518;\n    }\n  }\n  else if ((uVar2 & 0xe000) == 0x8000) {\n    iVar4 = piVar8[0xb];\njoined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }\n  }\n  piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n  uVar2 = piVar9[10];\njoined_r0x00292564:\n  uVar7 = (uVar2 << 0x10) >> 0x1d;\n  if (uVar7 < 3) {\n    iVar4 = piVar9[3];\n    piVar8[2] = piVar9[2];\n    piVar8[3] = iVar4;\n  }\n  else if (4 < uVar7) {\n    piVar9 = (int *)0x41a;\n    goto LAB_00292578;\n  }\n  if (*piVar8 == iVar10) {\n    piVar8[1] = piVar9[1];\n  }\n  uVar5 = piVar8[10];\n  uVar2 = uVar2 & 0xf0000000;\n  piVar8[10] = uVar5 & 0xfffffff | uVar2;\n  uVar1 = ((uint)(piVar9[10] << 4) >> 0x1c) << 0x18;\n  uVar6 = uVar5 & 0xffffff | uVar2 | uVar1;\n  piVar8[10] = uVar6;\n  iVar10 = piVar9[10];\n  uVar7 = (uint)(iVar10 << 8) >> 0x1e;\n  if (uVar7 != 0) {\n    if ((uVar5 & 0xc00000) == 0) goto LAB_00292590;\n    uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16;\n    if (uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;\n  }\n  do {\n    uVar7 = piVar8[10];\n    uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10;\n    piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100;\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x16 < 0) {\n      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;\n      iVar10 = piVar9[10];\n    }\n    if (iVar10 << 0x19 < 0) {\n      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;\n    }\n    *(byte *)(piVar8 + 0xb) =\n         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5);\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x14 < 0) {\n      piVar9 = (int *)0x439;\n    }\n    else {\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }\nLAB_00292578:\n    uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;\n    piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688);\n    (**(code **)(puVar11 + 0x1a0058))();\n    uVar6 = extraout_v1;\nLAB_00292590:\n    uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;\nLAB_00292594:\n    piVar8[10] = uVar2;\n    iVar10 = piVar9[10];\n  } while( true );\n}\n\n" comment (function_definition "bool gold::Symbol_table::should_override_with_special(Symbol *to,STT fromtype,Defined defined)\n\n{\n  uint uVar1;\n  bool bVar3;\n  uint uVar2;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint extraout_v1;\n  int *piVar8;\n  int *piVar9;\n  int iVar10;\n  undefined *puVar11;\n  bool adjust_dyn_def;\n  bool adjust_common_sizes;\n  \n  bVar3 = should_override(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,\n                          false);\n  if ((adjust_common_sizes == false) && (adjust_dyn_def == false)) {\n    return bVar3;\n  }\n  piVar9 = (int *)&DAT_000003fd;\n  piVar8 = (int *)(PTR_s__0043226c + 0x3688);\n  puVar11 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar8,0x3fd,PTR_s__0043226c + 0x3bdc);\n  iVar10 = *piVar9;\n  uVar2 = piVar8[10];\n  if ((*piVar8 != iVar10) && (-1 < (int)(uVar2 << 0x15))) {\n    piVar9 = (int *)0x407;\n    goto LAB_00292578;\n  }\n  if ((uVar2 & 0xe000) == 0) {\n    if ((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)) {\n      iVar4 = piVar8[0xb];\n      goto joined_r0x00292518;\n    }\n  }\n  else if ((uVar2 & 0xe000) == 0x8000) {\n    iVar4 = piVar8[0xb];\njoined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }\n  }\n  piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n  uVar2 = piVar9[10];\njoined_r0x00292564:\n  uVar7 = (uVar2 << 0x10) >> 0x1d;\n  if (uVar7 < 3) {\n    iVar4 = piVar9[3];\n    piVar8[2] = piVar9[2];\n    piVar8[3] = iVar4;\n  }\n  else if (4 < uVar7) {\n    piVar9 = (int *)0x41a;\n    goto LAB_00292578;\n  }\n  if (*piVar8 == iVar10) {\n    piVar8[1] = piVar9[1];\n  }\n  uVar5 = piVar8[10];\n  uVar2 = uVar2 & 0xf0000000;\n  piVar8[10] = uVar5 & 0xfffffff | uVar2;\n  uVar1 = ((uint)(piVar9[10] << 4) >> 0x1c) << 0x18;\n  uVar6 = uVar5 & 0xffffff | uVar2 | uVar1;\n  piVar8[10] = uVar6;\n  iVar10 = piVar9[10];\n  uVar7 = (uint)(iVar10 << 8) >> 0x1e;\n  if (uVar7 != 0) {\n    if ((uVar5 & 0xc00000) == 0) goto LAB_00292590;\n    uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16;\n    if (uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;\n  }\n  do {\n    uVar7 = piVar8[10];\n    uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10;\n    piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100;\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x16 < 0) {\n      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;\n      iVar10 = piVar9[10];\n    }\n    if (iVar10 << 0x19 < 0) {\n      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;\n    }\n    *(byte *)(piVar8 + 0xb) =\n         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5);\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x14 < 0) {\n      piVar9 = (int *)0x439;\n    }\n    else {\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }\nLAB_00292578:\n    uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;\n    piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688);\n    (**(code **)(puVar11 + 0x1a0058))();\n    uVar6 = extraout_v1;\nLAB_00292590:\n    uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;\nLAB_00292594:\n    piVar8[10] = uVar2;\n    iVar10 = piVar9[10];\n  } while( true );\n}" primitive_type (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "should_override_with_special(Symbol *to,STT fromtype,Defined defined)" identifier (parameter_list "(Symbol *to,STT fromtype,Defined defined)" ( (parameter_declaration "Symbol *to" type_identifier (pointer_declarator "*to" * identifier)) , (parameter_declaration "STT fromtype" type_identifier identifier) , (parameter_declaration "Defined defined" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  bool bVar3;\n  uint uVar2;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint extraout_v1;\n  int *piVar8;\n  int *piVar9;\n  int iVar10;\n  undefined *puVar11;\n  bool adjust_dyn_def;\n  bool adjust_common_sizes;\n  \n  bVar3 = should_override(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,\n                          false);\n  if ((adjust_common_sizes == false) && (adjust_dyn_def == false)) {\n    return bVar3;\n  }\n  piVar9 = (int *)&DAT_000003fd;\n  piVar8 = (int *)(PTR_s__0043226c + 0x3688);\n  puVar11 = PTR_do_gold_unreachable_004323c4;\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar8,0x3fd,PTR_s__0043226c + 0x3bdc);\n  iVar10 = *piVar9;\n  uVar2 = piVar8[10];\n  if ((*piVar8 != iVar10) && (-1 < (int)(uVar2 << 0x15))) {\n    piVar9 = (int *)0x407;\n    goto LAB_00292578;\n  }\n  if ((uVar2 & 0xe000) == 0) {\n    if ((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)) {\n      iVar4 = piVar8[0xb];\n      goto joined_r0x00292518;\n    }\n  }\n  else if ((uVar2 & 0xe000) == 0x8000) {\n    iVar4 = piVar8[0xb];\njoined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }\n  }\n  piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n  uVar2 = piVar9[10];\njoined_r0x00292564:\n  uVar7 = (uVar2 << 0x10) >> 0x1d;\n  if (uVar7 < 3) {\n    iVar4 = piVar9[3];\n    piVar8[2] = piVar9[2];\n    piVar8[3] = iVar4;\n  }\n  else if (4 < uVar7) {\n    piVar9 = (int *)0x41a;\n    goto LAB_00292578;\n  }\n  if (*piVar8 == iVar10) {\n    piVar8[1] = piVar9[1];\n  }\n  uVar5 = piVar8[10];\n  uVar2 = uVar2 & 0xf0000000;\n  piVar8[10] = uVar5 & 0xfffffff | uVar2;\n  uVar1 = ((uint)(piVar9[10] << 4) >> 0x1c) << 0x18;\n  uVar6 = uVar5 & 0xffffff | uVar2 | uVar1;\n  piVar8[10] = uVar6;\n  iVar10 = piVar9[10];\n  uVar7 = (uint)(iVar10 << 8) >> 0x1e;\n  if (uVar7 != 0) {\n    if ((uVar5 & 0xc00000) == 0) goto LAB_00292590;\n    uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16;\n    if (uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;\n  }\n  do {\n    uVar7 = piVar8[10];\n    uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10;\n    piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100;\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x16 < 0) {\n      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;\n      iVar10 = piVar9[10];\n    }\n    if (iVar10 << 0x19 < 0) {\n      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;\n    }\n    *(byte *)(piVar8 + 0xb) =\n         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5);\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x14 < 0) {\n      piVar9 = (int *)0x439;\n    }\n    else {\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }\nLAB_00292578:\n    uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;\n    piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688);\n    (**(code **)(puVar11 + 0x1a0058))();\n    uVar6 = extraout_v1;\nLAB_00292590:\n    uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;\nLAB_00292594:\n    piVar8[10] = uVar2;\n    iVar10 = piVar9[10];\n  } while( true );\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "bool adjust_dyn_def;" primitive_type identifier ;) (declaration "bool adjust_common_sizes;" primitive_type identifier ;) (expression_statement "bVar3 = should_override(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,\n                          false);" (assignment_expression "bVar3 = should_override(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,\n                          false)" identifier = (call_expression "should_override(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,\n                          false)" identifier (argument_list "(to,0,fromtype,defined,(Object *)0x0,&adjust_common_sizes,&adjust_dyn_def,\n                          false)" ( identifier , number_literal , identifier , identifier , (cast_expression "(Object *)0x0" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&adjust_common_sizes" & identifier) , (pointer_expression "&adjust_dyn_def" & identifier) , false )))) ;) (if_statement "if ((adjust_common_sizes == false) && (adjust_dyn_def == false)) {\n    return bVar3;\n  }" if (parenthesized_expression "((adjust_common_sizes == false) && (adjust_dyn_def == false))" ( (binary_expression "(adjust_common_sizes == false) && (adjust_dyn_def == false)" (parenthesized_expression "(adjust_common_sizes == false)" ( (binary_expression "adjust_common_sizes == false" identifier == false) )) && (parenthesized_expression "(adjust_dyn_def == false)" ( (binary_expression "adjust_dyn_def == false" identifier == false) ))) )) (compound_statement "{\n    return bVar3;\n  }" { (return_statement "return bVar3;" return identifier ;) })) (expression_statement "piVar9 = (int *)&DAT_000003fd;" (assignment_expression "piVar9 = (int *)&DAT_000003fd" identifier = (cast_expression "(int *)&DAT_000003fd" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000003fd" & identifier))) ;) (expression_statement "piVar8 = (int *)(PTR_s__0043226c + 0x3688);" (assignment_expression "piVar8 = (int *)(PTR_s__0043226c + 0x3688)" identifier = (cast_expression "(int *)(PTR_s__0043226c + 0x3688)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__0043226c + 0x3688)" ( (binary_expression "PTR_s__0043226c + 0x3688" identifier + number_literal) )))) ;) (expression_statement "puVar11 = PTR_do_gold_unreachable_004323c4;" (assignment_expression "puVar11 = PTR_do_gold_unreachable_004323c4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar8,0x3fd,PTR_s__0043226c + 0x3bdc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar8,0x3fd,PTR_s__0043226c + 0x3bdc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar8,0x3fd,PTR_s__0043226c + 0x3bdc)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + 0x3bdc" identifier + number_literal) ))) ;) (expression_statement "iVar10 = *piVar9;" (assignment_expression "iVar10 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "uVar2 = piVar8[10];" (assignment_expression "uVar2 = piVar8[10]" identifier = (subscript_expression "piVar8[10]" identifier [ number_literal ])) ;) (if_statement "if ((*piVar8 != iVar10) && (-1 < (int)(uVar2 << 0x15))) {\n    piVar9 = (int *)0x407;\n    goto LAB_00292578;\n  }" if (parenthesized_expression "((*piVar8 != iVar10) && (-1 < (int)(uVar2 << 0x15)))" ( (binary_expression "(*piVar8 != iVar10) && (-1 < (int)(uVar2 << 0x15))" (parenthesized_expression "(*piVar8 != iVar10)" ( (binary_expression "*piVar8 != iVar10" (pointer_expression "*piVar8" * identifier) != identifier) )) && (parenthesized_expression "(-1 < (int)(uVar2 << 0x15))" ( (binary_expression "-1 < (int)(uVar2 << 0x15)" number_literal < (cast_expression "(int)(uVar2 << 0x15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x15)" ( (binary_expression "uVar2 << 0x15" identifier << number_literal) )))) ))) )) (compound_statement "{\n    piVar9 = (int *)0x407;\n    goto LAB_00292578;\n  }" { (expression_statement "piVar9 = (int *)0x407;" (assignment_expression "piVar9 = (int *)0x407" identifier = (cast_expression "(int *)0x407" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00292578;" goto statement_identifier ;) })) (if_statement "if ((uVar2 & 0xe000) == 0) {\n    if ((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)) {\n      iVar4 = piVar8[0xb];\n      goto joined_r0x00292518;\n    }\n  }\n  else if ((uVar2 & 0xe000) == 0x8000) {\n    iVar4 = piVar8[0xb];\njoined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }\n  }" if (parenthesized_expression "((uVar2 & 0xe000) == 0)" ( (binary_expression "(uVar2 & 0xe000) == 0" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)) {\n      iVar4 = piVar8[0xb];\n      goto joined_r0x00292518;\n    }\n  }" { (if_statement "if ((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)) {\n      iVar4 = piVar8[0xb];\n      goto joined_r0x00292518;\n    }" if (parenthesized_expression "((piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0))" ( (binary_expression "(piVar8[3] == 0) && ((int)(uVar2 << 0x1d) < 0)" (parenthesized_expression "(piVar8[3] == 0)" ( (binary_expression "piVar8[3] == 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "((int)(uVar2 << 0x1d) < 0)" ( (binary_expression "(int)(uVar2 << 0x1d) < 0" (cast_expression "(int)(uVar2 << 0x1d)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 0x1d)" ( (binary_expression "uVar2 << 0x1d" identifier << number_literal) ))) < number_literal) ))) )) (compound_statement "{\n      iVar4 = piVar8[0xb];\n      goto joined_r0x00292518;\n    }" { (expression_statement "iVar4 = piVar8[0xb];" (assignment_expression "iVar4 = piVar8[0xb]" identifier = (subscript_expression "piVar8[0xb]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x00292518;" goto statement_identifier ;) })) }) (else_clause "else if ((uVar2 & 0xe000) == 0x8000) {\n    iVar4 = piVar8[0xb];\njoined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }\n  }" else (if_statement "if ((uVar2 & 0xe000) == 0x8000) {\n    iVar4 = piVar8[0xb];\njoined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }\n  }" if (parenthesized_expression "((uVar2 & 0xe000) == 0x8000)" ( (binary_expression "(uVar2 & 0xe000) == 0x8000" (parenthesized_expression "(uVar2 & 0xe000)" ( (binary_expression "uVar2 & 0xe000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar4 = piVar8[0xb];\njoined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }\n  }" { (expression_statement "iVar4 = piVar8[0xb];" (assignment_expression "iVar4 = piVar8[0xb]" identifier = (subscript_expression "piVar8[0xb]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x00292518:\n    if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }" statement_identifier : (if_statement "if ((-1 < iVar4) || (iVar4 << 1 < 0)) {\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }" if (parenthesized_expression "((-1 < iVar4) || (iVar4 << 1 < 0))" ( (binary_expression "(-1 < iVar4) || (iVar4 << 1 < 0)" (parenthesized_expression "(-1 < iVar4)" ( (binary_expression "-1 < iVar4" number_literal < identifier) )) || (parenthesized_expression "(iVar4 << 1 < 0)" ( (binary_expression "iVar4 << 1 < 0" (binary_expression "iVar4 << 1" identifier << number_literal) < number_literal) ))) )) (compound_statement "{\n      *(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;\n      piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;\n      uVar2 = piVar9[10];\n      goto joined_r0x00292564;\n    }" { (expression_statement "*(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80;" (assignment_expression "*(byte *)(piVar8 + 0xb) =\n           *(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80" (pointer_expression "*(byte *)(piVar8 + 0xb)" * (cast_expression "(byte *)(piVar8 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 0xb)" ( (binary_expression "piVar8 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6 | 0x80" (binary_expression "*(byte *)(piVar8 + 0xb) & 0x3f | ((uVar2 << 4) >> 0x1c == 2) << 6" (binary_expression "*(byte *)(piVar8 + 0xb) & 0x3f" (pointer_expression "*(byte *)(piVar8 + 0xb)" * (cast_expression "(byte *)(piVar8 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 0xb)" ( (binary_expression "piVar8 + 0xb" identifier + number_literal) )))) & number_literal) | (binary_expression "((uVar2 << 4) >> 0x1c == 2) << 6" (parenthesized_expression "((uVar2 << 4) >> 0x1c == 2)" ( (binary_expression "(uVar2 << 4) >> 0x1c == 2" (binary_expression "(uVar2 << 4) >> 0x1c" (parenthesized_expression "(uVar2 << 4)" ( (binary_expression "uVar2 << 4" identifier << number_literal) )) >> number_literal) == number_literal) )) << number_literal)) | number_literal)) ;) (expression_statement "piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;" (assignment_expression "piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (binary_expression "piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd" (binary_expression "piVar8[10] & 0xffff1fffU" (subscript_expression "piVar8[10]" identifier [ number_literal ]) & number_literal) | (binary_expression "((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd" (parenthesized_expression "((uint)(piVar9[10] << 0x10) >> 0x1d)" ( (binary_expression "(uint)(piVar9[10] << 0x10) >> 0x1d" (call_expression "(uint)(piVar9[10] << 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar9[10] << 0x10)" ( (binary_expression "piVar9[10] << 0x10" (subscript_expression "piVar9[10]" identifier [ number_literal ]) << number_literal) ))) >> number_literal) )) << number_literal))) ;) (expression_statement "uVar2 = piVar9[10];" (assignment_expression "uVar2 = piVar9[10]" identifier = (subscript_expression "piVar9[10]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x00292564;" goto statement_identifier ;) }))) })))) (expression_statement "piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd;" (assignment_expression "piVar8[10] = piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (binary_expression "piVar8[10] & 0xffff1fffU | ((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd" (binary_expression "piVar8[10] & 0xffff1fffU" (subscript_expression "piVar8[10]" identifier [ number_literal ]) & number_literal) | (binary_expression "((uint)(piVar9[10] << 0x10) >> 0x1d) << 0xd" (parenthesized_expression "((uint)(piVar9[10] << 0x10) >> 0x1d)" ( (binary_expression "(uint)(piVar9[10] << 0x10) >> 0x1d" (call_expression "(uint)(piVar9[10] << 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar9[10] << 0x10)" ( (binary_expression "piVar9[10] << 0x10" (subscript_expression "piVar9[10]" identifier [ number_literal ]) << number_literal) ))) >> number_literal) )) << number_literal))) ;) (expression_statement "uVar2 = piVar9[10];" (assignment_expression "uVar2 = piVar9[10]" identifier = (subscript_expression "piVar9[10]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x00292564:\n  uVar7 = (uVar2 << 0x10) >> 0x1d;" statement_identifier : (expression_statement "uVar7 = (uVar2 << 0x10) >> 0x1d;" (assignment_expression "uVar7 = (uVar2 << 0x10) >> 0x1d" identifier = (binary_expression "(uVar2 << 0x10) >> 0x1d" (parenthesized_expression "(uVar2 << 0x10)" ( (binary_expression "uVar2 << 0x10" identifier << number_literal) )) >> number_literal)) ;)) (if_statement "if (uVar7 < 3) {\n    iVar4 = piVar9[3];\n    piVar8[2] = piVar9[2];\n    piVar8[3] = iVar4;\n  }\n  else if (4 < uVar7) {\n    piVar9 = (int *)0x41a;\n    goto LAB_00292578;\n  }" if (parenthesized_expression "(uVar7 < 3)" ( (binary_expression "uVar7 < 3" identifier < number_literal) )) (compound_statement "{\n    iVar4 = piVar9[3];\n    piVar8[2] = piVar9[2];\n    piVar8[3] = iVar4;\n  }" { (expression_statement "iVar4 = piVar9[3];" (assignment_expression "iVar4 = piVar9[3]" identifier = (subscript_expression "piVar9[3]" identifier [ number_literal ])) ;) (expression_statement "piVar8[2] = piVar9[2];" (assignment_expression "piVar8[2] = piVar9[2]" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = (subscript_expression "piVar9[2]" identifier [ number_literal ])) ;) (expression_statement "piVar8[3] = iVar4;" (assignment_expression "piVar8[3] = iVar4" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else if (4 < uVar7) {\n    piVar9 = (int *)0x41a;\n    goto LAB_00292578;\n  }" else (if_statement "if (4 < uVar7) {\n    piVar9 = (int *)0x41a;\n    goto LAB_00292578;\n  }" if (parenthesized_expression "(4 < uVar7)" ( (binary_expression "4 < uVar7" number_literal < identifier) )) (compound_statement "{\n    piVar9 = (int *)0x41a;\n    goto LAB_00292578;\n  }" { (expression_statement "piVar9 = (int *)0x41a;" (assignment_expression "piVar9 = (int *)0x41a" identifier = (cast_expression "(int *)0x41a" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00292578;" goto statement_identifier ;) })))) (if_statement "if (*piVar8 == iVar10) {\n    piVar8[1] = piVar9[1];\n  }" if (parenthesized_expression "(*piVar8 == iVar10)" ( (binary_expression "*piVar8 == iVar10" (pointer_expression "*piVar8" * identifier) == identifier) )) (compound_statement "{\n    piVar8[1] = piVar9[1];\n  }" { (expression_statement "piVar8[1] = piVar9[1];" (assignment_expression "piVar8[1] = piVar9[1]" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = (subscript_expression "piVar9[1]" identifier [ number_literal ])) ;) })) (expression_statement "uVar5 = piVar8[10];" (assignment_expression "uVar5 = piVar8[10]" identifier = (subscript_expression "piVar8[10]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = uVar2 & 0xf0000000;" (assignment_expression "uVar2 = uVar2 & 0xf0000000" identifier = (binary_expression "uVar2 & 0xf0000000" identifier & number_literal)) ;) (expression_statement "piVar8[10] = uVar5 & 0xfffffff | uVar2;" (assignment_expression "piVar8[10] = uVar5 & 0xfffffff | uVar2" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (binary_expression "uVar5 & 0xfffffff | uVar2" (binary_expression "uVar5 & 0xfffffff" identifier & number_literal) | identifier)) ;) (expression_statement "uVar1 = ((uint)(piVar9[10] << 4) >> 0x1c) << 0x18;" (assignment_expression "uVar1 = ((uint)(piVar9[10] << 4) >> 0x1c) << 0x18" identifier = (binary_expression "((uint)(piVar9[10] << 4) >> 0x1c) << 0x18" (parenthesized_expression "((uint)(piVar9[10] << 4) >> 0x1c)" ( (binary_expression "(uint)(piVar9[10] << 4) >> 0x1c" (call_expression "(uint)(piVar9[10] << 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar9[10] << 4)" ( (binary_expression "piVar9[10] << 4" (subscript_expression "piVar9[10]" identifier [ number_literal ]) << number_literal) ))) >> number_literal) )) << number_literal)) ;) (expression_statement "uVar6 = uVar5 & 0xffffff | uVar2 | uVar1;" (assignment_expression "uVar6 = uVar5 & 0xffffff | uVar2 | uVar1" identifier = (binary_expression "uVar5 & 0xffffff | uVar2 | uVar1" (binary_expression "uVar5 & 0xffffff | uVar2" (binary_expression "uVar5 & 0xffffff" identifier & number_literal) | identifier) | identifier)) ;) (expression_statement "piVar8[10] = uVar6;" (assignment_expression "piVar8[10] = uVar6" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar10 = piVar9[10];" (assignment_expression "iVar10 = piVar9[10]" identifier = (subscript_expression "piVar9[10]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = (uint)(iVar10 << 8) >> 0x1e;" (assignment_expression "uVar7 = (uint)(iVar10 << 8) >> 0x1e" identifier = (binary_expression "(uint)(iVar10 << 8) >> 0x1e" (call_expression "(uint)(iVar10 << 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 << 8)" ( (binary_expression "iVar10 << 8" identifier << number_literal) ))) >> number_literal)) ;) (if_statement "if (uVar7 != 0) {\n    if ((uVar5 & 0xc00000) == 0) goto LAB_00292590;\n    uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16;\n    if (uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;\n  }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((uVar5 & 0xc00000) == 0) goto LAB_00292590;\n    uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16;\n    if (uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;\n  }" { (if_statement "if ((uVar5 & 0xc00000) == 0) goto LAB_00292590;" if (parenthesized_expression "((uVar5 & 0xc00000) == 0)" ( (binary_expression "(uVar5 & 0xc00000) == 0" (parenthesized_expression "(uVar5 & 0xc00000)" ( (binary_expression "uVar5 & 0xc00000" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00292590;" goto statement_identifier ;)) (expression_statement "uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16;" (assignment_expression "uVar2 = uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16" identifier = (binary_expression "uVar5 & 0x3fffff | uVar2 | uVar1 | uVar7 << 0x16" (binary_expression "uVar5 & 0x3fffff | uVar2 | uVar1" (binary_expression "uVar5 & 0x3fffff | uVar2" (binary_expression "uVar5 & 0x3fffff" identifier & number_literal) | identifier) | identifier) | (binary_expression "uVar7 << 0x16" identifier << number_literal))) ;) (if_statement "if (uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;" if (parenthesized_expression "(uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e)" ( (binary_expression "uVar7 < ((uVar5 & 0xffffff) << 8) >> 0x1e" identifier < (binary_expression "((uVar5 & 0xffffff) << 8) >> 0x1e" (parenthesized_expression "((uVar5 & 0xffffff) << 8)" ( (binary_expression "(uVar5 & 0xffffff) << 8" (parenthesized_expression "(uVar5 & 0xffffff)" ( (binary_expression "uVar5 & 0xffffff" identifier & number_literal) )) << number_literal) )) >> number_literal)) )) (goto_statement "goto LAB_00292594;" goto statement_identifier ;)) })) (do_statement "do {\n    uVar7 = piVar8[10];\n    uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10;\n    piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100;\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x16 < 0) {\n      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;\n      iVar10 = piVar9[10];\n    }\n    if (iVar10 << 0x19 < 0) {\n      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;\n    }\n    *(byte *)(piVar8 + 0xb) =\n         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5);\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x14 < 0) {\n      piVar9 = (int *)0x439;\n    }\n    else {\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }\nLAB_00292578:\n    uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;\n    piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688);\n    (**(code **)(puVar11 + 0x1a0058))();\n    uVar6 = extraout_v1;\nLAB_00292590:\n    uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;\nLAB_00292594:\n    piVar8[10] = uVar2;\n    iVar10 = piVar9[10];\n  } while( true );" do (compound_statement "{\n    uVar7 = piVar8[10];\n    uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10;\n    piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100;\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x16 < 0) {\n      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;\n      iVar10 = piVar9[10];\n    }\n    if (iVar10 << 0x19 < 0) {\n      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;\n    }\n    *(byte *)(piVar8 + 0xb) =\n         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5);\n    iVar10 = piVar9[10];\n    if (iVar10 << 0x14 < 0) {\n      piVar9 = (int *)0x439;\n    }\n    else {\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }\nLAB_00292578:\n    uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;\n    piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688);\n    (**(code **)(puVar11 + 0x1a0058))();\n    uVar6 = extraout_v1;\nLAB_00292590:\n    uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;\nLAB_00292594:\n    piVar8[10] = uVar2;\n    iVar10 = piVar9[10];\n  }" { (expression_statement "uVar7 = piVar8[10];" (assignment_expression "uVar7 = piVar8[10]" identifier = (subscript_expression "piVar8[10]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10;" (assignment_expression "uVar2 = ((uint)(iVar10 << 10) >> 0x1a) << 0x10" identifier = (binary_expression "((uint)(iVar10 << 10) >> 0x1a) << 0x10" (parenthesized_expression "((uint)(iVar10 << 10) >> 0x1a)" ( (binary_expression "(uint)(iVar10 << 10) >> 0x1a" (call_expression "(uint)(iVar10 << 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 << 10)" ( (binary_expression "iVar10 << 10" identifier << number_literal) ))) >> number_literal) )) << number_literal)) ;) (expression_statement "piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100;" (assignment_expression "piVar8[10] = uVar7 & 0xffc0feff | uVar2 | 0x100" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (binary_expression "uVar7 & 0xffc0feff | uVar2 | 0x100" (binary_expression "uVar7 & 0xffc0feff | uVar2" (binary_expression "uVar7 & 0xffc0feff" identifier & number_literal) | identifier) | number_literal)) ;) (expression_statement "iVar10 = piVar9[10];" (assignment_expression "iVar10 = piVar9[10]" identifier = (subscript_expression "piVar9[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 << 0x16 < 0) {\n      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;\n      iVar10 = piVar9[10];\n    }" if (parenthesized_expression "(iVar10 << 0x16 < 0)" ( (binary_expression "iVar10 << 0x16 < 0" (binary_expression "iVar10 << 0x16" identifier << number_literal) < number_literal) )) (compound_statement "{\n      piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;\n      iVar10 = piVar9[10];\n    }" { (expression_statement "piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300;" (assignment_expression "piVar8[10] = uVar7 & 0xffc0fcff | uVar2 | 0x300" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (binary_expression "uVar7 & 0xffc0fcff | uVar2 | 0x300" (binary_expression "uVar7 & 0xffc0fcff | uVar2" (binary_expression "uVar7 & 0xffc0fcff" identifier & number_literal) | identifier) | number_literal)) ;) (expression_statement "iVar10 = piVar9[10];" (assignment_expression "iVar10 = piVar9[10]" identifier = (subscript_expression "piVar9[10]" identifier [ number_literal ])) ;) })) (if_statement "if (iVar10 << 0x19 < 0) {\n      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;\n    }" if (parenthesized_expression "(iVar10 << 0x19 < 0)" ( (binary_expression "iVar10 << 0x19 < 0" (binary_expression "iVar10 << 0x19" identifier << number_literal) < number_literal) )) (compound_statement "{\n      piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;\n    }" { (expression_statement "piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40;" (assignment_expression "piVar8[10] = piVar8[10] & 0xffffffbfU | 0x40" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (binary_expression "piVar8[10] & 0xffffffbfU | 0x40" (binary_expression "piVar8[10] & 0xffffffbfU" (subscript_expression "piVar8[10]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) (expression_statement "*(byte *)(piVar8 + 0xb) =\n         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5);" (assignment_expression "*(byte *)(piVar8 + 0xb) =\n         *(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5)" (pointer_expression "*(byte *)(piVar8 + 0xb)" * (cast_expression "(byte *)(piVar8 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 0xb)" ( (binary_expression "piVar8 + 0xb" identifier + number_literal) )))) = (binary_expression "*(byte *)(piVar8 + 0xb) & 0xdf | (byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5)" (binary_expression "*(byte *)(piVar8 + 0xb) & 0xdf" (pointer_expression "*(byte *)(piVar8 + 0xb)" * (cast_expression "(byte *)(piVar8 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 0xb)" ( (binary_expression "piVar8 + 0xb" identifier + number_literal) )))) & number_literal) | (call_expression "(byte)(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(((uint)(piVar9[0xb] << 2) >> 0x1f) << 5)" ( (binary_expression "((uint)(piVar9[0xb] << 2) >> 0x1f) << 5" (parenthesized_expression "((uint)(piVar9[0xb] << 2) >> 0x1f)" ( (binary_expression "(uint)(piVar9[0xb] << 2) >> 0x1f" (call_expression "(uint)(piVar9[0xb] << 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar9[0xb] << 2)" ( (binary_expression "piVar9[0xb] << 2" (subscript_expression "piVar9[0xb]" identifier [ number_literal ]) << number_literal) ))) >> number_literal) )) << number_literal) ))))) ;) (expression_statement "iVar10 = piVar9[10];" (assignment_expression "iVar10 = piVar9[10]" identifier = (subscript_expression "piVar9[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 << 0x14 < 0) {\n      piVar9 = (int *)0x439;\n    }\n    else {\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }" if (parenthesized_expression "(iVar10 << 0x14 < 0)" ( (binary_expression "iVar10 << 0x14 < 0" (binary_expression "iVar10 << 0x14" identifier << number_literal) < number_literal) )) (compound_statement "{\n      piVar9 = (int *)0x439;\n    }" { (expression_statement "piVar9 = (int *)0x439;" (assignment_expression "piVar9 = (int *)0x439" identifier = (cast_expression "(int *)0x439" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }" else (compound_statement "{\n      piVar8 = piVar9 + 6;\n      piVar9 = (int *)0x43a;\n      if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }\n    }" { (expression_statement "piVar8 = piVar9 + 6;" (assignment_expression "piVar8 = piVar9 + 6" identifier = (binary_expression "piVar9 + 6" identifier + number_literal)) ;) (expression_statement "piVar9 = (int *)0x43a;" (assignment_expression "piVar9 = (int *)0x43a" identifier = (cast_expression "(int *)0x43a" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)) {\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }" if (parenthesized_expression "(((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b))" ( (binary_expression "((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)) &&\n         (piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)" (parenthesized_expression "((*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a))" ( (binary_expression "(*piVar8 == -1) && (piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)" (parenthesized_expression "(*piVar8 == -1)" ( (binary_expression "*piVar8 == -1" (pointer_expression "*piVar8" * identifier) == number_literal) )) && (parenthesized_expression "(piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a)" ( (comma_expression "piVar9 = (int *)0x43b, -1 < iVar10 << 0x1a" (assignment_expression "piVar9 = (int *)0x43b" identifier = (cast_expression "(int *)0x43b" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "-1 < iVar10 << 0x1a" number_literal < (binary_expression "iVar10 << 0x1a" identifier << number_literal))) ))) )) && (parenthesized_expression "(piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b)" ( (comma_expression "piVar9 = (int *)0x43c, -1 < iVar10 << 0x1b" (assignment_expression "piVar9 = (int *)0x43c" identifier = (cast_expression "(int *)0x43c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "-1 < iVar10 << 0x1b" number_literal < (binary_expression "iVar10 << 0x1b" identifier << number_literal))) ))) )) (compound_statement "{\n        piVar9 = (int *)0x43d;\n        if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }\n      }" { (expression_statement "piVar9 = (int *)0x43d;" (assignment_expression "piVar9 = (int *)0x43d" identifier = (cast_expression "(int *)0x43d" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (-1 < iVar10 << 0x1c) {\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }" if (parenthesized_expression "(-1 < iVar10 << 0x1c)" ( (binary_expression "-1 < iVar10 << 0x1c" number_literal < (binary_expression "iVar10 << 0x1c" identifier << number_literal)) )) (compound_statement "{\n          return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);\n        }" { (return_statement "return SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0);" return (call_expression "SUB41((uint)(iVar10 << 0x1c) >> 0x1f,0)" identifier (argument_list "((uint)(iVar10 << 0x1c) >> 0x1f,0)" ( (binary_expression "(uint)(iVar10 << 0x1c) >> 0x1f" (call_expression "(uint)(iVar10 << 0x1c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar10 << 0x1c)" ( (binary_expression "iVar10 << 0x1c" identifier << number_literal) ))) >> number_literal) , number_literal ))) ;) })) })) }))) (labeled_statement "LAB_00292578:\n    uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;" statement_identifier : (expression_statement "uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0;" (assignment_expression "uVar7 = *(int *)(puVar11 + 0x19ff00) + 0x3bc0" identifier = (binary_expression "*(int *)(puVar11 + 0x19ff00) + 0x3bc0" (pointer_expression "*(int *)(puVar11 + 0x19ff00)" * (cast_expression "(int *)(puVar11 + 0x19ff00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x19ff00)" ( (binary_expression "puVar11 + 0x19ff00" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688);" (assignment_expression "piVar8 = (int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688)" identifier = (cast_expression "(int *)(*(int *)(puVar11 + 0x19ff00) + 0x3688)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0x19ff00) + 0x3688)" ( (binary_expression "*(int *)(puVar11 + 0x19ff00) + 0x3688" (pointer_expression "*(int *)(puVar11 + 0x19ff00)" * (cast_expression "(int *)(puVar11 + 0x19ff00)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x19ff00)" ( (binary_expression "puVar11 + 0x19ff00" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar11 + 0x1a0058))();" (call_expression "(**(code **)(puVar11 + 0x1a0058))()" (parenthesized_expression "(**(code **)(puVar11 + 0x1a0058))" ( (pointer_expression "**(code **)(puVar11 + 0x1a0058)" * (pointer_expression "*(code **)(puVar11 + 0x1a0058)" * (cast_expression "(code **)(puVar11 + 0x1a0058)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x1a0058)" ( (binary_expression "puVar11 + 0x1a0058" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = extraout_v1;" (assignment_expression "uVar6 = extraout_v1" identifier = identifier) ;) (labeled_statement "LAB_00292590:\n    uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;" statement_identifier : (expression_statement "uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16;" (assignment_expression "uVar2 = uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16" identifier = (binary_expression "uVar6 & 0xff3fffff | (uVar7 & 3) << 0x16" (binary_expression "uVar6 & 0xff3fffff" identifier & number_literal) | (binary_expression "(uVar7 & 3) << 0x16" (parenthesized_expression "(uVar7 & 3)" ( (binary_expression "uVar7 & 3" identifier & number_literal) )) << number_literal))) ;)) (labeled_statement "LAB_00292594:\n    piVar8[10] = uVar2;" statement_identifier : (expression_statement "piVar8[10] = uVar2;" (assignment_expression "piVar8[10] = uVar2" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "iVar10 = piVar9[10];" (assignment_expression "iVar10 = piVar9[10]" identifier = (subscript_expression "piVar9[10]" identifier [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void gold::Symbol_table::should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}\n\n" (function_definition "void gold::Symbol_table::should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}" primitive_type (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}" { (declaration "char local_10;" primitive_type identifier ;) (declaration "char local_f [11];" primitive_type (array_declarator "local_f [11]" identifier [ number_literal ]) ;) (expression_statement "should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);" (call_expression "should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0)" identifier (argument_list "(param_1,0,param_2,param_3,0,local_f,&local_10,0)" ( identifier , number_literal , identifier , identifier , number_literal , identifier , (pointer_expression "&local_10" & identifier) , number_literal ))) ;) (if_statement "if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }" if (parenthesized_expression "((local_f[0] == '\0') && (local_10 == '\0'))" ( (binary_expression "(local_f[0] == '\0') && (local_10 == '\0')" (parenthesized_expression "(local_f[0] == '\0')" ( (binary_expression "local_f[0] == '\0'" (subscript_expression "local_f[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(local_10 == '\0')" ( (binary_expression "local_10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc)" ( (binary_expression "PTR_DAT_0043226c + 0x3688" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x3bdc" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , LIT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (return_statement return ;) })) (expression_statement (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 ;) })))
(function_definition "void gold::Symbol_table::should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}" (primitive_type "void") (ERROR "gold::Symbol_table::" (identifier "gold") (: ":") (: ":") (identifier "Symbol_table") (: ":") (: ":")) (function_declarator "should_override_with_special\n               (undefined4 param_1,undefined4 param_2,undefined4 param_3)" (identifier "should_override_with_special") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  char local_10;\n  char local_f [11];\n  \n  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);\n  if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }\n  (*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);\n  return;\n}" ({ "{") (declaration "char local_10;" (primitive_type "char") (identifier "local_10") (; ";")) (declaration "char local_f [11];" (primitive_type "char") (array_declarator "local_f [11]" (identifier "local_f") ([ "[") (number_literal "11") (] "]")) (; ";")) (expression_statement "should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);" (call_expression "should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0)" (identifier "should_override") (argument_list "(param_1,0,param_2,param_3,0,local_f,&local_10,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (identifier "local_f") (, ",") (pointer_expression "&local_10" (& "&") (identifier "local_10")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((local_f[0] == '\0') && (local_10 == '\0')) {\n    return;\n  }" (if "if") (parenthesized_expression "((local_f[0] == '\0') && (local_10 == '\0'))" (( "(") (binary_expression "(local_f[0] == '\0') && (local_10 == '\0')" (parenthesized_expression "(local_f[0] == '\0')" (( "(") (binary_expression "local_f[0] == '\0'" (subscript_expression "local_f[0]" (identifier "local_f") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_10 == '\0')" (( "(") (binary_expression "local_10 == '\0'" (identifier "local_10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc)" (( "(") (binary_expression "PTR_DAT_0043226c + 0x3688" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3688")) (, ",") (number_literal "0x3fd") (, ",") (binary_expression "PTR_DAT_0043226c + 0x3bdc" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x3bdc")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "STT": Some values do not have unique names */

bool gold::Symbol_table::function_1(type_1 *to,type_2 fromtype,type_3 defined)

{
  type_4 var_11;
  bool bVar3;
  type_4 var_6;
  int var_7;
  type_4 var_10;
  type_4 var_15;
  type_4 var_9;
  type_4 extraout_v1;
  int *var_8;
  int *var_12;
  int var_5;
  type_5 *var_14;
  bool var_3;
  bool var_2;
  
  bVar3 = var_1(to,0,fromtype,defined,(type_6 *)0x0,&var_2,&var_3,
                          false);
  if ((var_2 == false) && (var_3 == false)) {
    return bVar3;
  }
  var_12 = (int *)&DAT_000003fd;
  var_8 = (int *)(var_4 + 0x3688);
  var_14 = PTR_do_gold_unreachable_004323c4;
  (*(type_7 *)PTR_do_gold_unreachable_004323c4)(var_8,0x3fd,var_4 + 0x3bdc);
  var_5 = *var_12;
  var_6 = var_8[10];
  if ((*var_8 != var_5) && (-1 < (int)(var_6 << 0x15))) {
    var_12 = (int *)0x407;
    goto LAB_00292578;
  }
  if ((var_6 & 0xe000) == 0) {
    if ((var_8[3] == 0) && ((int)(var_6 << 0x1d) < 0)) {
      var_7 = var_8[0xb];
      goto joined_r0x00292518;
    }
  }
  else if ((var_6 & 0xe000) == 0x8000) {
    var_7 = var_8[0xb];
joined_r0x00292518:
    if ((-1 < var_7) || (var_7 << 1 < 0)) {
      *(type_8 *)(var_8 + 0xb) =
           *(type_8 *)(var_8 + 0xb) & 0x3f | ((var_6 << 4) >> 0x1c == 2) << 6 | 0x80;
      var_8[10] = var_8[10] & 0xffff1fffU | ((type_4)(var_12[10] << 0x10) >> 0x1d) << 0xd;
      var_6 = var_12[10];
      goto joined_r0x00292564;
    }
  }
  var_8[10] = var_8[10] & 0xffff1fffU | ((type_4)(var_12[10] << 0x10) >> 0x1d) << 0xd;
  var_6 = var_12[10];
joined_r0x00292564:
  var_9 = (var_6 << 0x10) >> 0x1d;
  if (var_9 < 3) {
    var_7 = var_12[3];
    var_8[2] = var_12[2];
    var_8[3] = var_7;
  }
  else if (4 < var_9) {
    var_12 = (int *)0x41a;
    goto LAB_00292578;
  }
  if (*var_8 == var_5) {
    var_8[1] = var_12[1];
  }
  var_10 = var_8[10];
  var_6 = var_6 & 0xf0000000;
  var_8[10] = var_10 & 0xfffffff | var_6;
  var_11 = ((type_4)(var_12[10] << 4) >> 0x1c) << 0x18;
  var_15 = var_10 & 0xffffff | var_6 | var_11;
  var_8[10] = var_15;
  var_5 = var_12[10];
  var_9 = (type_4)(var_5 << 8) >> 0x1e;
  if (var_9 != 0) {
    if ((var_10 & 0xc00000) == 0) goto LAB_00292590;
    var_6 = var_10 & 0x3fffff | var_6 | var_11 | var_9 << 0x16;
    if (var_9 < ((var_10 & 0xffffff) << 8) >> 0x1e) goto LAB_00292594;
  }
  do {
    var_9 = var_8[10];
    var_6 = ((type_4)(var_5 << 10) >> 0x1a) << 0x10;
    var_8[10] = var_9 & 0xffc0feff | var_6 | 0x100;
    var_5 = var_12[10];
    if (var_5 << 0x16 < 0) {
      var_8[10] = var_9 & 0xffc0fcff | var_6 | 0x300;
      var_5 = var_12[10];
    }
    if (var_5 << 0x19 < 0) {
      var_8[10] = var_8[10] & 0xffffffbfU | 0x40;
    }
    *(type_8 *)(var_8 + 0xb) =
         *(type_8 *)(var_8 + 0xb) & 0xdf | (type_8)(((type_4)(var_12[0xb] << 2) >> 0x1f) << 5);
    var_5 = var_12[10];
    if (var_5 << 0x14 < 0) {
      var_12 = (int *)0x439;
    }
    else {
      var_8 = var_12 + 6;
      var_12 = (int *)0x43a;
      if (((*var_8 == -1) && (var_12 = (int *)0x43b, -1 < var_5 << 0x1a)) &&
         (var_12 = (int *)0x43c, -1 < var_5 << 0x1b)) {
        var_12 = (int *)0x43d;
        if (-1 < var_5 << 0x1c) {
          return var_13((type_4)(var_5 << 0x1c) >> 0x1f,0);
        }
      }
    }
LAB_00292578:
    var_9 = *(int *)(var_14 + 0x19ff00) + 0x3bc0;
    var_8 = (int *)(*(int *)(var_14 + 0x19ff00) + 0x3688);
    (**(type_7 **)(var_14 + 0x1a0058))();
    var_15 = extraout_v1;
LAB_00292590:
    var_6 = var_15 & 0xff3fffff | (var_9 & 3) << 0x16;
LAB_00292594:
    var_8[10] = var_6;
    var_5 = var_12[10];
  } while( true );
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (identifier) (number_literal) (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (return_statement))) (expression_statement (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))))

/* gold::Symbol_table::MASKED(gold::Symbol const*, elfcpp::STT,
   gold::Symbol_table::Defined) */

void gold::Symbol_table::MASKED
               (undefined4 param_1,undefined4 param_2,undefined4 param_3)

{
  char local_10;
  char local_f [11];
  
  should_override(param_1,0,param_2,param_3,0,local_f,&local_10,0);
  if ((local_f[0] == '\0') && (local_10 == '\0')) {
    return;
  }
  (*(code *)PTR_do_gold_unreachable_004323c4)
            (PTR_DAT_0043226c + 0x3688,0x3fd,PTR_DAT_0043226c + 0x3bdc);
  return;
}

